为什么卷积是有效的

此篇博文要讲的是卷积在深度网络的图像识别中的一些直觉性理解.

直觉性理解: 这决定了此篇文章不会涉及CNN中很细节的知识点, 比如: 卷积核的计算, 卷积核的移动(Stride)等, 其实, 这些细节的知识点本身是好理解的(乘法和加法的结合, 小学都会了吧), 而理解它们在图像识别中发挥的作用(宏观视角), 则正是我这里直觉性理解想要说明白的.

问题1: 全连接网络也能识别图像?!

首先, 我可能对当下的图像识别任务有过高的要求了(以及对整个AI领域都有过高的要求了), 虽然它们都很"神奇"很有效果, 但也绝还不是智能(它们的"智能"仅限于和传统的算法有区别). 以全连接网络识别图像来说, 这种算法思路并不关心图像中物体的形状特征, 它关心的只是像素值的大小(图像的像素特征):

  • 现实世界中, 拿我们自己的例子来说, 假设今天的天气是阴天, 我们的眼睛看到了不远处的一幢房子, 我们知道这幢房子是仍然是晴天时我们看到的同一幢房子, 但全连接网络可能就不认这个结果了: 因为天气的变化导致图片上房子像素值的大小变化了;
  • 全连接网络关心的是像素值的大小, 这是它识别图像的手段, 所以, 在光亮条件的变化下, 它能识别这两幢房子是属于同一个类别(房子类别)的吗? (不说是同一幢房子是因为, 即便是CNN, 好像也做不到这样)
  • 另外, 难道所有的房子都是同一种颜色的吗? 不是. 所以, 靠像素值来识别物体种类, 全连接网络又要被打上一个疑问了;
  • 此外, 拿简单的手写黑白字符图像来说, 手写的字体会有大有小, 有正有歪, 有左有右, 这对用图像的像素值来识别数字的全连接网络来说, 是一个不好的消息: 因为上述几种情况, 都会改变一定范围内像素的值, 然而, 这几种情况的字符确实可以是同一类字符(如, 数字9);
  • 给全连接网络与CNN的区别做个总结: 全连接网络使用像素值作为特征来指导模型运作, 而CNN使用像素的变化(即"边缘")作为特征来指导模型的学习.

手写字体
图1.手写字体

问题2: 使用了卷积核的NN(即CNN)究竟怎么不一样了?

你说像卷积核(如: 5*5大小)这样的二维空间(即: 平面)主要能识别什么特征呢? 主要就是线段了吧(或说(对象的)边界). 全连接网络(普通NN)则无法做到对线段/边界的过滤(个人感性分析是全连接网络的维度太多了, 噪音太多了), 而边界恰恰是我们(以及CNN图像识别模型)理解图像的一种主要/重要方式.

举个现实中的例子: 我们不会因为人的肤色的区别(黄/黑/白)而把不同肤色的人区分为人和非人种(我们会把他们归类为"人"这个标签), 肤色不同的人具有相同的外观形状, 故他们还是被归类成人这个类别的: 1.这在生物学角度上并不严谨, 2.幸亏现在用图像识别做人种识别的需求也还未曾听说.

再做一个极端的比喻, 假设我们得到了两种图像:

  • A类图像: 1.颜色单一是黑白两色的灰度图, 2.但有边缘可供识别;
  • B类图像: 1.颜色丰富包含我们常见的彩色, 2.但没有边缘可供识别;

对于A类图像, 我们能够识别其图像内的对象/内容, 因为我们可以通过边缘识别出图像中的对象(即对象的轮廓), 有了轮廓我们便知道对象是什么东西(即对象的类别),
对于B类图像, 我们很难想象有颜色(彩色)没轮廓是一种怎样的情景: 或许想到这种情形, 我们可以反驳说"还不如有轮廓没颜色(彩色)呢", 这不正是A类图像的情况吗?

