经典网络:
LeNet-5:
AlexNet:
VGG-16:
ResNet网络:
先引入残差块的概念:
远眺连接概念:
如下图中,除了正常的全连接外,还有将第一层计算的激活函数值不经过第二层直接使用到第二层的激活函数中,这就是一种远眺连接。
而下面这种远眺连接与全连接的一块神经就是残差块。所以对于这种残差块最终的激活函数所得到的值就是如下图中将远眺的值与正常全连接的参数进行相加再激活计算。
而使用这些残差块去构成神经网络就是ResNet网络:
这种神经网络可以帮助解决多层神经训练的梯度消失或者梯度爆炸的问题。下方左图为普通网络的理论训练出现的误差与实际出现的误差,右图为使用残差网络进行训练实际误差效果,对于神经网络层数的增加,可以看见残差网络减少这种实验误差
使用残差在增加网络层数的情况下,可以保证你原来训练的网络层数的效果依旧存在的情况下再增加上其他网络层的影响,有时候因为梯度爆炸或者梯度消失导致你计算出来的网络层几乎没有什么效果,而使用网络残差是保证你在原来网络的训练的大概情况下进行对模型的影响,应该可以这样来理解;
但是肯定是存在网络参数的维度不同,那么使用这种残差网络的使用可以在远眺连接的地方增加一个权重让他进行矩阵变化,变到我可以使用远眺网络的矩阵大小:
Inception:
好像有点忘了,就是这个Inception在构建中使用了一个瓶颈过滤器,也就是1*1*nc的核这种可以帮助减少参数,如果构建的合理也不会对神经网络造成影响,先缩小再放大减少参数使用并且提升其计算效率
下图就是一块Inception module,将前一层的激活值传入下一层设置瓶颈的核进行一次缩小,在使用核进行一次放大,至于这个核是处理什么的让他们自行迭代,我们只要设置就行了,最后得到一个和原来一样的输出卷积
数据扩增:
1.镜像:
将图片进行镜像翻转即可;
2.随机裁剪:
截取目标的图片,去掉一些不重要的部分,尽量保持目标的完整
还可以对图片进行扭曲等等操作;
3.颜色转换:
对三原色图层进行一些值得加减使得他们得图片颜色进行一些偏差,这样算是一种模拟光线照射的不同带来的颜色变化,可以提高处理这种颜色失真,从而提高模型的鲁棒性;
对于这种数据不够多的情况下可以在使用上面数据扩增的同时,对模型进行训练,就是启用多线程进行处理,将数据在CPU中使用数据扩增,扩增完后再传入正在训练的模型进行同步处理;