在上一篇中,我们主要读到了卷积层对于图像等大规模数据源进行模型训练时的意义——即以过滤器(Filter)提取图像中的目标特征,而不是基于整体来分析特征,以减少需要的全连通层和权重参数;对于目标数据的预处理(以提升后续计算效率),则提出了池层的概念。 这次系列课件来到了计算机视觉部分。在我个人读的这个图形AI系列中,前面已经铺垫了很多计算机视觉与三维重建部分的内容——毕竟那是比AI大模型更早得多的一门技术学科。相比于本篇课件的概览型介绍,把之前的很多篇结合着看肯定是更充分完整一些;因而我也不会在此展开之前已经读到过的一些概念细节,感兴趣可以去找那几篇作为参照。
而关于AI模型部分,本篇中更多讲述了在ChatGPT出现前、由李飞飞主导的ImageNet技术平台的情况——以及当时前列的几个出名的AI模型,有着2010年至2020年间特定时代的缩影。
本文还是以翻译PPT页内容为主,打星号的部分则是我的补充说明。
汽车自动驾驶
探索火星
手术辅助
盲人的视觉支持模块
安全性(刷脸等)
1966年——人们正式提出了计算机视觉这一概念及技术框架。(*当时是由Summer公司提出的)
*如图,课件中涉及的主要是CV和CNN两个领域重叠的部分。
物体识别——给定图像,能认出是什么物体(例如图中,汽车)。
物体探测——从一副图像中探测出目标物体的区域位置(例如图中,人脸)。
图像分割——即俗语中的“抠图”(例如图中,单独把人物分割出来)。
图像说明文字——对于给定的图像,自动生成匹配的说明文字。
视觉问题解答——例如图中的例子,产生了关于红酒品种的对话。
物体追踪——一般运用在实时拍摄或视频分析,持续追踪目标物体的状态(位置、速度等)。
主观认知问题——例如图中的例子,google分类tag。
光照照明
物体姿态
分析杂物堆
分析遮挡
类内外观分析
视点(计算、模拟)
2 数据集挑战的时代——Era of dataset challenges
*这一节比较简短,主要是介绍了数据集共享及AI模型评估社区的运行机制。
在1990年以前,用于开发计算机视觉模型的数据集相对很小(例如,10到100个实例)。
在1990年以后,人们逐渐能使用较大的数据集(例如,从千到百万级别的实例)。
数据被划分为“训练集合”和“测试集合”,其中后者的识别标签是被隐藏的。
开发团队设计模型并提交(测试集合的)预测结果至评价服务器。
一个公开的排行榜能展示各团队提交模型的表现排名。
*划分数据集的方式在上上篇中也介绍过。这里主要指这套机制在AI社区运行的模式。
3 MNIST数据集标准的挑战胜者:LeNet——MNIST challenge winner: LeNet
1998年——人们提出了MNIST数据集和LeNet CNN模型。
*MNIST——Modified National Institute of Standards and Technology database是机器学习领域最经典的手写数字数据集,由28×28像素的灰度图像组成,包含0-9共10类数字,广泛用于图像分类任务和深度学习入门教学。
LeNet——类似Neocognitron,有卷积层和池层。(*Neocognitron是一个生造词,可以被称为新感知机——更多可以参照上一篇)
卷积层使用tanh作为激活函数。如图可见,卷积层是C1和C3、池层是S2和S4(降采样)。
对于右侧的全连接多层神经网络部分——最终这一神经网路能输出多少可能的预测?
*输出层:使用Softmax或高斯激活函数,在10个类别(数字0-9)中输出概率。
在输入和卷积层1之间,有多少过滤器?——卷积核尺寸5X5,数量为6;后面步骤只要是卷积,都采用的是这个尺寸的卷积核(*核中值的细节,文末会附相关的详细参考资料)。
池层中使用的相邻域尺寸是多大?——相邻尺寸2X2,步长为2的最大值池;后面的池层也是类似规格。
*图中列出的还是之前反向传播一节的要点,这里就不重复展开了。
*这里也是上一篇的一幅例图。9个输入格子经过一个过滤器,可以转化为特征图中的4个格子(每个格子记录了提取出的红、蓝、黄、绿值);而这一过滤器的执行是卷积方式的而非全连通方式的。
*Neocognitron是基于人工定义的过滤器,而LeNet使用机器学习的过滤器。
需要迭代执行多少次训练集?——图中展示了从0到20次epoch,训练和测试数据分别的误差率。
*LeNet是由Yann LeCun及其同事开发的一种开创性的卷积神经网络架构,也是首个将CNN用于有实际应用价值的图像识别课题的案例。
*这里再重复提一次,就是在AI领域performance一次主要还是说的正确率。
*这组课件中缺少对于卷积神经网络的反向传播算法举例,其原理是:利用链式法则将损失函数的梯度分解为各层参数的梯度——如果对于细节有兴趣,文末会附一篇资料;对于使用脚本来编写LeNet模型并执行数据训练,了解到上述程度就足够了。
4 ImageNet数据库的挑战胜者: AlexNet, VGG, ResNet等深度学习算法——ImageNet challenge winners: deeper learning (AlexNet, VGG, ResNet)
2009年——随着ImageNet的发展,CNN迎来了第三波催化剂。
ImageNet是一个图像库——有着更多自然背景的3D物体;有更多的分类。
数据集的放大带来了未曾预见的、前所未有的“深度学习”模型提升——AlexNet。
受AlexNet的激发,后续更多研究者在计算机视觉社区和领域在几年内持续贡献了更多进展。
共有727份参加者(*页中还专门指出,将百度2015年作弊的提交排除了)。
劳动开销约1.1亿美元——假设一份提交平均3人参与,人均成本5万美元。
*本篇的课题会集中在AlexNet、VGG、ResNet。
为什么深层的CNN难以获得更好的性能表现?——因为(深层)梯度的消失。
回顾不同的激活函数及其梯度范围——S型函数计算虽然相对快,但是梯度范围较小;相比来说Tanh函数的梯度范围更大。
*如图中的简单示例,两个隐藏层的激活函数都是S型函数,则其梯度范围是最大0.25。
*随着连续乘一连串小于1的数,层数越多则训练中的权重变化越慢。
前期层的极小梯度值会导致它们的训练缓慢,进一步影响把有效数据传递给后续层——显然无效的输入最后会导致无效的输出。
AlexNet的架构:类似LeNet,但有更多的卷积层和池层。
输入:尺寸调整至固定值的RGB图像。
输出:1000个分类的概率(和为1)。
卷积层:5层。
池层:3层。
全连接层:3层。
*具体参数可以看图,比LeNet的规模大了非常多。
*图中展示了选取图像较短的一边来进行居中化裁剪的过程。
从图中可以看出,来自卷积层的参数较少,大部分参数来自全连通层。(*图中纵轴一格是1千万个)
绿字部分——使用交叉熵损失来评估训练数据的执行结果。(*关于交叉熵损失可以参照上上篇中的资料)
数据增强
全连接层中的丢弃机制
L2参数范数惩罚
*关于正则化regularization下一篇会有整篇讲述,因此这里就不附资料了。
问题:梯度消失可能出现在导数表达式包含了与权重的乘积,而权重初始化小于1的时候。
解决方案:从一个中心为0的标准分布(函数)来初始化权重,并调整信号与梯度的规模以匹配所有层。
通过不同层之间的信号有着相同的变化幅度。
通过不同层之间的梯度有着相同的变化幅度。
*一层中有很多个节点,而这里图示的是每个层的Z值、权重、激活函数、梯度的系数分布情况。
(红字)问题:算法难以在有恒等对应关系的层间执行学习过程。
假设:神经网络学习接近0的参数远比执行恒等映射要容易(这一结果被论文中的实验支撑)。
*图中右侧环线设置了一种跳过部分层的执行逻辑。红色部分则被称为残差函数。
(红字)当添加一个跳跃连接时,需要学习多少模型参数?——0个。
残差连接不会通过“挤压”梯度的激活函数,因而可以在学习中保持更高的梯度。
深度残差学习框架使用了跳跃连接来获得更好的性能表现,比起前人的方案来说能学习更深层的模型。
*可以看出,相对前人的LeNet和VGG等方案,ResNet有着明显更多的层,以及更小的误差。
*在2015年的实验中,通过和人类中的专业人员进行了每张图像(最多)5目标的识别比赛中,在测试了1500张图片之后胜出。
*原文没有提出是否限时,但理解上应该是同时考虑限时和误差率了。
正常的神经网络层x经过weight layer之后为relu ( w1x + b ),再经过一次weight layer之后为relu ( w2 ∗ ( relu ( w1x + b ) ) ) 。
在此特殊情况下的公式定义为H(x),它属于经过特殊定义的残差函数的内容,可以得到H ( x ) = F (x) + x,也就是说现在的前向传播函数H(x)为原来的前向传播函数F(x)加上两层之前的输入x。
这样拟合的残差函数F(x) = H(x)-x更简单。虽然理论上两者都能得到近似拟合,但是后者学习起来更容易。
*如图,在本篇介绍的几个模型中,ResNet提出最晚,表现最好。
*PAMI Longuet-Higgins Prize 是由 IEEE Pattern Analysis and Machine Intelligence (PAMI)技术委员会设立的年度奖项,奖励的是计算机视觉领域的杰出贡献。
突然人们开始注意ImageNet,不仅在AI社区内部,而是整个技术工业整体——经济学家
图中展示了ImageNet中使用的Flickr metadata中的图片,在世界地图上的地理分布。
由于近期工作较忙,外加新内容我自身越来越难以消化理解,因此未能保持之前一周一更的频率。后续为了保证基本的质量,我也会准备充分外加阅读各类相关资料后再更新。
本篇中的数字识别、图像识别等AI技术,虽然在10年前才逐渐成熟,但到现在已经成了深入大家生活的感知型AI;但另一方面来说,感知型AI还并不能替代人类做复杂或紧急的决策。从算法本身来说,目前了解的这些图像识别算法,本质上还是处理信号的分解和权重数学拟合问题。
本篇中提到的这些AI模型技术,在提出时肯定都是当时各团队智慧的结晶,不过到了10年后已经可以供有一定脚本基础的任何普通人在python中进行模型训练和参数设置了。
评论区
共 条评论热门最新