當(dāng)前位置:
首頁 >
matlab 实现 stacked Autoencoder 解决图像分类问题
發(fā)布時間:2024/4/14
52
豆豆
生活随笔
收集整理的這篇文章主要介紹了
matlab 实现 stacked Autoencoder 解决图像分类问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Train Stacked Autoencoders for Image Classification
1. 加載數(shù)據(jù)到內(nèi)存
[train_x, train_y] = digitTrainCellArrayData;% 并隨機選擇顯示 100 副圖像, n = 100; idx = randi([1, size(train_x, 2)], n); for i=1:nsubplot(10, 10, i), imshow(train_x{idx(i)}); end2. 定義并訓(xùn)練 autoencoder 網(wǎng)絡(luò)模型
簡單起見,這里僅給出一個具有一個單隱層(隱層的神經(jīng)元節(jié)點數(shù)為 100)的堆棧式自編碼器,
rng('default'); num_hid1 = 100;% 因為是自編碼器,也屬于無監(jiān)督學(xué)習(xí)算法,因此不需要目標(biāo)值 train_y 的參與 ae1 = trainAutoencoder(train_x, num_hid1, ...'MaxEpochs', 400, ...'L2WeightRegularization', .004, ...'SparsityRegularization', 4, ...'SparsityProportion', .15, ...'ScaleData', false);定義網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的過程,也是訓(xùn)練的過程。
3. 過程及中間變量的可視化
- 可視化模型拓?fù)?#xff1a;view(ae1)
- 可視化學(xué)到的權(quán)值矩陣:plotWeights(ae1)
4. 訓(xùn)練第二個 autoencoder
% 使用第一個自編碼器得到其對應(yīng)的壓縮編碼, feat1 = encode(ae1, train_x); num_hid2 = 50; ae2 = trainAutoencoder(feat1, num_hid2, ...'MaxEpochs', 100, ...'L2WeightRegularization', .002, ...'SparsityRegularization', 4, ...'SparsityPropotion', .1, ...'ScaleData', false); view(ae2);% 使用第二個自編碼器得到其對應(yīng)的壓縮編碼 feat2 = encode(ae2, feat1);5. 應(yīng)用于分類問題
softnet = trainSoftmaxLayer(feat2, train_y, 'MaxEpochs', 400); view(softnet)6. 組建 stacked autoencoder
deepnet = stack(ae1, ae2, softnet); view(deepnet)轉(zhuǎn)載于:https://www.cnblogs.com/mtcnn/p/9421861.html
總結(jié)
以上是生活随笔為你收集整理的matlab 实现 stacked Autoencoder 解决图像分类问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017广东工业大学程序设计竞赛决赛--
- 下一篇: 使用HOG+LBP实现动物分类:matl