神经元模型
概述
与经典的机器学习算法相较,神经网络或者深度学习是一种全新的建模理念,它并不关心模型的假设以及相应的数学推导,也就是说它并不关心模型的可解释性。这个理念的目的是借鉴仿生学的思路,利用计算机和数学模型去模拟人的大脑。
根据生物学的研究,人脑的计算单元是神经元(neuron)。它能根据环境变化做出反应,再将信息给其他的神经元。在人脑中,大约有860亿个神经元,它们相互联结构成了极其复杂的神经系统。
一个典型的神经元由4个部分组成,如下图。
树突:一个神经元有若干个树突,它们能接收来自其他神经元的信号,并将信号传递给细胞体。
细胞体:细胞体是神经元的核心,它把各个树突传递过来的信号加总起来,得到一个总的刺激信号。
轴突:当细胞体内的刺激信号超过一定阈值之后,神经元的轴突会对外发送信号。
突触:该神经元发送的信号(若有)将由突触向其他神经元或人体内的其他组织(对神经信号做出反应的组织)传递。需要注意的是,神经元通常有多个突触,但它们传递的信号都是一样的。
神经元有两种状态:兴奋和抑制。一般情况下,大多数的神经元是处于抑制状态,但是一旦某个神经元收到刺激,导致它的电位超过一个阈值,那么这个神经元就会被激活,处于“兴奋”状态,进而向其他的神经元传播化学物质(其实就是信息)。
将上述的神经元结构抽象成数学概念,可以得到图中的神经元模型。
模型的输入是数据里的自变量,比如图中的、、,对应着神经元里的树突。
接收输入变量的是一个线性模型,对输入变量进行加权求和,对应着神经元的细胞体。用表示权重。
接下来是一个非线性的激活函数(activation function),它将控制是否对外发送信号,对应神经元里的轴突。在神经网络领域,常常用一个圆圈来概括地表示线性模型和激活函数,并不将两者分开。
将模型的各个部分联结起来得到最后的输出,这个值将传递给下一个神经元模型,在图中用箭头表示,对应着神经元里的突触。一个神经元可以有多个输出箭头,但它们所输出的值都是一样的。
作用函数
非对称Sigmoid函数(Log Sigmoid)
简称S作用函数,是可微的,用下式表示:
对称型Sigmoid函数(Tangent Sigmoid)
是可微的,用下式表示:
对称型阶跃函数
具有节约作用函数的神经元,称为阈值逻辑单元。用下式表示:
感知机模型
感知机原理
感知机(Perceptron)是1957年,由Rosenblatt提出,是神经网络和支 持向量机的基础。 感知机由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元。也称为阈值逻辑单元(threshold logic unit)。以下为一个单层感知机模型示意图。
感知机从输入到输出的模型如下:
其中sign为符号函数:
训练过程
输入:训练数据集 (监督学习)
输出:
赋初值,数据序号,迭代次数。
选择数据点
判断该数据点是否为当前模型的误分类点,即判断若 ,则更新权值:
转到2,直到训练集中没有误分类点。
多层感知机
XOR问题
1969年,“符号主义”代表人物Marvin Minsky提出XOR问题:xor即异或运算的函数,输入两个bool数值(取值0或者1)当两个数值不同时输出为1,否则输出为0,如下图。可知XOR数据无法通过线性模型的边界正确区分开。
多层感知机
多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Artificial Neural Network),除了输入输出层,它中间可以有多层隐单元,最简单的MLP只含一层隐单元,为三层网络,即可解决异或(XOR)问题,如下图。
由输入得到两个隐节点、一个输出层节点的输出:
可得到
设网络有如下一组权值和阈值,可得各节点的输出:
三层感知器可识别任一凸多边形或无界的凸区域。 更多层感知器网络,可识别更为复杂的图形。
多层感知机定理
定理1 若三层感知器可识别任一凸多边形或无界的凸区域。 更多层感知器网络,可识别更为复杂的图形。
定理2 若隐层节点(单元)可任意设置,用三层S型非线性特 性节点的网络,可以一致逼近紧集上的连续函数或按 范数逼近紧 集上的平方可积函数。
BP算法
算法概述
神经网络主要是由三个部分组成的,分别是:
1) 网络架构
2) 激活函数
3) 找出最优权重值的参数学习算法.
BP算法就是目前使用较为广泛的一种参数学习算法.
BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络。
BP算法的基本思想:学习过程由信号的正向传播(求损失)与误差的反向传播(误差回传)两个过程组成。下图为BP算法模型示意图。
正向传播是输入信号从输入层经隐层,传 向输出层,若输出层得到了期望的输出, 则学习算法结束;否则,转至反向传播。
反向传播是将误差(样本输出与网络输出 之差)按原联接通路反向计算,由梯度下 降法调整各层节点的权值和阈值,使误差 减小。
基本思想
记法:
层:用上标表示,供层。其中输入为第0层,输出为层
网络输出:;
网络输入:
网络中第l层输出:,选取作用函数为Sigmoid函数,则可记 为:
权值连接:,表示连接第层第个节点和第层第个节点的权值
设算法的输入输出样本(导师信号)为:
即共N个样本。或记为
网络训练的目的,是使对每一个输入样本,调整网络参数,使输出均 方误差最小化。这是一个最优化问题。
选取:
考虑迭代算法,设初始权值为, k时刻权值为, 则使用泰勒级数展开,有:
问题:如何选择,使最小?
最直接的方法就是选择,,这样每一步都能保证,从而使最终可收敛到最小。 这就是梯度下降算法,也是BP学习算法的基本思想。
算法流程
① 设置初始权系数为较小的随机非零值;
② 给定输入/输出样本对,计算网络输出,完成前向传播
③ 计算目标函数。如, 训练成功,退出;否则转入④
④ 反向传播计算:由输出层,按梯度下降法将误差反向传播,逐 层调整权值