以上分析是基于我们人的感官经验来说的(而且分析的结果也和自身感受没差), 但计算机是这么理解的吗? 计算机会这样吗: 它看到一幅A类图像, 说: “你这个图像有轮廓, 我喜欢, 我能识别其中的对象(CNN网络)”, 然后看了一幅B类图像, 说: “你这个图像有颜色没轮廓, 我不喜欢, 我不能识别其中的对象(全连接网络)”.

以下接着分析(归纳: A类图像代表CNN的套路, B类图像代表全连接网络的套路).

其实, 单就一张图像来说, CNN和全连接网络都能记住图像的内容:

  • CNN记住了图像中对象的轮廓, 包括非对象区域的一些"轮廓",
  • 全连接网络记住了图像的像素, 包括非对象区域的像素值,

假设我们获得了更多的图像(但仍属于上述那个单张图像的相同类别的), 但这些图的明亮程度不一定与那单张图像相同, 这会导致:

  • 对CNN来说, 没啥的, 只要明亮程度对识别轮廓影响有限, 某个类别的轮廓还是这个类别的轮廓(只要不是"变形金刚"), CNN还是会使用那个记住了的轮廓去判定该图所属的类别,
  • 对全连接网络来说, 这可不好了, 明亮程度的变化(均匀变化或者不均匀变化), 会影响像素值大小的变化, 会导致全连接网络给出其它值(类别判断错了).

你看, 如果就按照上述分析的这种方式去给图像做测试分类, 结果的稳定性就可以有个优劣的判断了(CNN更优), 总结: “像素值千变万化, 而轮廓始终如一”.

那么, 轮廓这么有魔力吗? (轮廓是科学还是魔法)

问: 小明晒黑了, 他还是小明吗? 我把我黑色的车喷成了白色的, 它还是(我的)车吗? 轮廓构成了我判断事物的主要因素, 也成了我给数据某种标签的主要考虑因素.
另: 我们在标注数据时, 就没有按照像素值去标注的, 而是类别标注(轮廓! 至少占主导因素).

在CNN中, 轮廓就代表"激活值", 也代表特征图中的轮廓, 激活值越大则轮廓越明显(越亮). 如果对应到CNN模型的数学计算, 我们求误差函数的最小化, 就是求(类别)概率的最大化:

  • 一堆图像数据中(即"训练集")对象们的轮廓对类别判定的结果是持续/连续/恒定影响的, 这会导致在不断地BP(反向传播)学习中, CNN逐渐调整(“学习率”)卷积核的权重(以及全连接层的权重, 或bias),
  • 另一方面, 这一堆数据中(即"训练集"), 对象的像素值会(始终)变化, 导致权重参数在使结果概率最大化时, 会时而增加时而减小(即参数会变化波动), 这最终是无法形成一个稳定的参数的,
  • 在这个过程中(你说(参数)调整也好, 说(模型)学习也罢), 最终都是要使分类结果的概率最大化(Softmax), 然而像素值的波动无法使卷积核参数趋于稳定(无法形成一种稳定的映射关系(从数学/模型本身的角度考虑), 现在是类A等下就是类B, 可不好), 而边缘(不管是正边缘还是负边缘(即: 明暗变化是从左往右还是从右往左), 都是边缘)的持续(记住: 是一组数据, 一个数据集的数据)输出使得参数/模型/学习/BP得以稳定下来(可以使输出往极值方向走(更大还更小? 概率是要最大化的?)), (卷积核边缘的)特征持续形成了(最终就是我们所谓的模型/结果), 总的说来, 边缘特征越训练越突出, 像素特征在一片"混乱的争吵"中逐渐堙没了(但其实也不对, 你看AlexNet的卷积核中, 一块GPU上的卷积核多条纹少整块像素值"特征", 而另一块GPU上的卷积核又有一些像素块的"特征", 这具体得看数据集吧), 再一总结: 边缘是一种特征, 像素值也是一种特征吧, 但边缘特征是持续性的(像机关枪式地不断催促模型朝某种边缘模式学习(BP, 梯度更新)), 而像素值特征不稳定(同一个类别的图像中, 都会不同), 像手枪式地, 不能很好地集中火力"催促"模型持续学习(或说与类别关联性不强), 总之具体还得看数据集, 最终, 像素特征和边缘特征同时存在(之前还在想像素特征应该会在边缘特征强大而持续的"边缘卷积学习"之下被"屏蔽"掉, 但在同一张Feature Map中都可以同时保留, 更别说同一层不同Depth的Feature Map了), 但不像全连接网络那样, CNN中它们应该是存在结构关系的(位置关系), 光这一点要比全连接网络要强了(其实关键是结构关系, 有结构关系就是有边缘了, 有边缘的情况, 像素特征可以继续保留并不冲突). 另: 因像素值变化而"冲突"掉的卷积核参数更新方向, 不会对结果有不好的影响, 因为这只能说明像素因素不能成为判断某个类别的依据(或说这样的像素因素不能参与模型对分类进行的恒等映射中), 除非, 像素一直是某种颜色值(比如红色), 那么, 权重参数会形成对红色的(稳定的)“依赖”, 红色也能参与模型对分类的恒等映射了. (今天这个分析一增再増, 希望没漏下什么, @0128_DATE1013, 睡觉去)

