推荐课程:神经网络结构搜索
感谢博主ShusenWang提供的课程讲解!
目录
1. 为什么要学习神经网络结构搜索NAS?
2. 什么是神经网络结构搜索NAS?
(1)随机搜素Random Search
1. 为什么要学习神经网络结构搜索NAS?
1.Parameters(参数),神经网络中有许多的参数,也叫做权重weights。
2.Hyper-parameters(超参数),是指搭建神经网络和训练之前就要手动设置的一些参数,可以影响到训练过程中的参数。
在神经网络中有一些需要手动设置的超参数,主要包括两类,一类是Architecture(神经网络结构),比如有多少卷积层,每层有多少卷积核,卷积核有多大。另一类是Algorithm(优化算法),如SGD优化算法。
这两类超参数都可以影响到训练过程中的参数进而影响到测试集上的准确率。
因此如何自动调整超参数是一门很热门的研究方向。
2. 什么是神经网络结构搜索NAS?
神经网络结构搜索指的是寻找最优的神经网络结构使得验证准确率最大化。比如ResNet验证准确率高于VGG网络,说明ResNet神经网络结构优于VGG。但是在考虑准确率的同时也要考虑计算量和内存开销,比如,MobileNet的计算量和内存开销比VGG要小很多,尽管MobileNet的准确率不如VGG。
以卷积神经网络CNN讲解如何进行神经网络结构搜索。
CNN的超参数:1.卷积层数量和全连接层数量。2.卷积核数量、大小和步距。3.输出向量大小。
CNN网络的搜索空间如下:
假如我们想搜素最优的CNN神经网络结构,即便使用候选值也要有4x10的27次方种不同的组合方案,显然无法通过穷举的方式进行搜索。
(1)随机搜素Random Search
随机搜素是最简单的神经网络结构搜索。
首先从搜索空间中随机抽取一组超参数,然后在训练数据集上学习神经网络的参数,最后使用训练好的模型做预测。重复这个过程。最后选择准确率acc最高的超参数作为最终确定的神经网络结构。
缺点:1.每次搜索代价很大,每次搜素都要重新训练模型。
2.搜索空间过大,随机搜索不太容易找到好的神经网络结构。