嘉祥县建设局官方网站,小制作饮水机,中文域名注册服务网站,网站关键词堆砌听课#xff08;李宏毅老师的#xff09;笔记#xff0c;方便梳理框架#xff0c;以作复习之用。本节课主要讲了CNN的适用范围#xff0c;整体架构与工作流程#xff0c;CNN的应用#xff0c;CNN的缺点以及解决方法。
1. CNN的输入与输出
CNN是专门为了图像而设计的一…听课李宏毅老师的笔记方便梳理框架以作复习之用。本节课主要讲了CNN的适用范围整体架构与工作流程CNN的应用CNN的缺点以及解决方法。
1. CNN的输入与输出
CNN是专门为了图像而设计的一种网络架构
1.1 输出
CNN的输出是一个向量每一个元素都代表了属于该类的得分。举例来说在训练时通过使下图的两个向量的交叉熵最小达到最佳的训练效果。
1.2 输入
一张100*100的彩色图片将分为三个channel代表RGB将三个tensor拉长组成了右边的很长的列向量
2. 在图像识别时是否真的需要全连接网络
一个图像经常是几百几千的像素而且还是三个channel, 那么这么长的向量输入进去如果每一个都要跟不同的权重参数相乘比如我们有1000个神经元那么我们需要1001003*1000个权重参数。虽然这样模型的弹性将会非常大但是容易造成overfitting况且计算时间也会很久
3. observation 1:识别关键部分
我们在设置神经元的时候不用让一个神经元看整张图片而是看最关键的部分。 具体怎么看关键的部分呢我们先引入一个概念——receptive field。将这个333的立方体拉长展开成右侧的这个长向量输入进神经元。 常见的设置如下
kernel size:333但是一般将深度省略stride:2 步长为2表示每次向右或者向下移动receptive field两格可以重叠不够了可以用0补全每个receptive field通常配置64个神经元监视 一直移动直到这个立方体的右下角那么receptive fields将会覆盖整张图片。
4. observation 2:相同的关键部分出现在不同的区域
4.1 从神经元角度讲述
如果因为receptive field不一样监测receptive field的相同的pattern的神经元不一样那么参数量也太大了。 所以我们提出了一种方法——parameter sharing 就是指receptive field不一样但权重参数却一样。但是一个receptive field的两个神经元不会共享参数。 这里的神经元我们有一个专门的名字来称呼——filter
4.2 小结 4.3 从filter角度讲述 这步就是要看哪个receptive field跟filter更接近就是更像关键部位越接近分越高
第一个filter做完之后按照同样的方法做filter2形成了两层我们称之为feature map
4.4 两种角度的对比 5. observation 3: 子采样不会改变图片
由于有时图片数据量过于庞大可以考虑采用子采样不会太影响图片又减少了计算量。
5.1 池化的具体过程以max pooling为例 通常情况下是2次conv1次pooling或者1次conv1次pooling
5.2 小结 6. CNN应用
6.1 AlphaGo 为什么AlphaGo能用CNN做呢 其实我们可以把一个小棋局看成是一个pattern而这个pattern可能出现在棋盘的任意位置 pooling对于CNN来说并不是绝对要用的我们要明确pooling的本质是子采样用以减少计算量但是如果计算量不大就没必要采用pooling采用了说不定还不准确所以AlphaGo就完全没用pooling
6.2 speech and NLP 7. CNN的缺点
如果给CNN训练时的图是上面这个小狗但是让他去识别下面这个小狗可能不一定识别成功因为CNN是无法处理放大缩小旋转的。 但是这还是有解决方法的——Data Augmentation. 在训练的时候就对训练集中的数据进行放大缩小旋转丰富我们的数据集