卷积神经网络 Convolutional Neural Network (CNN)

仅供个人学习,不具参考价值!

Image Classification

image-20230107094012831

  • dimension长度表示能辨识多少种

如何把图像作为输入呢?巨大的向量 (内容为某一位置某一颜色的强度)

image-20230107094931929

  • channels: R G B三种颜色

参数很多,flexibility越大,但也增加了overfitting的风险(数学问题,为什么,后续详谈)

image-20230107100123729

考虑到影像辨识的特性,我们不需要每一个Neuron都和input dimension都有一个weight,需要对影像辨识特性有一些观察

Observation 1

A neuron doesn’t have to see the whole image

image-20230107100948714

每一个Neuron只在意自己Receptive field中发生的事情

image-20230107101316465

如何确定Receptive field还是看你自己咯~

image-20230107101910169

  • 彼此之间可重叠
  • 同一范围可以有多个不同Neuron来守卫

我也浮想联翩了~

image-20230107102054368

yeah!!! 你可以任意设计Receptive fields,但是经典是这样的!

image-20230107112235991

  • 会看all channels (所以我们只看高*宽,称为kernel size,常见的kernel size就是3 * 3,原因后续详谈)
  • 同一个Receptive Field会有一组Neuron去守备
  • 我们希望Receptive Field之间有重叠,否则可能会miss交叠处的pattern,移动量stride(一般设1/2) - hyperparameter
  • 超出范围,那就补值(padding)为0,当然有各种padding方法

Observation 2

image-20230107112537507

是不是可以让不同Reception field的Neuron共享参数

image-20230107113256963

  • weight完全一致
  • Two neurons with the same reception field wouldn’t share parameters

经典的共享方法

image-20230107113743923

Benefit of Convolutional Layer

因为convolutional layer是特别为影像设计的,所以虽然model bias较大,但在影像上就不是问题。

image-20230107115219545

Another story based on filter

image-20230108093903204

image-20230108094441621

image-20230108094520686

  • feature map: 数字群,这个feature map可以看做是另一张图片,不过channel数对应的是filter数

Multiple Convolutional Layers

叠第2层,不过channel现在是64(前一个convoluntion layer的filter数)

filter的大小3*3会不会让network无法看到比较大范围的pattern呢?

不会!!!!oh my gosh!!! 原来在第二层映射的是原图像上很大的范围!3 * 3 → 5 * 5

image-20230108113835717

Comparision of Two Stories

story1中共用的一组参数就是story2中的filter

image-20230108114714638

story1中不同的Neuron共用参数守备不同的范围,就是story2中 一个filter扫过整张图片-convolution

image-20230108115057800

image-20230108115214369

Observation 3

image-20230108115325912

Pooling - Max Pooling

没有参数,没有要learn的东西,行为都已经规定好

每一组(大小自己决定)选一个代表,Max Pooling中就是选择最大的那个

image-20230108120551215

把图片变小

Convolutional Layers + Pooling

几次convolution一次pooling

image-20230108121036118

  • 4 * 4 → 2 * 2

但对performance有伤害,可能也会丢掉细小的东西,所以今年流行有full convolution network

最终把影像中的矩阵拉直变成一个向量

image-20230108121707821

Application: Playing Go

image-20230108155658002

  • 19*19 解析度的图片
  • 48 channels in Alpha Go,这涉及围棋规则

Why CNN for Go playing???

image-20230108160147154

pooling? 你还可以随意拿掉一个row或column吗?

image-20230108160546602

image-20230108160642107

To learn more …

CNN is not invariant to scaling and rotation

image-20230108160830672

we need data augmentation就是截一小块出来放大/旋转,让CNN看

Spatial Transformer Layer可以解决这个问题,请自行参考

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浮光 掠影

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值