Exercise:Self-Taught Learning 代码示例

Exercise:Self-Taught Learning 代码示例

练习参考Self-Taught Learning

 

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

 

 

Train the sparse autoencoder

[plain] view plaincopy
 
  1. opttheta = theta;  
  2. addpath minFunc/  
  3. options.Method = 'lbfgs';   
  4. options.maxIter = maxIter;  
  5. options.display = 'on';  
  6.   
  7. [opttheta, cost] = minFunc( @(p) sparseAutoencoderCost(p, ...  
  8.                                    inputSize, hiddenSize, ...  
  9.                                    lambda, sparsityParam, ...  
  10.                                    beta, unlabeledData), ...  
  11.                               theta, options);  

 

 

Extracting features

feedForwardAutoencoder.m
[plain] view plaincopy
 
  1. activation = sigmoid(W1*data+repmat(b1,1,size(data,2)));  

 

 

Train the softmax classifier

 

[plain] view plaincopy
 
  1. lambda = 1e-4;  
  2. options.maxIter = 100;  
  3. softmaxModel = softmaxTrain(hiddenSize, numLabels, lambda, ...  
  4.                             trainFeatures, trainLabels, options);  


Testing

 

 

[plain] view plaincopy
 
    1. [pred] = softmaxPredict(softmaxModel, testFeatures);  
posted @ 2015-11-16 21:48  菜鸡一枚  阅读(160)  评论(0编辑  收藏  举报