神经网络是机器学习中重要的一部分,实现了从人工到机器的转变。在学习了微软智汇AI的一分钟课程视频第一章(神经网络概述)后进行了如下整理,供学习参考。更多视频访问:https://b23.tv/gCAuMHP
1.1神经元——最小的神经网络
特征x和权重W相乘,f为激活函数,b为偏移值
1.2神经网络的训练流程
2.1神经网络的矩阵运算(前向计算)
神经网络=输入层+隐藏层+输出层
层数=隐藏层数量+输出层数量
第一步:矩阵计算Z1=X·W1+B1
第二步:激活函数A1=f(Z1)
第三步:同理矩阵运算Z2=A1·W2+B2(Z2对输入信号的预测结果)
2.2激活函数
再多层神经网络中,每个神经元结点接受上一层神经元结点的输出值作为本层神经元结点的输入值。上一层神经元输出和下一层神经元输入之间存在一个函数衔接:激活函数。
如果没有激活函数,输入和输出之间就是线性关系,拟合能力就会很低。
2.3回归和分类
回归(Regression):预测一个值,例如房价、温度等(样本点&神经网络的学习结果)
单层神经网络(NN):模拟二维平面上的直线
两层神经网络(NN):模拟任意连续函数
分类(Classification):将事物打上标签,通常是一个离散值,是对多类样本边界的抽象(将圆点和方块进行区分)
2.4反向传播和梯度下降
反向传播:通过损失函数计算来判断方向&差值(反馈)
梯度下降:根据反馈结果调整下一次输入值(调整的角度和方向为梯度)
破解黑盒子:根据误差调整权重,把所有样本遍历一遍,直到误差小于某一个确定的指标
3.1单变量的反向传播
举例:
3.2多变量的反向传播
举例:
3.3非线性的反向传播
4.1梯度下降的数学解释
假设要找到y=(x-2)^2+1的最小值
根据导数:导数>0单调增,导数<0单调减
下一个值=当前值-梯度距离(当前点的导数与学习率的乘积)
4.2单变量函数的梯度下降
假设y=x2,y’=2x,假设x初始位置为1.2,学习率为0.3,当本次函数值与上一次迭代结果相减绝对值小于0.01时就算找到了函数的最小值,停止迭代。
四次迭代结果:
4.3双变量函数的梯度下降
以下是双变量函数z的表达式和x y的偏导数,假设初始值(x,y)=(3,1),学习率=0.1,带入梯度下降公式进行计算,满足梯度小于0.01
4.4学习率的选择
学习率(learning rate)决定了权重迭代的步长,是一个很敏感的参数。有关y=x2函数不同学习率损失值的变化如下(在该案例中,当学习率为1的损失率不变化,0.8时折返,0.1时过慢,0.4正好)
5.1损失函数的概念
损失:所有样本误差的总和。作用是计算神经网络的每次迭代前向计算结果与真实值的误差,指导下一次迭代向正确的方向进行。
5.2均方差损失函数
- 绝对值损失函数:防止正负损失抵消
- 均方根损失函数:对偏离大的样本足够敏感,能够引起监督训练的重视
- 根据均方差函数的导数,可以将正负反向传播回到前面的计算过程中引导训练朝着正确的方向尝试
5.3损失函数的可视化
6.1交叉熵损失函数
信息量:信息多少的度量I
信息熵:信息传输过程中不确定性的度量H
假设一件事情发生的概率为0.9不发生的概率为0.1,则他的熵为:
相对熵:相对熵等价于两个概率分布信息熵的差值D
交叉熵:可以用于计算学习模型分布与训练数据的不同
以上就是微软智汇AI的一分钟课程视频神经网络基本概念的梳理,下一期将梳理神经网络的过拟合问题和正则化。