NeuralEngine
A Game Engine with embeded Machine Learning algorithms based on Gaussian Processes.
NeuralEngine::MachineLearning::Isomap Class Reference

Isomap. More...

#include <FgIsomap.h>

Inheritance diagram for NeuralEngine::MachineLearning::Isomap:
Collaboration diagram for NeuralEngine::MachineLearning::Isomap:

Classes

struct  Xstruct
 

Public Member Functions

 Isomap (int numNeighbours)
 Constructor. More...
 
 ~Isomap ()
 Destructor. More...
 
af::array Compute (af::array &M, int q)
 Solves. More...
 
virtual af::array Compute (af::array &M, int q)=0
 

Private Member Functions

Xstruct isomap (af::array &D, int n_size, int q)
 
af::array L2_distance (af::array &a, af::array &b, bool df)
 

Private Attributes

int _numNeighbours
 

Detailed Description

Isomap.

Isomap is one representative of isometric mapping methods, and extends metric multidimensional scaling (MDS) by incorporating the geodesic distances imposed by a weighted graph. To be specific, the classical scaling of metric MDS performs low-dimensional embedding based on the pairwise distance between data points, which is generally measured using straight-line Euclidean distance. Isomap is distinguished by its use of the geodesic distance induced by a neighborhood graph embedded in the classical scaling. This is done to incorporate manifold structure in the resulting embedding. Isomap defines the geodesic distance to be the sum of edge weights along the shortest path between two nodes (computed using Dijkstra's algorithm, for example). The top n eigenvectors of the geodesic distance matrix, represent the coordinates in the new n-dimensional Euclidean space.

Translation of Tenenbaum, de Silva, and Langford' Matlab code.

Algorithm:

  1. Determine the neighbors of each point.
    • All points in some fixed radius.
    • K nearest neighbors.
  2. Construct a neighborhood graph.
    • Each point is connected to other if it is a K nearest neighbor.
    • Edge length equal to Euclidean distance.
  3. Compute shortest path between two nodes.
    • Dijkstra's algorithm
    • Floyd–Warshall algorithm
  4. Compute lower - dimensional embedding.
    • Multidimensional scaling

Definition at line 86 of file FgIsomap.h.

Constructor & Destructor Documentation

◆ Isomap()

NeuralEngine::MachineLearning::Isomap::Isomap ( int  numNeighbours)

Constructor.

Hmetal T, 17.04.2017.

Parameters
neighboursThe number of neighbours to compute.

◆ ~Isomap()

NeuralEngine::MachineLearning::Isomap::~Isomap ( )

Destructor.

Hmetal T, 17.04.2017.

Member Function Documentation

◆ Compute()

af::array NeuralEngine::MachineLearning::Isomap::Compute ( af::array &  M,
int  q 
)
virtual

Solves.

Hmetal T, 11.04.2017.

Parameters
M[in,out] N by D data matrix.
qLatent dimension.
Returns
Latent points.

Implements NeuralEngine::MachineLearning::IEmbed.

Member Data Documentation

◆ _numNeighbours

int NeuralEngine::MachineLearning::Isomap::_numNeighbours
private

Definition at line 128 of file FgIsomap.h.


The documentation for this class was generated from the following file: