HessianSSR
所属分类:matlab编程
开发工具:matlab
文件大小:15KB
下载次数:20
上传日期:2013-08-30 12:42:41
上 传 者:
hejinrong
说明: 基于Hessian能量的半监督回归,并将其应用于半监督维数约简。
(This is code for the semi-supervised regression using Hessian energy.
Kwang In Kim, Florian Steinke and Matthias Hein, "Semi-supervised Regression using Hessian energy with an application to semi-supervised dimensionality reduction" NIPS 2009)
文件列表:
AddCodesforDigits (0, 2009-11-19)
AddCodesforDigits\DisplayPatches.m (1444, 2009-03-11)
AddCodesforDigits\EucDist.m (578, 2009-11-19)
AddCodesforDigits\MarkEmbeddingPath.m (1678, 2009-11-19)
AddCodesforDigits\Plot3DCoordsofImgs.m (535, 2009-11-06)
CompactKernel.m (1911, 2009-08-10)
ComputeX.m (446, 2009-02-11)
ConstructHessian.m (4813, 2009-11-19)
ConstructLocalHessian.m (1349, 2009-11-06)
ExampleDigits.m (4276, 2009-11-19)
ExampleSinusoidsonSpiral.m (2640, 2009-11-06)
ExampleTwoPointsonSpiral.m (2581, 2009-11-06)
ForwardPCA.m (361, 2009-11-04)
GetKNN.m (2378, 2009-11-19)
GetNormalCoordG.m (2034, 2009-11-04)
GetNormalCoordGGivenTS.m (1018, 2009-11-04)
PerformPCA.m (1077, 2009-11-04)
PerformRegression.m (1769, 2009-11-19)
Plot3DCoordsofImgs.m (535, 2009-11-06)
This is code for the semi-supervised regression using Hessian energy:
Kwang In Kim, Florian Steinke and Matthias Hein,
"Semi-supervised Regression using Hessian energy with an application
to semi-supervised dimensionality reduction"
NIPS 2009
When you use the code, please cite the above paper.
Usage:
There are three main program components for the regression system, described below.
Example usage can be found in 'ExampleSinusoidsonSpiral.m', 'ExampleDigits.m',
and 'ExampleTwoPointsonSpiral.m'.
Standard regression uses functions 1-3 described below.
Although we do not necessarily recommend it (see the paper), it is possible to
use additional stabilizer which is described in the supplementary material of the
corresponding paper. In this case, please see 1, 2-1, and 3-1.
1. [NNIdx, KDist] = GetKNN(Nodes, MaxKNSize)
computes ('MaxKNNSize' - 1) -nearest neighbors of each data point stored in 'Nodes'.
INPUT:
'Nodes': data matrix of size N times d (N = number of data points, d = dimensionality of the data).
'MaxKNNSize': Number of nearest neighbors which should be computed
OUTPUT:
'NNIdx': nearest neighbor index of size (N times MaxKNNSize).
'KDist': returns thhe KNN distances (N times MaxKNNSize)
For a detailed description use help GetKNN
2. [B] = ConstructHessian(Nodes, NNIdx, TanParam)
constructs Hessian operator B such that is an estimate of the
Hessian energy of f (see paper)
INPUT:
'Nodes': (N times d) data matrix; 'N': number of data points, 'd':
dimensionality of data.
'NNIdx': (N times k) matrix containing indices of k-nearest neighbors for
each data point (This matrix can be obtained using GetKNN)
'TanParam': an integer specifying the dimensionality of the manifold
(for SSR we recommend to do cross-validation over this parameter if
the dimensionality of the manifold is unknown)
OUTPUT:
'B': (N times N) matrix - Hessian operator B as described in the paper
'BS': (N times N) matrix - BS penalizes deviation of the function from
its second order approximation
USAGE: B = ConstructHessian(Nodes, NNIdx, TanParam)
computes *only* the Hessian operator B (saves time and memory
compared so the following second option)
[B, BS] = ConstructHessian(Nodes, NNIdx, TanParam)
computes B and BS
For a detailed description use help ConstructHessian
3. [f] = PerformRegression(Labels, B, Lambda)
Performs semi-supervised regression with the squared loss using the Hessian
operator B (see ConstructHessian) as regularizer -
INPUT:
'B': (N times N) regularization matrix calculated using 'ConstructHessian.m'
such that the Hessian energy of f is approximated as .
'Labels.LFlag'
if Labels.LFlag(i)=1, 'i'-th node is a labeled point.
if Labels.LFlag(i)=0, 'i'-th node is not a labeled point.
'Labels.y' = real column vector of size N containing labels. For the locations,
where the corresponding values of 'Labels.LFlag' are not 1,
the values of 'Labels.y' do not affect the regression.
OUTPUT:
'f': learned function on the N points
performs regression by minimizing the squared loss (only on the labeled
points) plus Hessian energy weighted by Lambda.
optionally, [f] = PerformRegression(Labels, B, Lambda1, BS, Lambda2)
performs regression by minimizing the squared (only on the labeled
points) plus stabilized Hessian energy weighted by Lambda1.
'BS': (N times N) matrix-- can be computed using ConstructHessian.m
近期下载者:
相关文件:
收藏者: