赞
踩
1、BP神经网络
1.1 神经网络基础
神经网络的基本组成单元是神经元。神经元的通用模型如图 1所示,其中常用的激活函数有阈值函数、sigmoid函数和双曲正切函数。
图 1 神经元模型
神经元的输出为:
2、深度学习之卷积神经网络
2.1 卷积神经网络概要
卷积神经网络是基于动物视觉感受野设计而成,由卷积层、池化层和其他层构成。
BP神经网络中,每一层都是全连接的,假如输入是一幅1000*1000*1 的图像,则输入层与隐层某一个节点将有1000*1000 个权重需要训练,这会导致训练困难。而卷积神经网络的卷积层每个节点与上一层某个区域通过卷积核连接,而与这块区域以外的区域无连接。同样对于一副1000*1000*1的图像,采用10*10的卷积核,那么卷积层每个节点只需要训练100个节点;假若卷积核在图像上扫描的步长为1个像素,则卷积层需要991*991个节点,若每个节点对应不同的卷积核,则需要训练的参数依然是一个天文数字。为此,卷积神经网络提出了权值共享概念,即同一个卷积层内,所有神经元的权值是相同的,也就是用同一个卷积核生成卷积层上的所有节点。因此对于上面的训练,只需要训练100个权重。
池化层夹在卷积层中间,其主要作用逐步压缩减少数据和参数的数量,也在一定程度上减少过拟合现象。其操作是把上一层输入数据的某块区域压缩成一个值。
其他层:以前设计卷积神经网络时,在后面都有归一化层,用来模拟人脑的抑制作用,但是后来认为对最终的效果没什么帮助,就用的很少了;最后用的分类层是全连接层。
CNN的训练也采用前向和后向传播。
2.2 前向传播
(1)卷积层
卷积操作是用一个卷积核与图像对应区域进行卷积得到一个值,然后不断的移动卷积核和求卷积,就可完成对整个图像的卷积。在卷积神经网络中,卷积层的计算不仅涉及一般图像卷积概念,还有深度和步长的概念。深度决定同一个区域的神经元个数,也就是有几个卷积核对同一块区域进行卷积操作;步长是卷积核移动多少个像素。
以一个例子来说明卷积层的具体操作。输入数据的大小为5*5*3,卷积核大小为3*3,输出的深度为2,如图 4所示。图中将输入数据在长宽方向进行了填0扩充。
图 4 卷积层操作例子
输入数据是一个3通道数据,因此卷积层每个深度的节点都有3个不同的卷积核,分别与输入的3个通道进行卷积,每个通道卷积后都得到一个值,也就是3个通道卷积完成后,有3个值,再把这3值和偏置求和就得到节点的值。每移动卷积核都进行这样的计算。在这篇博客中有卷积计算的动态图。
得到了卷积层每层深度的特征图后,需要将这些特征输入到激活函数中,从而得到卷积层最终的输出。神经网络中常用的sigmoid函数和双曲正切函数容易饱和,造成梯度消失。在CNN中采用的是另外一种激活函数:ReLU。
ReLU函数是有神经科学家Dayan、Abott从生物学角度,模拟脑神经元接受信号更精确的激活模型,其表达式为:
(3)全连接层
全连接层主要用来进行学习,和传统BP神经网络类似。CNN一般通常采用SoftMax方法进行分类。
2.3 后向传播(参照论文Notes on Convolutional Neural Networks)
学习的目的是获得对输入准确精炼的描述。影响输出结果的是每层的权重和偏置,因此为了达到目标,需要将输出误差层层传递回去,看每个参数对误差的影响,并因此调整参数。
(1)误差传递概述
对于输入数据对
(2)当前层(l)为卷积层
卷积层的输出是由若干个卷积核与上一层输出卷积之和,并将这些和通过激活函数而生成的:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。