边缘特征的形成是必然的: 简单说去, 一图的左边的像素值假设为10, 右边的像素值假设是-10(一正一负是为了体现边缘), 这就形成了边缘了, 但同时卷积核为了使输出最大化, (BP的过程中)必然会使卷积核呈现一种边缘的形式, 如卷积核的左边是1, 右边是-1, 这就是输出结果最大化了, 同时, 这就是卷积核的边缘滤波特征了! (FK TODAY! FOR THIS WRITING!)

(故要使模型会学习, 初始化不可随意放之任之)

就是这个意思了, 但模型这么"复杂"而我又只用这么几句话概括, 再加上"千文不如一图"而我也没有提供图来解释, 很有可能我就是没传达明白的.

另一个角度理解 - 频率角度(傅里叶变换): 平波(或"低频波", 比照图像中变化不剧烈的"非边缘区域")无法参与最终波形的合成, 而高频波(比照图像中的"边缘", 变化剧烈)可以参与最终波形(即"分类结果")的合成. 上述这种比喻或许不那么适用, 但就从信息的角度来说, 图像中边缘区域比非边缘区域的熵值更高, 这使得从边缘中获取的信息(自己理解什么是"信息")要比从非边缘区域获取的要多, 而卷积核是使我们从边缘中获取信息成为可能的一种抓手(全卷积网络则不怎么关注包含于图像中的边缘), 我们从图像中获取了对象外观轮廓这么重要的信息, CNN的图像分类怎么可能不成功呢?! (当然, 其它Tricks也是必不可少的)

另一个角度理解 - 主成分角度(PCA): 像素不是主成分(噪音易过度), 边缘才是(主导类别结果), 我们得到图像进行分类, 抓住其"主成分"进行分析才对, 相较于纯像素值的特征, 基于像素变化的边缘特征是一种可靠的"主成分".

(TODO: 卷积核是对(全连接网络)模型的约束和指导(是模型运作/工作在合理的空间/环境), 结合卷积核移动滤波, 权重共享, depth/channel拓展(同一区域/对象的多种/多个特征的同时学习)等trick)

问题3: 深度学习为何需要大量数据(图像数据)?

这正是深度学习区别于传统算法的原因之一: 传统算法的数据形式相对固定, 我们也比较容易就指出其中的特征, 如排序算法, 我们可以说它的特征是每个元素的数值, 数据形式则可以是某种数据结构(如"列表", “链表”), 而对于深度学习(图像数据), 我们不好说这个图像中的特征就是"XXX"(之前我们这么做了(传统的CV手工特征标注), 但效果比CNN差), 我们的做法是: hey, 模型, 我这里有一堆数据, 我设计了你(你有卷积核), 我给你标签, 你自己去拟合数据集中的数据和标签吧. 这其中模型经过训练得出的特征(即"卷积核")便是传统CV特征设计中的特征, 而如果你说你要解释为什么这个特征是这样的(其实疑问是为什么深度网络就学会了识别), 那么很难解释清楚, 但这其中没有规律吗? 倒也不是: 卷积核最终的特征形式(主要)是边缘式的, 这就是特征.

