传送门,讲解到位:https://www.bilibili.com/video/BV1Mh411e7VU?p=7&share_source=copy_web
M-P神经元
M-P神经元是模拟生物行为的数学模型,接收n个输入,并且给各输入增加权重,计算加权和,然后和自身的阈值theta进行减法比较,最后经过激活函数处理(两种处理方式:减法结果<0—>抑制、减法结果>0—>激活),然后输出,一般是到下一个神经元,可以类比想到生物学上的“突触”,数学模型如下:所以可以抽象成线性的模型
西瓜书内给出两个激活函数:1、阶跃函数;2、sigmoid函数,如下图:
感知机模型就是以上述阶跃函数为激活函数,那如果用Sigmoid函数就是对数几率回归
感知机
数学角度
定义如下:
几何角度
来说,是给定了一个线性可分的数据集,感知机可以找到超平面对这个数据集划分、分类,超平面定义如下:理解的话可以从二维理解:两点成直线,给定(0,1),(1,0),那方程就是X1+X2-1=0,显然w为(1,1),b为-1,做w的向量(1,1),必然垂直于该直线
这里用统计的思想去学习,目前是为找到loss function,也就是损失函数,当然是想要损失Min
先随机初始化w和b,将全体的训练样本代入模型找出分错的样本,拿上面的阶跃函数,当w转置 x —theata≥0,模型分类值为yhat=1,但是样本的真实值是y=0,反正式子≤0,输出值为0,真实值为1,结合这两种分错的情况,下面公式自然成立
目的很明确,要求上述损失函数最小值,这里我们可以转换上式,将theta加入w向量中,也就是多元线性回归,b加到w中,则公式变形如下:
了解梯度下降知识的传送门:https://www.bilibili.com/video/BV164411b7dx?p=9&share_source=copy_web
经由梯度下降变化,其实看完也应该知道就是求导,公式变幻如下,下图第二个公式n其实就是步长,为什么说不唯一呢?因为这里只单纯考虑了是否能分开,能将一个数据集分类的超平面不唯一,所以w不唯一
神经网络
感知机能力有限,只能针对线性可分数据集,但是多个神经元构成的神经网络能分线性不可分的数据集
简单介绍多层前馈网络,就是每层的神经元和下一层神经元相连,神经元之间不存在同层连接,也不存在跨层连接
上述神经网络记为NN,xd表示d维向量,也就是x的d维---->y的l维,这里激活函数选用sigmoid,目前要完成的任务就是多输出回归任务,就是上图所示的任务,损失函数还是均方误差,具体如下图所示,yk表示真实值,yhatk表示该多层前馈网络预测值,那误差不就是下图所示,1/2是为了求导方便,这是单个样本的误差
BP算法
下图的E就是上式的误差Ek,n还是步长,但由于此函数不是凸函数,是较为复杂的非凸函数,所以很多情况下是局部极小值点
解释一下最后求导的公式,其实也是和下面神经网络图有关,下表就是流线的走向,这也解释了最后的链式求导
初始值 | 输入层 | 隐层 | 输出层 |
---|---|---|---|
xi | vih * xi | 输入:vih * xi;计算:vih * xi—隐层阈值=bh;输出:wkj * bh | 输入:wkj * bh;计算:wkj * bh—输出层阈值=yi |
推导过程如下,最后的结果eh是令前面为eh,并不是有其他含义。γ和θ都是阈值:
关于上述的推导过程,因为激活函数是sigmoid函数,sigmoid导数具体的推导过程如下,方便理解:
梯度下降(标准、Mini-batch、随机)
传送门,讲解到位:https://www.bilibili.com/video/BV164411b7dx?p=103&share_source=copy_web
实则按照一句话理解思维:标准是加载全部的数据并计算、mini-batch是按批次加载计算、随机是一个个计算