2021 MIT || 麻省理工机器学习导论(三)Convolutional Neural Networks(CNN卷积神经网络)

2021 MIT || 麻省理工机器学习导论(三)CONVOLUTIONAL NEURAL NETWORKS

YOUTube:MIT 6.S191: Introduction to Deep Learning(要梯子,可以去B站上找找,就是没有字幕)

这些是我在学习一点机器学习后,回过头来重新学习相关的基础,内容主要包含了上课的笔记,以及一些见解。关于各个模块更详细的内容请另寻它处,这篇笔记主要是对机器学习框架的构建。

这节课我们学习的是基于视觉的CNN卷积神经网络(Convolutional Neural Networks),CNN用于处理图片。

导读

对于我们人类来说,我们看到一张图片(下图)

 

我们会反应过来这是一个街景,然后可能就会把关注点放在颜色鲜艳的出租车上而不是远处的卡车,然后注意到汽车停在那边,有过马路的行人。

我们还可以从背景中获得相关的信息:红灯。接下来我们的大脑就会思考,这是个汽车等红灯,行人过马路的场景。

我们不仅仅会理解图像是什么意思,而且明白图像代表什么,并且可能会脑补出一些相关的信息。

那么我们得构造一个怎样的网络才能达到识别图像,并且能像人脑一样思考呢?


深度学习已经在视觉方面走的很远:

它可以给机器人提供视觉上的信息

image-20210820184943375

帮助我们进行医学检测

image-20210820185023778

在自动驾驶方面的发展也尤为热门

image-20210820185115048

计算机中的图片

众所周知,计算机中的图片是由一个又一个像素堆叠而成(可以尝试把一张图片一直放大),不同的像素组成一张纸精致的图片。那么像素又是因为什么而表示出不同的颜色呢?

每一个像素都是一个0~255(2^8​个像素,所以是8位,np.uint8)的数值,数值越大亮度越强。

  • 0代表黑

  • 255代表白

有颜色的图片一般被称为RGB图片,有RGB三个通道。即一个点的图案由同一个位置的三个像素共同决定的。RGB图片的矩阵大小为[H,W,3]

image-20210813173302074

计算机视觉的任务

计算机视觉所干的事情大概可以分成两类:

  • 回归:输出连续的变量

  • 分类:将图片的内容进行分类(实例分割与语义分割)

image-20210813173355350

计算机视觉学习的关键

想想我们怎么判断一个物体?

鼻子,眼睛,嘴巴 → 人  

轮子,车灯,车牌 → 车

门,窗户,屋檐 → 房子

image-20210813174622649

所以我们应该教会网络怎么识别相关的特征。关于人的特征出现的多,就把这张图片分类为人。

全卷积神经网络

image-20210820193621300

输入的是一张2D的图片,我们读取它的像素值矩阵(其具有空间特征),为了输入全连接网络,我们把它打为一维的向量。故此它失去了原来的空间信息,为此,我们要在下一层学习重要的空间信息。

例如,一个像素更接近其相邻的像素,这就是空间信息。

但是这些信息在输入网络之前都失去了,因为我们二维的矩阵展开为一维的向量。所以我们的问题是如何建模一些结构,以便我们可以学习重要的空间信息,

至于卷积的计算方式,我们这里就不详细解释,请自行搜索

image-20210820195707248

image-20210820195821762

简单的来说,就是对应的像素框的数据相乘后全部相加,就是得到的输出。

特征提取

我们将一张图片输入一个网络,通过这个网络我们可以提取到图片各种特征信息。

  • 低级特征:边缘信息

  • 中级特征:五官

  • 高级特征:面部结构

image-20210813175450632

详细一点的解释请移步神经网络学习什么东西/卷积提取

卷积

下面的这两张图片都是字母X,如果我们只告诉了计算机左边那张图片是X,那么它将如何识别出经过翻转,旋转等操作后的图片X呢?

卷!!!

通过卷积,对一片的像素区域进行比对来确认两张图片是否相似。

image-20210813222117163

