机器学习笔记(李宏毅 2021/2022)——第三节:CNN卷积神经网络

相关视频

2021-CNN
选修-Spatial Transformer layer
2022-为什么用了验证集还是overfitting
2022-鱼与熊掌可以兼得的机器学习

一、2021-CNN

1.CNN的设计原理

  • Receptive Field + Parameter Sharing = CNN
  • CNN的bias要大于FC,也就是说CNN的弹性要更小,但不代表不好,因为弹性大,容易overfitting

在这里插入图片描述
CNN的设计基于三个观察

  • 第一个观察是我们不需要看整张图片,那对 Neuron 的故事版本,对於第一个故事而言就是,Neuron 只看图片的一小部分,对 Filter 的故事而言就是,我们有一组 Filter,每个 Filter 只看一个小范围,它只侦测小的Pattern。
  • 然后我们说同样的 Pattern,可能出现在图片的不同的地方,所以 Neuron 间可以共用参数,对 Filter 的故事而言就是,一个 Filter 要扫过整张图片,这个就是 Convolutional Layer。
  • 对像素进行下采样不会改变物体。——pooling layer在这里插入图片描述
    这张图从两个角度来阐述CNN,一个从神经元的角度,一个从filter的角度。

2. Spatial transformer

2.1. CNN 的不变性

  • 平移不变性——CNN与生俱来
  • 尺度不变性——Data Augmentation获得
  • 旋转不变性——Data Augmentation获得

So CNN is not invariant to scaling and rotation.
Spatial transormer 就是为了克服CNN的旋转、缩放不变性的缺点。

2.2.Spatial transformer layer

Spatial transformer layer也是神经网络,只需要6个参数就能完成图片的仿射变换(这里指代旋转、缩放等操作)在这里插入图片描述
一个简单的例子,完成了缩放的任务

在这里插入图片描述
另一个简单的例子,完成了旋转的任务在这里插入图片描述

2.3 Interpolation

当参数为小数时,如果采用取整法,则梯度有可能为零,无法利用梯度下降法,这里可以采用插值法来解决,这样就把离散问题变成了连续问题。

在这里插入图片描述

二、为什么用了验证集还是overfitting

这节只是简单的答疑

使用验证集来选择模型,可以看作是通过验证集进行训练,你的模型是你已经训练的几种模型。
所以当你训练了足够多的模型,P( D v a l D_{val} Dval is bad)就会上升,造成overfitting。
在这里插入图片描述

三、鱼与熊掌可以兼得的机器学习

这节内容主要介绍了为什么深度学习可以鱼与熊掌兼得,为什么是Deep而不是fat

在这里插入图片描述

1.why deep?

因为生成 2 k 2^k 2k个线段需要的神经元数量,Deep远小于Shallow。

  • Deep需要2k个神经元
  • Shallow需要 2 k 2^k 2k个神经元

在这里插入图片描述
为什么Deep少呢?可以从下面这个例子来理解。
这里通过两层network生成输出 a 2 a_2 a2

  • 当x从0走到1时, a 1 a_1 a1从1走到0再走到1
  • 而当 a 1 a_1 a1从0走到1时, a 2 a_2 a2从1走到0再走到1
  • 所以两者合起来,当x从0走到1时, a 2 a_2 a2走了4个折线

也就是说,通过n层layer,可以产生 2 n 2^n 2n个折线段。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/toro180/article/details/125495532