CNN学习笔记(李宏毅机器学习)

不得不说,李老师的课质量真的很高,不光课程本身好,课后作业也布置的很棒,写代码苦手如我都能跟着一起学习baseline的code。如果想要提升的话,也可以自己补充To Do的部分,很nice。
我跟着学习的是2021 Spring这一届,b站和油管都能看。课程主页
台大李宏毅机器学习
今天的部分是从理论来理解CNN,实践部分,pytorch部分的库函数如何使用,我会在以后补充。

Image Classification

假设目前我们要做一个图像识别系统,给一张猫的图片确定这个猫确实是猫,而不会识别成dog。整个过程抽象出来如图。
在这里插入图片描述

Input

在这里插入图片描述
对于图像,一般会把图像按照RGB的形式组织成length × width × channel,channel就是图像的颜色数,或者我个人觉得可以叫图层。如果是一个灰度图片,那么channel =1

Output

对于分类问题,比如有两个类,cat和dog,可以采用独热码(one-hot)的形式。

在这里插入图片描述

model

如果只是简单的用全连接层做模型的话,那么它的参数会巨大

识别图片大小为100 ×100 的图片,1000个neuron,那么weight会算3×10^7之多

但实际上,做图像识别是不需要这么多参数的,所以从两个方面考虑简化:

Receptive field

如同人类识别鸟是通过鸟的特征,而不是整张图片一样,一个neuron也并不需要观察整个图片,而只用观察到鸟的pattern。patten在的地方,就是receptive filed。
在这里插入图片描述
Receptive field存在的意义是抓pattern,所以,对于不同的目标,可以自己设计receptive field 的size,3×3,5×5都可以。size的形状也可以自己设定。
虽然receptive field size可以设置的比较小,但是它能学习到比较大的pattern

Typical Setting

在这里插入图片描述

Weight Sharing

特征不会说固定出现在一个地方,比如鸟嘴不会总在左上方出现,而是有可能出现在图片的中央、右上方等,但位置的改变没有改变本质,鸟嘴还是鸟嘴。如何利用这个特性简化模型呢?
在这里插入图片描述
不同的neuron计算时共享相同的参数,但是由于input不同,所以output也会不同。负责同一个receptive field 的neuron不会共享参数。

Typical Setting

在这里插入图片描述
假设一共有64组不同的参数,(实际上,一个filter就是其中的一组参数),对于同一个 receptive field,64个filter都会参与计算。而到了下一个receptive field, 还是这64组参数作为w ,与作为x 的input计算产生output。
这时,一个CNN初步成型了。

CNN layer与全连接层的关系

在这里插入图片描述

Filter

另一种理解CNN的方式是直接从filter的角度看
在这里插入图片描述
每个filter都想抓住一个pattern

计算方式

在这里插入图片描述
在这里插入图片描述

feature map : filter 计算后的集合。
在这里插入图片描述
在这里插入图片描述
多层卷积后,filter是可以抓住大的pattern的。network越深,图像看到的pattern越大。

两种理解的对比

在这里插入图片描述

Max Pooling

max pooling 不会学习任何参数,只是减少计算量的手段
在这里插入图片描述
在这里插入图片描述
max _pooling 选了最大的那个值

CNN的整体架构

在这里插入图片描述
可以看出,convolution和pooling交替使用,最后用flatten拉平tensor,再过全连接网络,最后用softmax得到分类结果

事实上,CNN可以不经过Pooling,因为它只是减少计算量的手段,所以有些比较高精度的任务就不适合用它。比如Alpha Go用了CNN,但没有池化层。

CNN 用处

  1. 图像识别
  2. 语音辨识
  3. 自然语言处理

CNN的局限性

它不能识别放大、缩小和旋转的图片
有专门处理这种问题的网络,例如Spatial Transformer Layer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值