1.M-P神经元
2.感知机
3. 神经网络,多层前馈网络
4.BP算法
5.梯度下降法
1. M-P神经元
接收n个输入(通常来自其他神经元):权重:
阈值(自身特有):,输出:通过激活函数(模拟抑制或激活)通常是给下一个神经元。
单个M-P神经元:感知机(sgn作激活函数),对数几率回归(sigmoid作激活函数)
多个M-P神经元:神经网络
2.感知机模型
分类模型(正:1,负:0),参考书:《统计学习方法》
【模型】激活函数为sgn(阶跃函数)的神经元:
几何角度:学习一个超平面,对给定一个线性可分的数据集T中的正负样本做出完全正确的划分。
超平面方程:;
n维空间的超平面(,其中):
1.超平面方程不唯一;
2.法向量w垂直于超平面;
3.法向量w和位移项b确定一个唯一超平面;
4.法向量w指向的一半空间为正空间,另一半为负空间。
【策略】
损失函数:
分错就给损失。
随机初始化w,b,将全体训练样本带入模型找出误分类样本,
假设此时误分类样本集合M T,对任意一个误分类样本(x,y)\in M来说,
.
【算法】随机梯度下降
《最优化基础理论与方法》王燕军
梯度下降:
随机梯度下降:
随机选取一个误分类点使其梯度下降
w不唯一。
3.神经网络
背景:感知机只能分类线性可分的数据集。神经网络分类线性不可分的数据集。
通用近似定理:只需一个包含足够多神经元的因层,多层前馈网络能以任意精度逼近任意复杂度的连续函数。可以做回归分类,不需要特别复杂的特征工程。
神经网络的问题:在具体场景中
1.做多深多宽?2.结构如何设计才最合理?3.输出结果该如何解释?
都是通过试验,暂时没有理论支撑。
【特征工程】:挖有效的特征。需要人工/经验。
【多层前馈神经网络】
每层神经元与下一层神经元全互连,神经元之间不存在同层连接,
也不存在跨层连接。(隐层阈值,输出层阈值)
神经网络(记为NN)看作一个特征加工函数。
回归(单输出):后面接一个R^l-->R的神经元,如没有激活函数的神经元
分类:后面接一个R^l-->[0,1]的神经元,如激活函数为sigmoid函数的神经元
用交叉熵损失函数。
学习,向“全自动数据分析”进一步
4.BP算法
现实任务中使用神经网络时,大多数使用BP算法训练,通常说的“BP”网络一般是指用BP算法训练的多层前馈神经网络。
假设多层前馈网络中激活函数全为sigmoid函数;
多输出回归任务:均方误差作损失函数;
分类任务:交叉熵作损失函数。
假定多层前馈网络的输出为,则单个样本的均方误差(损失)为(随机梯度下降):
1.:用矩阵微分算出损失函数E关于参数w 的一阶偏导
2.NN(x)通常非凸,多数情况下只能走到局部极小值点。
以输入层第i个神经元与隐层的第h个神经元之间的连接权v_{ih}为例推导:
5.梯度下降法
【思想】 在山坡上如何最快的准确的到达山脚?1.寻找最陡峭的地方。2.每走一段距离,以当前位置为基准找最陡峭的地方。3.一直重复,直到找到山脚。
【算法】 J是关于 的一个函数
:学习率,代表步长
:梯度,表示“陡峭程度”(在指定点上升最快的方向)
前进方向为梯度的反方向,按照该式不停的更新的值,一直到其收敛不变为止。
更新表达式为:
参考资料:
[1]周志华,《机器学习》,北京:清华大学出版社
[2]谢文睿,秦州,贾彬彬,《机器学习公式详解》,北京:人民邮电出版社
[4]公众号:Datawhale 【文章】《通俗易懂讲解梯度下降法》