反向传播和随机梯度下降和正规方程求解

一下内容只为大概提要部分,尤其是基础知识,目前主要考虑个人笔记记录,待后续进一步将内容展开讲解,请体谅。

基础知识

  • 输入scalar输出scalar,因变量对自变量求导
  • 输入vector输出scalar,因变量对自变量求导
  • 雅克比矩阵(Jacobian matrix)
  • 输入vector输出vector,因变量对自变量求导
  • 输入tensor输出tensor,因变量对自变量求导
  • generalized-Jacobian matrix
  • chain rule

tensor是N-dimension的,维度可以是N1×N2×...×Nn

反向传播(Backpropogation)

需要注意的点是这层的输入是上一层的输出,所以根据损失函数对这一层输出的导数,就可以求出损失函数对上一层输出的导数,所以就可以一步一步反向传播下去。

批量梯度下降(Batch Gradient Descent)

计算完所有样本的梯度之后进行平均,为最终参数更新时的学习率乘的梯度。 但是如果训练集样本数量很多,则更新一次梯度的计算量太大,时间太长。更新时需要把所有数据都加载进内存进行计算。

随机梯度下降(Stochastic Gradient Descent)

先将训练数据随机打乱,然后每次只考虑一个样本。假设有m个样本,则在一个epoch中更新参数的过程为经过m次循环,每次循环只关注一个样本,根据这个样本的损失函数值对各个参数的梯度值进行各个参数的更新。 随机梯度下降相比于批量梯度下降来说,当批量梯度下降还没完成时,随机梯度下降已经更新了很多次了,但是随机梯度下降的一个问题是可能最终损失函数值落不到极小值,而是在极小值附近徘徊

小批量梯度下降(Mini-Batch Gradient Descent)

小批量梯度下降是介于批量梯度下降和随机梯度下降之间的算法,相比于随机梯度下降,其每次关注b个样本的梯度的平均值,然后进行m/b次循环。

正规方程求解最优参数(normal equation)

其实我们已知损失函数,且我们的目的是让损失函数的值最小,就可以利用normal equation求解损失函数的极值点,但是如果参数量太多,方程的维度会很大,很难求解。 另外正规方程只适用于线性模型,需要计算(XTX)-1,T为转置,-1为矩阵的逆。X表示所有样本的特征矩阵。而且要求特征矩阵是可逆的,也就是说特征之间是相互独立的(如同时包含英尺为单位的尺寸和米为单位的尺寸的两个特征就是不独立的)。

猜你喜欢

转载自juejin.im/post/7088246137680822309