【程序喵笔记】从神经网络到卷积神经网络

从神经网络到卷积神经网络

​ 机器学习本质而言就是特征提取,从人类所能识别物体的方法过渡到计算机识别的方法,通过一系列的参数将抽象变为数字。说白了就是四步走,数据 — 建模 — 特征 — 评估。
在这里插入图片描述

神经网络?

​ 神经网络简单来说,输入就是我们所需要处理的数据,就是一层一层的提取信息,把每一层连起来,最后就是输出想要得到的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U9rtJmwp-1585745014722)(.\image\2.神经网络结构.png)]

​ 来,举个猫咪的栗子。

​ 有一只猫的图图,我知道这是猫,但是计算机不知道啊,我想办法高速计算机这是猫,不是狗,也不是船。好了,计算机认识啥?认识数字啊!那我就给这个猫打个分,猫的得分高了计算机就认识了啊!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7J9iqoMZ-1585745014724)(.\image\3.计算机眼中的猫.png)]
​ 这个猫的图图,输入计算机是猫的一组数字。长32,宽32,彩色图像是RGB通道,乘起来3072个数字,但是为了后续简化我们就姑且认为这个猫 是由4个数字(56,231,24,2)代替一下。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Io7X7zQ6-1585745014726)(.\image\4.猫咪的得分函数.png)]

​ 嘿,接下来就是给它打个分,先随机给定一个参数W,b。粉色就是对“是猫”得分计算(0.2,-0.5,0.1,2.0)分别和(56,231,24,2)乘起来,加上偏执1.1,就算出来了-96.8。绿色就是计算”是狗“的得分,蓝色就是计算”是船“的得分。

​ 这个得分有正有负,计算机而言,希望有一个0到1之间的数字(就是一个概率呗)来瞅明白,那么我们就给它整个函数映射一下,也就是激活一下(激活函数)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yD9Z05Qh-1585745014728)(.\image\5.softmax函数.png)]

​ 有了这个Softmax 函数,这样一来,就将原来分散的得分都放到(0,1)这个区间喽。当然,还有其他函数比如 Relu,道理是一样的。Relu函数在后面求导的时候更方便,更常用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XRptMYu9-1585745014730)(.\image\6.激活函数对比.png)]

​ 但是,我们发现,这明明是个猫,为啥狗的分数那么高,计算机把这个认为成狗子了,那么是错了,必须要修正一下前面的W和b这个参数,也就是计算得分的几组数字呀。可是,怎么修改呢?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ThpcwtGh-1585745014732)(.\image\7.损失函数.png)]

​ 定义一个损失函数,也就是机器得到的值和真实值得差距,看看自己错的有多离谱。计算机一看损失好大,妈呀,我错的太离谱了,我要多改改。除了这个还有一个正则化惩罚项,奥哈,就是计算机看看自己W的系数怎么样,别太复杂。

​ 这就是前项传播,通过权重,计算出损失。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jrOvAtvK-1585745014733)(.\image\8.前向传播.png)]

​ 我们希望一次一次迭代数据,损失越小越好呀,那怎么修改W和b呢?那就涉及到反向传播啦。梯度下降的方法很好,就好比一个人在找下山的路,最快的到达最低处,那么就是找一个最陡的坡下去啊。啊哈,但一次走得太多容易直接翻山到另一坡,一次走太小那要走个几天几夜岂不是饿死在路上了?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p6NSU6rH-1585745014736)(.\image\9.梯度下降.png)]

​ 最终,经过几次迭代,终于找到差不多小的损失了,好了,这个参数我们可以用了。但是我们又想了,这些参数通用不?如果只是这张猫认识,换一个猫就不认识了?那岂不是很智障。所以,我们将很多很多数据训练,选择其中一部分做验证(验证集),只有验证集损失很小才能说这个网络还不错。最后,我们拿测试集来看看,到底能不能识别出来是猫,还是其他。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2zJ0tqsL-1585745014737)(.\image\10.训练集和测试集.png)]

​ 嘿,这样,一个神经网络好像就有点意思了,但是一次加权计算往往特征提取不全面啊,那我们就多次呗。比如这个猫,一开始有3072个数字,第一次提取,给它变成100个特征值,第二次提取,给它变成10个值,这10个值就是判断10个种类的每个种类的概率。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1E0mVpTK-1585745014739)(.\image\11.神经网络.png)]

​ 每一层的网络都和前一层每一个系数都有关系,这样就是一个全连接层,而且保持一个非线性变换。这样来看,这个参数可是太太太多了,这几层就这么多参数,每个小箭头都是一个W中参数,还有b那岂不是更多。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tLZBnnPZ-1585745014741)(.\image\12.神经网络参数.png)]

卷积神经网络?

​ 我们看到一幅图,应该是一块一块的看,那为什么不一块一块的给它提取特征呢?嘿,卷积神经网络来了,其实,这比起传统神经网络,更易提取特征。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uOPWYWwI-1585745014743)(.\image\13.卷积神经网络.png)]

​ 那神马是卷积呢?比如一张图片是5 * 5 * 3 的彩色图,我们先把一个通道拿出来,让一个3 *3 的小格子(卷积核)在上面滑动(每次滑动一个格子),和原来5 * 5对应位置相乘在求和。这样就得出来一个3 *3的小矩阵(特征图)了,小卷积核就是把特征提取出来了,当然,卷积核也可以取大一点,每次移动步数也可以变一变。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mnBrQXRK-1585745014744)(.\image\14.卷积.png)]

​ 但是我们看啊,5 *5 的图片靠近边缘的一部分好像使用的不够,把这个图周围补0,变成7 * 7 的图,这样图像边边的信息也可以利用到。

![[]](https://img-blog.csdnimg.cn/20200401205025941.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3ODYyMDk5,size_16,color_FFFFFF,t_70#pic_center)

​ 这样一个通道计算出,剩下练个通道也得出来特征图,把三个通道特征图对应位置加起来,再加上非线性变化的偏执b,就是经过一个卷积核得到的特征图啦。

![[]](https://img-blog.csdnimg.cn/20200401205039475.png#pic_center)

​ 对一个图,不仅仅会用一个卷积核运算,我们用多个卷积核,同样的方法操作,就得到很多个特征图,这就是特征图的通道数。这样,一个5 *5 * 3 的图片(周围补一圈0),经过两个步长为1的 3 * 3 *3的卷积核 ,就变成了 3 * 3 * 2的特征图。

​ 对于计算卷积也有个公式,特征图的维度是由小卷积核的个数决定。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JAIsb44x-1585745014751)(.\image\18.卷积结果计算公式.png)]

​ 说完了卷积,就是池化,池化就是把这个特征图缩缩水,特征图太大了,我们把每四个钟最大的数字拿出来当做特征就好,给特征缩缩水。

在这里插入图片描述

​ 这样一层一层的连接上,卷积几次缩缩水,最后在全连接层,把所有特征拉长,分类就好,这就是卷积神经网络中特征图变化的样子。

在这里插入图片描述

​ 在同样的感受野效果下,堆叠小的卷积核所需的参数更少一些,并且卷积过程越多,特征提取 也会越细致。加入的非线性变换也随着增多,还不会增大权重参数个数,所以经典的VGG 网络就出来了,用小的卷积核来完成体特征提取操作。

积核所需的参数更少一些,并且卷积过程越多,特征提取 也会越细致。加入的非线性变换也随着增多,还不会增大权重参数个数,所以经典的VGG 网络就出来了,用小的卷积核来完成体特征提取操作。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9tzrwws4-1585745014755)(.\image\21.VGG16.png)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值