那么一张图像中也有物体的边缘, 怎么不能用一张图片来训练模型使之学会识别图像?! 这就好像问"水为什么是湿的"这个问题一样, 突然懵了.

首先, 你如果拿一张一模一样的图像作为测试图像, 我觉得没有问题, 这个只有一张图片的数据集可以满足要求, 因为模型完全不必考虑超过训练图片以外的图片;

然而, 上述这种情况完全不可能在日常使用中有实际存在的可能, 我们的测试图集有很多不同的图像, 而实际场景中的图像又是另外的一个图集. 就上面的极端例子来说, 其实模型并没有学会分类: 一张图片就只包含一个类别的对象, 通过这么一张图片, 模型最多也就知道这张图片是属于某个类别A的, 如果你拿一个类别B的测试图片让这个模型去识别, 它最多只能说"这不是类别A", 而不是"这是类别B".

另外, 上述一张图片的极端数据集在"特征告知"方面也是不完整的: 虽然CNN具有自主学习的特点(BP自主根据图像的数据进行偏微分), 但就单张图像而言, 卷积核并不会区分对待图像中的边缘与非边缘: 它并不会说"我正在对边缘区域进行卷积, 我要认证一点, 如果是非边缘区域, 我就放之任之算了", 相反, 在这一张图中, 它会同时学习边缘与非边缘的特点(比如: 边缘是呈某种形状的(如"三角形"), 非边缘是比较明亮的(如"白色")), 直到我们觉得它给出的结果是可以接受的了, 此时, 这个"单图"模型直到这个图像类别的特点就是"三角形"和"白色".

然而, 就像之前说的(在一个物体的识别中, "形状(像素的变化)"比"颜色(像素)"重要), 在其它图片中, 同样形状的物体可以有不同的颜色(Hint: 黄/黑/白肤色, 我们人类认知就是这么做的, 或许也是大自然的用意), 然而我们就给这些具有相同形状物体但不一定同色的图片归成同一类(同一种标签(label)), 它们都具有相同形状, 但不同颜色, 这对于大量的数据意味着什么呢?!

这意味着: 随着训练/学习的进行, 1.噪音逐渐抵消: 同一个label的不同颜色, 对权重(Weights)有不同的梯度影响, 如果它们对权重的影响是"不同向/反向"的, 则这可以被理解成它们互为噪音, 它们对权重的影响相互抵消(“权重各奔东西”), 最终表现得对最终分类结果(label)没有影响/作用, 2.同一特点(相同的形状/边缘)逐渐得到加强, 因为这么多图片中的共性始终如一, 它们(数据集中相同的形状特征)对模型的特征学习的影响是持续同向的, 进而使得模型权重的变化朝着使输出值最大化(概率/Softmax最大化)的方向进行, 我去, 这不就是Maximum Likelihood吗: 通过训练, 我们的模型给出了某种特征最大化概率的标签值, 那么我们便认为该图像中的特征就是该最大概率的标签的类的.

拿什么做比喻好呢(解释第2点)?! 曾想过用飞镖投掷做比喻(投掷一定次数的飞镖, 最终落点会形成一个概率分布, 而这个概率分布就好像图像中对象形状特征对应的概率), 思来想去, 想到用印章来做比喻: 我们有个图案为一定形状的印章(类比图片中的物体形状), 但限于我们的油墨不足(类比单个图片不足以使模型学到足够的鲁棒的特征), 我们需要按压多次印章(类比"随机梯度下降", 逐渐学习这个过程)使得最终的图案显现(类比"概率最大化/最大似然"), 而这个最终图案的显现, 也就是我们想要的分类结果, 当然, 分类错误的情况, 我将之类比为由于印章油墨不足引起的图案模糊导致的误判.

最后, 我以如下的戏谑短句结束这个问题的分析: 模型不能戴有色眼镜(不能靠颜色), 要客观分析(抓住主要特征: 形状).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值