李宏毅 机器学习与深度学习【2022版】 03

文章目录

一、卷积神经网络CNN

CNN在影像识别中,表现比较好。









每个感受野 receptive field 都有一个神经元去探测鸟嘴,是没有没要的,所以可以共享它们的参数。



如果两个神经元在同一个感受野中,不能共享参数。因为它们的输入相同,参数也相同,将会导致输出也想通。


可以理解为在一个感受野中,每一个神经元提取一个特征。


共享的参数称之为filter。如图中,两个红色神经元共享的参数称之为filter 1。






输入数据与卷积核做内积,得到的加过叫 Feature Map


每一个filter提取一种特征。


上图中,的第二层卷积形状为 3 × 3 × 64 3 \times 3 \times 64 3×3×64,是因为输入值有64个通道。

第二层卷积层的filter大小为 3 × 3 3 \times 3 3×3,它侦测第一层卷积层的范围就是 3 × 3 3 \times 3 3×3,而它实际侦测原图像的范围就是 5 × 5 5 \times 5 5×5,只要叠的层数够深,侦测的范围就会够大。







Pooling不改变通道数,只是减小长宽。它主要是用来减少数据量的。并不是所有卷积层之后,都要接池化层,比如下围棋,所以需要根据情况,进行使用。


CNN没有对放大和旋转图片的不变性,所以我们需要data augmentation

二、使用验证集,模型还过拟合的原因



所以通常希望待选模型数量要少,训练集要大,就不容易过拟合。


三、深度学习的优点

深度学习可以两者兼顾


为什么我们想要网络更深,而不是更胖?

虽然一个隐层的网络可以表现任何函数,而参数量相同的情况下,瘦高的网络比胖短的网络表现更好。


类比剪纸,先折叠再剪,比直接剪,会少剪很多刀。




达到相同的效果,深度学习需要更少的参数,进而需要更少的数据就可以避免过拟合。

如果目标函数,即可以是loss特别低的函数,是复杂有规律的,深的神经网络比胖的表现更好,例如在语音、影像上面的应用。


四、Spatial Transformer Layer

Spatial Transformer Layer作用就是将输入的image旋转变换为cnn认识的数据。当然它也可以transform cnn的feature map。



例如,如下图,连接箭头的起点的weight设置为1,其他都为0,这样就能完成旋转和平移的变换。


以下是该NN找出控制该连接的方法:





这里存在的问题是,在参数为非整数时,得到的 layer l-1 的索引值也是小数。如果简单地取离它最近的索引值,会造成参数的梯度总是为零。因为参数发生略微变化时,输出值: layer l-1 的索引值并不会变化,进而loss不会发生变化,所以梯度总是零,就没法训练优化。


解决方法:可以采用双线性插值法。



Localisation net: 就是输出变换矩阵的六个权重参数的神经网络。
Grid generator: 根据Localisation net计算的变换矩阵,实现像素点坐标的对应关系,即由目标图片的索引,计算得到原图片的索引。
Sampler: 对上一步算出的位置(即layer l-1 的索引值),进行双线性插值,得到最终输出。


应用举例如下:

相关推荐
Luis Li 的猫猫1 小时前
深度学习中的知识蒸馏
人工智能·经验分享·深度学习·学习·算法
带娃的IT创业者2 小时前
机器学习实战(6):支持向量机(SVM)——强大的非线性分类器
算法·机器学习·支持向量机
木觞清3 小时前
PyTorch与TensorFlow的对比:哪个框架更适合你的项目?
人工智能·pytorch·tensorflow
wyg_0311137 小时前
用deepseek学大模型04-模型可视化与数据可视化
人工智能·机器学习·信息可视化
陈敬雷-充电了么-CEO兼CTO8 小时前
DeepSeek核心算法解析:如何打造比肩ChatGPT的国产大模型
人工智能·神经网络·自然语言处理·chatgpt·大模型·aigc·deepseek
盼小辉丶8 小时前
TensorFlow深度学习实战(8)——卷积神经网络
深度学习·cnn·tensorflow
南风过闲庭8 小时前
人工智能泡沫效应
大数据·人工智能·科技·搜索引擎·百度·ai
我是一个对称矩阵9 小时前
YOLOv5-Seg 深度解析:与 YOLOv5 检测模型的区别
人工智能·yolo·目标跟踪
AomanHao9 小时前
图像质量评价指标-UCIQE-UIQM
图像处理·人工智能·计算机视觉·评价指标
MYT_flyflyfly9 小时前
计算机视觉-尺度不变区域
人工智能·计算机视觉