通俗易懂的卷积神经网络
1人工神经网络1。1神经元
神经网络由大量的神经元相互连接而成。每个神经元接受线性组合的输入后,最开始只是简单的线性加权,后来给每个神经元加上了非线性的激活函数,从而进行非线性变换后输出。每两个神经元之间的连接代表加权值,称之为权重(weight)。不同的权重和激活函数,则会导致神经网络不同的输出。
举个手写识别的例子,给定一个未知数字,让神经网络识别是什么数字。此时的神经网络的输入由一组被输入图像的像素所激活的输入神经元所定义。在通过非线性激活函数进行非线性变换后,神经元被激活然后被传递到其他神经元。重复这一过程,直到最后一个输出神经元被激活。从而识别当前数字是什么字。
神经网络的每个神经元如下
基本wxb的形式,其中
、
表示输入向量
、
为权重,几个输入则意味着有几个权重,即每个输入都被赋予一个权重b为偏置biasg(z)为激活函数a为输出
如果只是上面这样一说,估计以前没接触过的十有八九又必定迷糊了。事实上,上述简单模型可以追溯到20世纪5060年代的感知器,可以把感知器理解为一个根据不同因素、以及各个因素的重要性程度而做决策的模型。
举个例子,这周末北京有一草莓音乐节,那去不去呢?决定你是否去有二个因素,这二个因素可以对应二个输入,分别用x1、x2表示。此外,这二个因素对做决策的影响程度不一样,各自的影响程度用权重w1、w2表示。一般来说,音乐节的演唱嘉宾会非常影响你去不去,唱得好的前提下即便没人陪同都可忍受,但如果唱得不好还不如你上台唱呢。所以,我们可以如下表示:
:是否有喜欢的演唱嘉宾。
1你喜欢这些嘉宾,
0你不喜欢这些嘉宾。嘉宾因素的权重
7
:是否有人陪你同去。
1有人陪你同去,
0没人陪你同去。是否有人陪同的权重
3。
这样,咱们的决策模型便建立起来了:g(z)g(
b),g表示激活函数,这里的b可以理解成为更好达到目标而做调整的偏置项。
一开始为了简单,人们把激活函数定义成一个线性函数,即对于结果做一个线性变化,比如一个简单的线性激活函数是g(z)z,输出都是输入的线性变换。后来实际应用中发现,线性激活函数太过局限,于是人们引入了非线性激活函数。1。2激活函数
常用的非线性激活函数有sigmoid、tanh、relu等等,前两者sigmoidtanh比较常见于全连接层,后者relu常见于卷积层。这里先简要介绍下最基础的sigmoid函数。
sigmoid的函数表达式如下
其中z是一个线性组合,比如z可以等于:b
。通过代入很大的正数或很小的负数到g(z)函数中可知,其结果趋近于0或1。
因此,sigmoid函数g(z)的图形表示如下(横轴表示定义域z,纵轴表示值域g(z)):
也就是说,sigmoid函数的功能是相当于把一个实数压缩至0到1之间。当z是非常大的正数时,g(z)会趋近于1,而z是非常小的负数时,则g(z)会趋近于0。
压缩至0到1有何用处呢?用处是这样一来便可以把激活函数看作一种分类的概率,比如激活函数的输出为0。9的话便可以解释为90的概率为正样本。
举个例子,如下图(图引自Stanford机器学习公开课)
zb
,其中b为偏置项假定取30,
、
都取为20
如果
0
0,则z30,g(z)1(1ez)趋近于0。此外,从上图sigmoid函数的图形上也可以看出,当z30的时候,g(z)的值趋近于0如果
0
1,或
1
0,则zb
302010,同样,g(z)的值趋近于0如果
1
1,则zb
3020120110,此时,g(z)趋近于1。
换言之,只有
和
都取1的时候,g(z)1,判定为正样本;
或
取0的时候,g(z)0,判定为负样本,如此达到分类的目的。
1。3神经网络
将下图的这种单个神经元
组织在一起,便形成了神经网络。下图便是一个三层神经网络结构
上图中最左边的原始输入信息称之为输入层,最右边的神经元称之为输出层(上图中输出层只有一个神经元),中间的叫隐藏层。
啥叫输入层、输出层、隐藏层呢?输入层(Inputlayer),众多神经元(Neuron)接受大量非线形输入讯息。输入的讯息称为输入向量。输出层(Outputlayer),讯息在神经元链接中传输、分析、权衡,形成输出结果。输出的讯息称为输出向量。隐藏层(Hiddenlayer),简称隐层,是输入层和输出层之间众多神经元和链接组成的各个层面。如果有多个隐藏层,则意味着多个激活函数。
同时,每一层都可能由单个或多个神经元组成,每一层的输出将会作为下一层的输入数据。比如下图中间隐藏层来说,隐藏层的3个神经元a1、a2、a3皆各自接受来自多个不同权重的输入(因为有x1、x2、x3这三个输入,所以a1a2a3都会接受x1x2x3各自分别赋予的权重,即几个输入则几个权重),接着,a1、a2、a3又在自身各自不同权重的影响下成为的输出层的输入,最终由输出层输出最终结果。
上图(图引自Stanford机器学习公开课)中
表示第j层第i个单元的激活函数神经元
表示从第j层映射到第j1层的控制函数的权重矩阵
此外,输入层和隐藏层都存在一个偏置(biasunit),所以上图中也增加了偏置项:x0、a0。针对上图,有如下公式
此外,上文中讲的都是一层隐藏层,但实际中也有多层隐藏层的,即输入层和输出层中间夹着数层隐藏层,层和层之间是全连接的结构,同一层的神经元之间没有连接。
2卷积神经网络之层级结构
cs231n课程里给出了卷积神经网络各个层级结构,如下图
上图中CNN要做的事情是:给定一张图片,是车还是马未知,是什么车也未知,现在需要模型判断这张图片里具体是一个什么东西,总之输出一个结果:如果是车那是什么车
所以最左边是数据输入层,对数据做一些处理,比如去均值(把输入数据各个维度都中心化为0,避免数据过多偏差,影响训练效果)、归一化(把所有的数据都归一到同样的范围)、PCA白化等等。CNN只对训练集做去均值这一步。
中间是CONV:卷积计算层,线性乘积求和。RELU:激励层,上文2。2节中有提到:ReLU是激活函数的一种。POOL:池化层,简言之,即取区域平均或最大。
最右边是FC:全连接层
这几个部分中,卷积计算层是CNN的核心,下文将重点阐述。3CNN之卷积计算层3。1CNN怎么进行识别
当我们给定一个X的图案,计算机怎么识别这个图案就是X呢?一个可能的办法就是计算机存储一张标准的X图案,然后把需要识别的未知图案跟标准X图案进行比对,如果二者一致,则判定未知图案即是一个X图案。
而且即便未知图案可能有一些平移或稍稍变形,依然能辨别出它是一个X图案。如此,CNN是把未知图案和标准X图案一个局部一个局部的对比,如下图所示
作者:七月在线七仔
链接:https:zhuanlan。zhihu。comp36424985
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
而未知图案的局部和标准X图案的局部一个一个比对时的计算过程,便是卷积操作。卷积计算结果为1表示匹配,否则不匹配。
接下来,我们来了解下什么是卷积操作。
3。2什么是卷积
对图像(不同的数据窗口数据)和滤波矩阵(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的卷积操作,也是卷积神经网络的名字来源。
非严格意义上来讲,下图中红框框起来的部分便可以理解为一个滤波器,即带着一组固定权重的神经元。多个滤波器叠加便成了卷积层。
举个具体的例子。比如下图中,图中左边部分是原始输入数据,图中中间部分是滤波器filter,图中右边是输出的新的二维数据。
分解下上图
对应位置上是数字先相乘后相加
中间滤波器filter与数据窗口做内积,其具体计算过程则是:4000000001010001428
3。3图像上的卷积
在下图对应的计算过程中,输入是一定区域大小(widthheight)的数据,和滤波器filter(带着一组固定权重的神经元)做内积后等到新的二维数据。
具体来说,左边是图像输入,中间部分就是滤波器filter(带着一组固定权重的神经元),不同的滤波器filter会得到不同的输出数据,比如颜色深浅、轮廓。相当于如果想提取图像的不同特征,则用不同的滤波器filter,提取想要的关于图像的特定信息:颜色深浅或轮廓。
如下图所示
3。4GIF动态卷积图
在CNN中,滤波器filter(带着一组固定权重的神经元)对局部输入数据进行卷积计算。每计算完一个数据窗口内的局部数据后,数据窗口不断平移滑动,直到计算完所有数据。这个过程中,有这么几个参数:
a。深度depth:神经元个数,决定输出的depth厚度。同时代表滤波器个数。
b。步长stride:决定滑动多少步可以到边缘。
c。填充值zeropadding:在外围边缘补充若干圈0,方便从初始位置以步长为单位可以刚好滑倒末尾位置,通俗地讲就是为了总长能被步长整除。
cs231n课程中有一张卷积动图,貌似是用d3js和一个util画的,我根据cs231n的卷积动图依次截取了18张图,然后用一gif制图工具制作了一gif动态卷积图。如下gif图所示
可以看到:两个神经元,即depth2,意味着有两个滤波器。数据窗口每次移动两个步长取33的局部数据,即stride2。zeropadding1。
然后分别以两个滤波器filter为轴滑动数组进行卷积计算,得到两组不同的结果。
如果初看上图,可能不一定能立马理解啥意思,但结合上文的内容后,理解这个动图已经不是很困难的事情:左边是输入(773中,77代表图像的像素长宽,3代表R、G、B三个颜色通道)中间部分是两个不同的滤波器Filterw0、Filterw1最右边则是两个不同的输出
随着左边数据窗口的平移滑动,滤波器Filterw0Filterw1对不同的局部数据进行卷积计算。
值得一提的是:
1。左边数据在变化,每次滤波器都是针对某一局部的数据窗口进行卷积,这就是所谓的CNN中的局部感知机制。
打个比方,滤波器就像一双眼睛,人类视角有限,一眼望去,只能看到这世界的局部。如果一眼就看到全世界,你会累死,而且一下子接受全世界所有信息,你大脑接收不过来。当然,即便是看局部,针对局部里的信息人类双眼也是有偏重、偏好的。比如看美女,对脸、胸、腿是重点关注,所以这3个输入的权重相对较大。
2。与此同时,数据窗口滑动,导致输入在变化,但中间滤波器Filterw0的权重(即每个神经元连接数据窗口的权重)是固定不变的,这个权重不变即所谓的CNN中的参数(权重)共享机制。
再打个比方,某人环游全世界,所看到的信息在变,但采集信息的双眼不变。btw,不同人的双眼看同一个局部信息所感受到的不同,即一千个读者有一千个哈姆雷特,所以不同的滤波器就像不同的双眼,不同的人有着不同的反馈结果。
我第一次看到上面这个动态图的时候,只觉得很炫,另外就是据说计算过程是相乘后相加,但到底具体是个怎么相乘后相加的计算过程则无法一眼看出,网上也没有一目了然的计算过程。本文来细究下。
首先,我们来分解下上述动图,如下图
接着,我们细究下上图的具体计算过程。即上图中的输出结果1具体是怎么计算得到的呢?其实,类似wxb,w对应滤波器Filterw0,x对应不同的数据窗口,b对应Biasb0,相当于滤波器Filterw0与一个个数据窗口相乘再求和后,最后加上Biasb0得到输出结果1,如下过程所示:
101010100011101001
100010000111101002
001000100210001010
11
然后滤波器Filterw0固定不变,数据窗口向右移动2步,继续做内积计算,得到0的输出结果
最后,换做另外一个不同的滤波器Filterw1、不同的偏置Biasb1,再跟图中最左边的数据窗口做卷积,可得到另外一个不同的输出。
4CNN之激励层与池化层4。1ReLU激励层
1。2节介绍了激活函数sigmoid,但实际梯度下降中,sigmoid容易饱和、造成终止梯度传递,且没有0中心化。咋办呢,可以尝试另外一个激活函数:ReLU,其图形表示如下
ReLU的优点是收敛快,求梯度简单。4。2池化pool层
前头说了,池化,简言之,即取区域平均或最大,如下图所示(图引自cs231n)
上图所展示的是取区域最大,即上图左边部分中左上角2x2的矩阵中6最大,右上角2x2的矩阵中8最大,左下角2x2的矩阵中3最大,右下角2x2的矩阵中4最大,所以得到上图右边部分的结果:6834。很简单不是?
国庆假期4。22亿人次出游旅游收入2872。1亿元经文化和旅游部数据中心测算,2022年国庆节假期7天,全国国内旅游出游4。22亿人次,同比减少18。2,按可比口径恢复至2019年同期的60。7。实现国内旅游收入2872。1亿元,
多地景区免门票政策观察国庆节期间,福建武夷山景区游人如织。在网上做攻略时发现武夷山主景区免门票,立马订了机票。来自辽宁的陈女士说。今年以来,福建武夷山山东崂山陕西华山湖南张家界大峡谷和七星山等景区纷纷出
5000mAh60W8GB,降至1089元!6nm芯片千元机迎来清仓依靠OPPO强势崛起的realme,成为了国内增长速度最快的手机品牌,两三年的时间全球用户量便已经突破了1亿。而回顾realme今年发布的手机,最值得买的手机我觉得不是骁龙8旗舰手
2022笔记本市场排行榜华为同比增长101,联想37占比持续领跑笔记本电脑市场已中兴,这是过去三年时间里媒体关于笔记本电脑市场的核心观点,事实也的确如此,得益于一系列市场需求变化,笔记本电脑出货量持续攀升,而谁能够在全新的消费背景下获得消费者青
密码,让百姓生活更安全密码技术是保障网络与信息安全的核心技术和基础支撑,通过加密保护和安全认证两大核心功能,可以完整实现防假冒防泄密防篡改抗抵赖等安全需求,在网络空间中扮演着信使卫士和基因的重要角色。信
暗物质与暗能量宇宙大爆炸理论仍然是目前为止解释宇宙形成最好的科学模型,许多证据都支持它。然而最近的发现继续震撼着我们对宇宙的理解。天文学家和其他科学家正在努力解决一些没有答案的问题,比如宇宙是由
要提防!以调低年化利率为由电诈视频加载中支付宝客服来电话,要帮你下调年化利率。请注意!你很有可能被骗子盯上了!根据我国电信网编号计划规划,95开头的号码是全国范围统一使用的号码,通常用于企业客服。近年来,由于高
中山大学林佑昇教授太赫兹波段的可主动调控双层跑道形超材料研究背景和技术挑战超材料作为一种可以在亚波长尺度上对电磁波进行控制的人工复合材料,由于其具有传统光学材料所不具备的独特的光学响应,吸引了研究者们的极大兴趣。通过对超材料几何结构和特
比亚迪是如何让西方巨头恐惧的你知道中国最牛的汽车公司是哪一家吗?它让西方很多高科技公司都忌惮无比。这家成立仅仅27年的汽车公司,市值接近一万亿,现在是全球市值第三的车企,超越了大众,远远地甩开了奔驰,宝马和奥
FLOW马路科技FLOW3DAM是一个计算流体动力学软件,用于模拟和分析增材制造过程,如激光粉床融合(LPBF)黏结剂喷射和定向能量沉积(DED)。FLOW3DAM的自由液面跟踪算法及其多种物理模
华为海思芯片4K电视盒子旗舰版88元人们对于机顶盒的需求,也就是电视盒子的需求越来越高,一方面是电视盒子可以通过网络看到电视节目,另一方面是电视盒子可以观看网络的视频资源,也可以观看自己下载的一些4K片源,让我们的娱