1.M-P神经元
M-P神经元是一个用于模拟生物行为的数学模型,算法接收n个输入(通常来自其他神经元),并给各个输入赋予权重计算加权和,然后和自身特有的阈值进行比较(做减法),最后经过激活函数(模拟“抑制”和“激活”)处理得到输出(通常是给下一个神经元)
向量化得到
单个M-P神经元:感知机(作激活函数)、对数几率回归(作激活函数)
多个M-P神经元:神经网络(如多层前馈网络)
2.感知机
模型:
数学角度:
激活函数为(阶跃函数)的神经元
其中,为样本的特征向量,是感知机模型的输入,,是感知机模型的参数,为权重,为阈值。
几何角度:
给定一个线性可分的数据集,感知机的学习目标是求得能对数据集中的正负样本完全正确划分的超平面,其中即为超平面方程。
n维空间的超平面(,其中):
(1)超平面方程不唯一
(2)法向量垂直于超平面
(3)法向量和位移项确定一个唯一超平面
(4)法向量指向的那一半空间为正空间,另一半为负空间
从几何角度来看,数学角度提出的模型其实就是在求方程为的超平面
学习策略:
思路:
随机初始化,,将全体训练样本带入模型找出误分类样本,假设此时误分类样本集合为,对任意一个误分类样本来说,当时,模型输出值为,样本真实标记为.综合两种情形可知,以下公式成立:
所以,给定数据集,其损失函数(惩罚函数)可以定义为:
显然,此损失函数非负。那么,没有误分点时损失函数值为0。从几何角度上看,误分点越少,就表明误分类点离超平面越近,从数学角度上讲,损失函数就越小。
具体操作:
给定数据集
其中,,求参数 ,。使其为极小化损失函数的解:
其中为误分类样本集合。若将阈值看作一个固定输入为-1的“哑节点”,即
根据该式,可将要求解的极小化问题进一步简化为
此处与上文中不同,实际应为,为符合西瓜书中公式写作。
算法:
当误分类样本集合固定时,那么可以求得损失函数的梯度为
感知机的学习算法采用随机梯度下降法,即极小化过程中不一次使中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。所以权重的更新公式为
相应的, 中的某个分量的更新公式为
最终解得的通常不唯一。
3.神经网络
概述:
由于单个神经元分类能力有限,如感知机只能分类线性可分的数据集,但多个神经元构成的神经网络能够分类线性不可分的数据集(异或问题),且有理论证明(通用近似定理):只需一个包含足够多神经元的隐层,多层前馈网络就能以任意精度逼近任意复杂度的连续函数(相当于能够自己完成特征工程)。因此神经网络既能做回归,也能做分类,且无需复杂的特征工程。
亟待解决的问题:具体场景下的神经网络深度、宽度、结构设计、输出结果的解释。
多层前馈网络:
每层神经元与下一层神经元全互连,神经元之间不存在同层链接,也不存在跨层连接(隐层阈值,输出层阈值)
原理:
将神经网络(记为NN)看作一个特征加工函数
做重加工,组合,维转维。带入线性回归做回归,带入对数几率回归做分类。
(单输出)回归:后面接一个的神经元。如:没有激活函数的神经元
分类:后面接一个的神经元。例如:激活函数为函数的神经元
在模型训练过程中,神经网络(NN)自动学习提取有用的特征,因此,机器学习向“全自动数据分析”又前进了一步。
假设多层前馈网络中的激活函数全为函数,且当前要完成的任务为一个(多输出)回归任务,因此损失函数可以采用均方误差(分类任务则用交叉熵)。对于某个训练样本,其中,假定其多层前馈神经网络的输出为,则该单个样本的均方误差(损失)为
算法:
误差逆传播算法(BP算法):
基于随机梯度下降的参数更新算法
只需推导出这个损失函数关于参数的一阶偏导数(梯度)即可(链式求导)。
由于各层之间互连,往往是极其复杂的非凸函数,不具备像凸函数这样良好的数学性质。随机梯度下降不一定能走到全局最小值点,更多情况下只能走到局部最小值点。
以输出层第个神经元与隐层第个神经元之间的连接权为例推导:
,
令