引入:
独热编码(one-hot):对于分类任务的输出,也就是是或不是某类的问题,采取独热编码的情势将y由一离散值转化为连续的概率分布,最大值所在下标为猜测类
输入的处置惩罚:对于任意一张彩色图片,通常转化为用3224224的矩阵表示(通道数,高度,宽度),如果直接展平这个图片,就会得到224*224+224*224+224*224个参数,直接用这么多参数去全连接肯定是不合适的,正确处置惩罚方法——卷积神经网络
卷积神经网络:卷积操作是通过卷积核在输入图片上滑动,每次盘算卷积核覆盖地区与卷积核的 逐元素乘积,然后将全部乘积结果 求和,得到输出特征图的一个值【输出的结果越大,就阐明大图中的这一个部分和卷积核越像】
- 输入图片【特征图】
- [
- [1, 0, 1],
- [0, 1, 0],
- [1, 0, 1]
- ]
- 卷积核
- [
- [1, 0],
- [0, -1]
- ]
-
- 输出结果【特征图】
- [
- [0, 0],
- [0, 0]
- ]
复制代码 但是按照这样的规则卷积,会使得特征图尺寸变小,若考虑维持特征图的尺寸,则可以考虑通过zeropadding操作,外圈补零
卷积神经网路和图片分类的关系:
当我们须要判断某张图是不是鸟,我们并不须要看完备张图,而是可以把鸟嘴,或者爪子等等各个很小的部分作为卷积核去和整张图卷积,得到的值越大就阐明越像,进而可以阐明这张图是不是鸟
但是我们怎么知道卷积核就是鸟嘴呢???
所以我们让深度学习来训练的目标就是,让卷积核变成我们想要的
【卷积核就是深度学习中的参数,卷积核巨细称为神经元的感受野,使用更大的卷积核就可以有更大的感受野】
卷积实例:
【焦点头脑:把3224224的图片通过多次卷积多次池化变为102477(淘汰参数),然后拉直展平得到一维向量102477=50176,然后通过全连接实现linear(50176,3),将结果通过softmax得到分类的概率分布结果,最后求猜测和实际的loss,梯度回传更新参数(即卷积核),循环往复……】
第一步:卷积+池化
输入和卷积核都是图片的情势,也就是都是三通道的,所以卷积的过程也是三个通道同时卷积,也就是两个3*3*3的矩阵进行卷积,对应位置相乘有27个数,再相加得到一个数
【这样其实实现了参数的淘汰,和引入卷积的目的对应上了!但是只依赖卷积每次维度淘汰2未免也太少了,或者使用了padding特征图巨细直接是不变的,这里先不讨论,看后面】
如果想继续卷呢?其实也是可以的,如下图所示,把五个卷积核得到的结果再叠放起来,还可以继续卷(但应留意此时的卷积核维度要发生变化,不能还是3*3*3了,要变成5*3*3)
【而且后续再卷就不太能用“卷积结果越大越相似”这种直观的理解来表明白,又变得黑盒了】
那么应该如何减小特征图巨细呢?
方法一:扩大步长 【不常用,会丢失信息,且引入盘算】
【公式:(输入-卷积核+2padding) / 步长+1 】
方法二:pooling池化【常用!】
【均匀池化又引入了盘算。。。实际使用时更常用最大池化,取最明显的即可】
第二步:卷积到全连接
(略)
第三步:结果到输出
其实就是把左边的结果过一遍softmax(直接调用),变成右边的概率分布(三种概率和为1)
也就是说该图片是猫的概率为0.953
第四步:求猜测和结果的loss
衡量分类问题的丧失:交叉熵丧失CrossEntropy Loss(直接调用)
具体公式先算了
扩展内容:
AlexNet:relu+dropout+池化+归一化
【relu:比sigmoid更能预防梯度消失,由于relu大于0的部分求导始终为1,而sigmoid趋向无穷大的时候导数趋向于0了(结合后面梯度消失理解)】
【dropout:在每一轮训练中随机取一些神经元不用,缓解过拟合】
【过拟合:参数越多越轻易过拟合】
【池化:就是前面讲的池化】
【归一化:防止受到数据量纲影响,相对巨细才有意义,保持学习有效性,缓解梯度消失和梯度爆炸】
vgg:更深更大,用小卷积核取代大卷积核
比如上图,一个55的卷积核即实现1块覆盖25块(25合1),而两个33的卷积核(卷了两次)可以取代一个5*5的卷积核,相比之下参数量更小(18和25),防止过拟合
ResNet:一乘一卷积+残差连接
办理问题:模型越深反而结果越差,而且不是由于过拟合,这是由于梯度消失合梯度爆炸
【梯度消失和梯度爆炸:求梯度即从后往前链式求导,如果层数太多,如果有100层,如果全部导数都是0.02,那么0.02的100次方就趋向于0,也就是梯度趋向于零,这时没有办法更新参数,也就是梯度消失;反之如果全部导数都是10,那么10的100次方就是梯度爆炸】
【梯度爆炸比力利益置惩罚,可以人为设置导数凌驾1时就设置为1,但是梯度消失很难处置惩罚,考虑残差连接】
上图所示即为残差连接,模型的输出=模型原本的输出+模型原本的输入,这样out对x求导永远是大于1的,可以防止梯度消失!
但是模型的作用一般就是调整维度,所以模型的输入和输出维度不一致要怎么相加?用一乘一卷积做调整
一乘一卷积的另一个作用是:比直接卷积淘汰了参数量
深度透析:
卷积 = 一种参数共享的“不全连接”
【参数共享:指卷积核的w1234是共享的】
【不全连接:如下图所示,对第一个卷积结果2来说,它只和1245这四个位置有关,由于就是这么卷的。利益是比全连接有效淘汰了参数!不轻易过拟合!】
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |