CNN卷积神经网络知识点回顾学习(一)
应用于影像识别,计算机通过训练能够像人大脑一样识别出图片、影像中的物体、符号
应用:人脸识别、医院核磁共振影像对病情判断、车载摄像头道路行驶车辆、物体标识识别
图像成像原理:图片由像素点构成(就是下面7-3图中的一个一个小格子),最终成像效果是由像素背后的颜色数值决定
神经网络几个常用术语
01激活函数
sigmoid函数
函数就是一个给定某个输入会返回某个输出的转换器,向sigmoid函数输入1.0会输出h(1.0)=0.731,用sigmoid函数作为激活函数进行信号的转换,转换后的信号被传送给下一个神经元,函数图像如下所示:
sigmoid函数最重要的特性就是平滑性,sigmoid函数的平滑性对于神经网络的学习有重要的意义
,与之相对比的是阶跃函数,阶跃函数以0为界,输出从0开始发生急剧变化,如下图虚线所示
阶跃函数只能返回0或者1,而sigmoid函数可以返回各种不同的实数值(根据输入的数据,结合函数的运算),所以神经网络采用sigmoid函数后,神经网络中流动的是连续的实数值信号。
若将输入数据的过程看成水流过来的过程,阶跃函数只做是否传送水(0或1)这两个动作,而sigmoid函数根据流过来的水量相应的一对一的调整传送出去的水量。两个函数的相同点是,均在输入小的时候输出接近于0,随着输入的增大(输入信号为重要信息),输出向1靠近,而且输出信号的值都在0和1之间。两者还都是非线性函数,即不是一条直线
神经网络中使用的是平滑变化的 sigmoid函数,而感知机中使用的是信号急剧变化的阶跃函数
sigmoid函数的一个重要的特性就是倒数在任何地方都不为0,对神经学习的进行起到了保障作用
ReLU(Rextified Linear Unit)函数
在输入大于0时输出该值,输入小于等于0,输出0
函数图像:
激活函数应用
ReLU层计算图如下,当正向传播输入x>0,反向原封不动将上游值传给下游;否则反向传播中传给下游的信号将中断在relu层处
有电流通过对应输入x>0,没电流通过对应x<=0,x就代表电流 ,ON和OF对应下面导函数的值,ON代表导函数为1,电流原样通过;OF代表导函数为0,电流终止
02计算图
顾名思义,将计算过程用图形(数据结构图:通过多个节点和边表示)表示出来。
通过节点(用圈表示)和箭头表示计算过程,节点内是计算的内容(操作*1.2或者+等等),也可将节点内的内容标在圈外如下图
计算图的优点:可以将计算的中间结果全部保存起来
使用计算图的最大原因:可以通过反向传播高效计算导数
反向传播的导数传递图:
传递局部导数,将导数值写在箭头下面(1->1.1->2.2),由最终的导数值2.2可知,如果苹果的价格上涨1日元,最终支付的金额会增加2.2日元,局部导数原理是基于链式法则
反向传播计算
以y=f(x)计算为例,反向传播如下图
什么是链式法则?
链式法则是关于复合函数的导数的性质,如果某个函数由复合函数表示,则该复合函数的导数可以用构成复合函数的各个函数的导数的乘积表示
反向传播计算过程如下图,每次新乘的数值都是关于那条边的导数值,其中**2为平方计算
03全连接层(Affine层)
fully-connected---相邻的所有神经元之间都有连接,即所有的神经元都与前后的所有神经元相连接
用affine层实现全连接,相邻层的神经元全部连接在一起,输出的数量可以任意决定。
CNN基本架构
步骤1卷积核及卷积计算
特征过滤器filter如下图,提取图片特征(通常是3*3的像素图)
提取特征的计算规则:顾名思义,CNN卷积层就是进行卷积运算,按顺序提取原始图片的3*3的像素区域,将3*3像素区域每个像素单元与3*3卷积核对应的相对位置上的元素值依次相乘相加再求和,如下图,对输入数据应用滤波器
鱼书上p204:运算最终结果如下
在特征图中可以根据像素值的大小决定像素颜色的深浅,像素图经滤波器过滤后尺寸变小,由4*4变成了2*2,一些边缘值会丢失,为解决这个问题,引申出了padding扩充方法
填充(Padding)
将原始的4*4特征图先扩充成6*6,扩充部分像素值均设置成0,这样就会减少边缘值丢失,垂直和水平特征都能得到更完整的提取
步幅(stride)
即应用滤波器的位置间隔,一次跨的格数为步幅
经卷积计算的输出大小(OH,OW)计算
例子如下
步骤2:最大池化
目的将图片数据进一步压缩,仅反映特征图中最突出的特点
如下图,将4*4的特征图通过2*2的网格分隔成2*2的四个部分如下,取每个部分的最大值,直接放入最大池化后的网格对应的相对位置中
将池化后的数据进行扁平化处理
池化层特征如下: