李宏毅 机器学习与深度学习【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 的索引值),进行双线性插值,得到最终输出。


应用举例如下:

相关推荐
汽车仪器仪表相关领域2 分钟前
光轴精准测量,安全照明保障——NHD-8101/8000型远近光检测仪项目实战分享
数据库·人工智能·安全·压力测试·可用性测试
WJSKad12354 分钟前
基于yolov5-RepNCSPELAN的商品价格标签识别系统实现
人工智能·yolo·目标跟踪
资深web全栈开发5 分钟前
深度对比 LangChain 8 种文档分割方式:从逻辑底层到选型实战
深度学习·自然语言处理·langchain
早日退休!!!7 分钟前
现代公司开发AI编译器的多元技术路线(非LLVM方向全解析)
人工智能
Sahadev_10 分钟前
向量搜索:让电脑理解你的搜索意图
人工智能
大模型真好玩20 分钟前
大模型训练全流程实战指南(一)——为什么要学习大模型训练?
人工智能·pytorch·python·大模型·deep learning
张祥64228890420 分钟前
数理统计基础一
人工智能·机器学习·概率论
540_54021 分钟前
ADVANCE Day45
人工智能·python·深度学习
悟乙己21 分钟前
使用TimeGPT进行时间序列预测案例解析
机器学习·大模型·llm·时间序列·预测
Kun Li24 分钟前
claude使用总结
人工智能