Exercise:Self-Taught Learning 代码示例

来源:互联网 发布:php把字符串变成数组 编辑:程序博客网 时间:2024/06/07 21:58

练习参考Self-Taught Learning


结合使用稀疏自编码器和Softmax分类器对0到4的手写数字进行分类。首先利用稀疏自编码器无监督学习手写数字5到9的特征。利用学到的权重和偏置计算手写数字0到4的激活值,并将激活值作为Softmax分类器的输入进行分类(有监督学习)。


Train the sparse autoencoder

opttheta = theta;addpath minFunc/options.Method = 'lbfgs'; options.maxIter = maxIter;options.display = 'on';[opttheta, cost] = minFunc( @(p) sparseAutoencoderCost(p, ...                                   inputSize, hiddenSize, ...                                   lambda, sparsityParam, ...                                   beta, unlabeledData), ...                              theta, options);


Extracting features

feedForwardAutoencoder.m
activation = sigmoid(W1*data+repmat(b1,1,size(data,2)));


Train the softmax classifier

lambda = 1e-4;options.maxIter = 100;softmaxModel = softmaxTrain(hiddenSize, numLabels, lambda, ...                            trainFeatures, trainLabels, options);

Testing

[pred] = softmaxPredict(softmaxModel, testFeatures);





0 0