相关视频
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个折线段。