CNN:主要用来提取特征的,可以用于图像的检测、识别。大致原理就是拿卷积核(比如说一个3*3的小块)和图片逐块卷积,这个卷积核就是我们要学习的参数,因为要识别图片的特定物体就是要先识别到特征,学习这个卷积核就相当于学习了我们要提取的是什么特征。
然后卷积还常常和池化(Pooling)结合。
具体介绍参考:https://datawhalechina.github.io/leeml-notes/#/chapter21/chapter21
对于图像识别,常用的几个CNN模型:AlexNet、VGG、GoogLeNet、ResNet
还有一个比较,参考:
https://www.cnblogs.com/52machinelearning/p/5821591.html (不过这个链接看不到图)
不过学长说现在物体识别现在最好用的是YOLOv3
参考:https://www.jianshu.com/p/d13ae1055302
可以看到,就是主体就是每俩卷积层+平均池化。
softmax函数作用:就映射输出到(0,1)的值,而这些值的累和为1(满足概率的性质)。常用交叉熵做损失函数。
参考: https://www.zhihu.com/tardis/sogou/art/52064877
交叉熵:交叉熵刻画的是实际输出概率和期望输出概率的距离,交叉熵的值越小,则两个概率分布越接近,即实际与期望差距越小。
dropout:用于抑制过拟合。我们在前向传播的时候,让某个神经元的激活值以一定的概率p停止工作,这样可以使模型泛化性更强,因为它不会太依赖某些局部的特征, 参考https://blog.csdn.net/program_developer/article/details/80737724
batchnorm解决的问题:如果我们每一个batch输入的数据都具有不同的分布,显然会给网络的训练带来困难。另一方面,数据经过一层层网络计算后,其数据分布也在发生着变化。参考: https://blog.csdn.net/qq_25737169/article/details/79048516
https://www.zhihu.com/tardis/sogou/qus/38102762
如果觉得文章有用记得关注博主哟!