好的,咱们来聊聊深度学习里的一个挺有意思的事儿——用预训练的卷积神经网络(简称ConvNet)来干啥。你知道吗,有时候我们不用从头开始训练一个大网络,而是可以用别人已经训练好的网络来帮我们提取特征。比如,AlexNet这个网络就特别有用。如果我们把它最后一层去掉,就可以拿它来给新的图片提取特征。这样做之后,每张图都能变成一个4096维的特征向量,这个向量我们就叫它CNN代码。要是原来的网络用了ReLU激活函数,那提取出来的特征也要经过ReLU处理,这样效果才好。
但是,光用它来提取特征还不够爽,有时候我们还可以对这个网络进行“微调”。这就像是我们把别人的车借过来,然后稍微改一改让它更适合我们的路。也就是说,我们不仅换掉原来那个分类器,还会继续用反向传播来调整网络里的权重,让它对我们手头的数据更合适。微调可以是整个网络一起调,也可以只调后面几层,因为前面的层通常学的是比较通用的东西,后面的层学的可能是更专门的东西,跟原来训练的数据集特别相关,所以只调后面几层可以防止过拟合。
现在训练一个厉害的网络要花很多时间和钱,所以大家通常会共享那些已经训练好的模型。比如说,有个叫Caffe的工具箱里面有个“模型动物园”,大家可以在这里分享和下载各种网络的权重。这样一来,大家都能省点儿事,也更容易合作研究。你看,这样的做法多好啊,大家都受益!

本文探讨了如何利用预训练的卷积神经网络进行特征提取和网络微调,以适应特定任务。介绍了通过去除网络的最后一层并应用ReLU激活,将图片转换为CNN代码的过程。此外,文章还讲解了微调网络以提高对特定数据集适用性的方法,以及为何只调整网络的后几层可以避免过拟合。
4902

被折叠的 条评论
为什么被折叠?



