咱们继续入门课程系列,这次是关于迁移学习(Transfer Learning)的故事。
有点神经网络基础的基础就会看得明白,上次的例子就是拿已经训练好的网络去用一下嘛,根本无关什么“深度学习”,完全可以把AlexNet看做一个分类器,把待分类的数据丢进去就可以了,这里还有一个GoogleNet的例子:http://ww2.mathworks.cn/help/nnet/examples/classify-image-using-googlenet.html
这次咱们要“学习”一把了,针对特定的任务构造自己的分类器了。这次咱们仍然使用AlexNet的网络结构(谁让它经典呢),训练这个网络让它为咱们服务。
在正式Coding之前,首先了解下什么是迁移学习。所谓的迁移学习就是指在深度学习中,把一个学习好的深度网络,稍加改造变成自己特有网络的意思,至于这样做的道理,咱们这里先不深入探讨,只要先记住迁移学习有个很大的好处,就是网络收敛速度快。
实验准备
Matlab2017b或者更新的版本,AlexNet。
数据准备:为了实验的一致性,使用Matlab计算机视觉工具箱自带的数据。
开始编程
载入数据
unzip('MerchData.zip');
imds = imageDatastore('MerchData','IncludeSubfolders',true,'LabelSource','foldernames');
[imdsTrain,idmsValidation] =splitEachLabel(imds,0.7,'randomized&#