神经网络与深度学习课程笔记第四周
第四周课程总结线性回归和BP网络
文章目录
目录
前言
本文是为了记录神经网络与深度学习课程的学习过程。
第四周课程内容--线性回归
1.线性回归
定义如下:
线性回归的要素:训练集(training set) ,输出数据,模型,训练数据的条目数
整个的学习过程:
为了使估计的结果接近于真实值,要让误差最小,构造损失(代价,误差)函数:
其中,代表了误差
要使得估计值接近真实值,就得让误差最小
从而可以得到:
这是解析解,一步可以得到。
2. 线性二分类问题
对于线性二分类问题,样本可以通过直线或者超平面区分。
如下图所示:(eg.苹果分类)
线性分类与线性回归的区别
要构造这类二分类的分界直线,一边是正值(属于)一边是负值(不属于)
Sigmoid函数的性质之后会用到
与线性回归类似,构造代价函数:(其中y的值为0或1)
但是这里的代价函数变为了非线性,不能用线性回归类似方法求解。
考虑迭代的方法:梯度下降法
像上面这样构造的话:
3.指数回归和多分类回归
指数回归
多分类回归
有k个标记的分类问题,需要有k个分割超平面
这种方法又被成为Softmax
前面代价函数可以简写为:
被称为交叉熵损失
4.神经元模型
单神经元模型
为作用函数,可以有如下几种
1.非对称型Sigmoid 函数
2. 对称型Sigmoid 函数 (Tangent Sigmoid)
3.对称性阶跃函数
Hebb规则
连接权值的调整量与输入和输出的乘积成正比:
5.感知机模型
感知机从输入到输出的模型如下:
对样本进行处理
最重要的一点是
但是无法处理线性不可分参数模型
第四周课程内容--BP神经网络
1.多层感知机
对于线性不可分问题,解决方法:使用多层感知机。在输入和输出层间加一或多层隐单元,构成多层感知器(多层前馈神经网络)
对于多层感知器网络,有如下定理:
2.多层前馈网络与BP算法
多层感知机是一种多层前馈网络。
多层前馈网络:由多层神经网络构成,每层网络将输出传递给下一层网络。神经元间的权值连接仅现在相邻之间,不出现在其他位置。不出现在其他位置。如果每一个神经元都连接到上层的所有神经元(除输入层外),则成为全连接网络
BP算法
多层前馈网络的反向传播(BP)学习算法,是梯度下降法在多层前馈网络中的应用。
分为正向传播和反向传播
仍然是一个最优化问题,通过调整权值参数,使得输出均方误差最小。
最直接的方法就是选择
这就是梯度下降算法,也是BP算法的基本思想。
首先考虑输出层权值,可以通过链式求导法则求解:
代入各项的表达式可以得到:
所以有:
然后考虑隐含层权值,同样运用链式求导法则:
经过推导可以得到:
综上所示,BP算法的过程为:
第四周课程内容--性能优化
1.常用技巧
1)K折交叉验证,有效改善过拟合
2)欠拟合和过拟合
3)权重衰减
上述第二项约束了权值不能过大
4)Dropout(暂退)
5)模型初始化
把所有权值在[-1,1]区间内按均值或者高斯分布进行初始化。
2.动量法
1.SGD问题:病态曲率
动量法的伪代码:
3.自适应梯度算法
学习率参数自适应变化
自适应梯度算法伪代码:
AdaGrad算法的问题:
学习率是单调递减的,后期学习率过小会导致训练困难甚至提前结束。而且需要设置一个全局的初始学习率。
RMSProp算法(Root Mean Square Prop)
使用指数衰减平均以丢弃遥远的历史数据
Adam算法
保留了历史数据的指数衰减平均,相当于动量。
就像一个带有摩擦力的小球,在误差面上倾向于平坦的极小值。
丢弃遥远的历史数据还可以用渐消记忆法