P8机器学习笔记--李宏毅(卷积神经网络CNN)

目录

一、第一种理解方法

1.receptive filed(感受野) stride(滑动距离)

2.共享参数 以及filter

3.只用全链接或者用参数共享和感受野的差别

二、第二种理解方法

1.用filter遍历整张图片

​编辑2.feature map 

三、两个方法总结

四、最大池化理解

五、根据类型选择是否用卷积层

六、CNN不能处理图片放大缩小或者旋转 


一、第一种理解方法

现在我们要识别一张猫

固定一张图片的大小作为输入

 

这个彩色图片有3个channels(RGB)每一个都是100*100把它拉直丢到network里去

 

但是这样子呢每一个neural接收的参数实在是太多了,我们让每一个neural识别特定的部分

1.receptive filed(感受野) stride(滑动距离)

我们设定一个感受野(receptive field )3*3大小这个感受野可以左右上下滑动,滑动距离为stride,当滑出去了就用padding进行填充

 

这个27维度的向量最为neural的输入。receptive field的大小以及形状都能自定义,并且说同一个receptive filed可能有多个neural守卫 

 这里有两个neural它们都是侦测鸟嘴的只是守备的范围不一样,那我需要在每个侦测范围都放一个侦测鸟嘴的neural吗,这样做的话会不会参数量过多呢?:

2.共享参数 以及filter

所以我们让这两个neural共享weight参数,这两个neural只是输入不同:

 每一个守望野会有很多neurons每一组公用参数的neural就叫做filter:

3.只用全链接或者用参数共享和感受野的差别

*当只用全连接时,该模型弹性较大容易overfitting但是有可能适用于公用任务

*当使用感受野和共享参数用卷积层时,加了一些限制,弹性变差,可能会导致model bias但是说呢会让在特定任务上表现更好

二、第二种理解方法

另一种解释方法是,卷积层里面有许多filter,大小是3*3*channel,要去里面抓pattern 

我们假设是一个黑白图片,一个channel,filter里面的值是未知参数是经过gradient descent计算出来的:

1.用filter遍历整张图片

然后进行计算

 

这个filter就在意的是主对角线上的特征 

2.feature map 

然后一直算,经历64个filter,就有64堆数字,这个就是feature map,这个feature map你可以看作是一个新的map:

 作为下一个卷积层的输入,你可以叠许多卷积层:

这样每一层叠加就会让看到更大的范围在第二层的3*3相当于在第一层更大的范围:

 

这个就解释了第一个方法里的filters的共用参数是怎么运行的 

三、两个方法总结

第一个方法是思想,第二个方法是运行 

四、最大池化理解

在图片影像识别中,把大的图片缩小不会影响小的图片是什么

最大池化就是在每个小区域里选一个最大的:

 

 

 这样就可以减少计算的压力:

影像辨识大概就是这样,经过卷积层把它拉直最后传入全连接神经网络

 

 但是说用池化不一定是好的,你得考虑忽略掉某些东西时会不会有不好的效果。比如说围棋,你拿掉一些横排或者竖排肯定是对局势影响是不同得所以在阿尔法狗中都是full卷积层。

五、根据类型选择是否用卷积层

图片识别是观察某一部分特征,而围棋也是观测局部特征,所以可以选择卷积层。

六、CNN不能处理图片放大缩小或者旋转 

当我们把图片放大时同样得图片机器可能不认识,这时候我们需要数据增强(data augument)。把每张图片截下来放大让cnn看过不同大小的pattern

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值