数学上的卷积

不知道你是否听说过滤波器,通过滤波器,我们可以对图像进行处理,使图像变得平滑,锐化,模糊,或者得到图像的边缘。

不同的滤波器有不同的效果,下图中右下角的数字就是不同功能的滤波器。这些3×3大小的窗口在图片上与对应的点进行计算,然后滑动窗口再计算,得到最后的图像就是滤波后的图像。

而卷积就是滤波器。只不过卷积核的大小一般设为1×1,3×3,5×5等奇数的正方形。滤波器中的参数多是人工设定的,而卷积核中的参数是随机初始化后通过网络不断的训练,最后得到的。

你们看看这些通过滤波器得到的图是不是与上面的特征图很像。

image-20210813223342748

卷积运算

用于分类的CNN

我们来看看CNN网络中通常会用到些什么吧

  1. 卷积:使用滤波器去生成特征图

  2. 非线性:例如ReLU等非线性激活函数,得到高维的非线性信息

  3. 池化:下采样特征图(下:使图片变小;上:使图片变大)

  4. 全连接:得到每个部分的特征。

image-20210813223337505

网络中的卷积

image-20210813223829849

image-20210813223838406

卷积中有许多超参数:

  • 不同大小的卷积核可以获得不同的感受野

  • 卷积核的步长度代表提取的精度

  • 添加不同的偏置在增加卷积的表达能力

  • 扥扥

非线性

image-20210820201251935

激活函数是一个非常重要的操作。依照高中生物的知识,我们知道一个神经元只有在电刺激达到一定的阈值,才会释放神经递质产生兴奋。

我认为,激活函数可以达到一个类似的效果(以上图的ReLU为例),忽略小于0的数据,只看大于0的数据。可以增强网络的非线性表达能力,减少参数量。

池化

池化主要是使用平均池化与最大池化,至于其他的衍生这里就不提及。

优点:

  1. 减小了特征图的大小,降低参数

  2. 保持空间上的连续性

  • 最大池化:

如下图,对于一个2×2大小,步长为2的最大池化,就是以对应区域中像素的最大值为输出。

可以达到突出特征的效果

  • 平均池化

就是计算对应区域中的所有值的平均值,以其作为输出。

可以是网络更关注上下文信息,一般在分类网络最后会把feature map通过平均池化降低大小,然后再输入全连接层,最后再得到分类结果。

image-20210813224301436

详细请看池化总结

全连接层

全连接层就与第一节课中介绍的多层感知机相似,就是提取多维度的图片中的特征,得到各个部分的特征,然后输出为一维的向量。最后将这一维的向量输入softmax得到每个像素块的概率数值,依据数值进行分类。

但是即是通过池化把特诊图下采样,全连接所含的参数量依旧太多了,故此全连接多被1×1的卷积所代替。

详细请看神经网络学习什么东西/全连接层

softmax

$$
softmax(y_i)=\frac{e^{y_i}}{\sum_j{e^{y_j}}}
$$

y_i​就是一维向量中第i个数值,计算其的e的指数函数(得到>0的值,因为这是概率)得到a_i​

$$
softmax(y_i)=\frac{a_i}{\sum_j{a_j}}
$$

\sum_j{a_j}:所有的a_i​相加,也就是所有的y_i相加和为1

我们依照y_i进行最终的分类

image-20210813224621110

目标检测

image-20210820212700993

检测图片的中的物体,为其进行分类,然后长方形的框把对象框起来。

image-20210820212750444

语义分割

输入一张RGB图片,返回一张带有预测的结果。对每个像素进行归类,不同的类用不同的颜色表示。值得注意的是,预测结果是一张单通道的图片,之所以能有不同的颜色,是对其经过特殊的处理。

image-20210820213519291

最后

因为视觉是我主要的学习方向,所以深知上面所述那些知识点的复杂,这里只是对知识点一个简单的概述,跟多具体的内容与细节希望各位通过搜索了解。

2021年8月21日10:59:59

持续更新。。。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值