初识卷积神经网络(2)-模型参数如何更新?

机器学习中的两大类参数:

超参数:在模型训练之前需要设置的参数,而不是通过训练得到的参数数据。比如:学习率,深层神经网络隐藏层数。

模型参数:模型要学习的参数,比如:权重W和偏置b,其是在网络训练过程中自动学习和更新。

在深度学习中,在我们搭建好神经网络模型之后,最重要的是参数学习。在此之前, 我们先要弄懂,什么是前向算法和反向传播算法。

前向算法:从网络输入到网络最终输出的过程称为前向算法。如下图(来自慕课官网):

反向传播算法(BP):模型参数学习的方法,由Hinton等人提出。用来解决网络优化问题,通过调节输出层的结果和真实值之间的偏差来进行逐层调节参数。该学习过程是一个不断迭代的过程。如下图(来自慕课官网):

损失函数(LOSS):神经网络模型参数学习的目标函数。常见损失函数由交叉熵损失函数,L1 loss,L2 loss 等。即L2 loss:min\left \| WX-Y \right \|^{2}.

如何对损失函数优化呢?

这里需要介绍导数,偏导数,梯度概念。

导数:(一元函数)是变化率,是切线的斜率,是瞬时速度,是加速度。

偏导数:一个多元函数的偏导数,就是它关于其中一个变量的导数而保持其他变量恒定

方向导数:在函数定义域的内点,对某一方向求导得到的导数。一般为二元函数和三元函数的方向导数,方向导数可分为沿直线方向和沿曲线方向的方向导数。

梯度:其本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。

了解完上述概念之后,那么如何优化损失函数呢?

首先明确最小二乘法和梯度下降法区别:最小二乘法的目标:求误差的最小平方和,对应有两种:线性和非线性。线性最小二乘的解是closed-form即,而非线性最小二乘没有closed-form,通常用迭代法求解,而梯度下降法就是迭代法的一种。

参数求解方法:

  • 如果对于凸函数,可以之间求导,让导数为0进行求解。
  • 对于非凸函数,需要使用梯度下降法/梯度上升法进行对参数迭代更新。

迭代求解算法:

梯度上升法/梯度下降法:沿着梯度方向对参数进行更新,可以求解线性和非线性问题。如下图:

牛顿法:求解非线性最小二乘的迭代法(一定程度上可视为标准非线性最小二乘求解方法)。

利用梯度下降法求解最优解,结果的最优性和步长(学习率 Learning rate)相关,大的学习率导致参数更新快,小的学习率,参数更新慢。

利用梯度下降法求解最优解,结果的最优性和初始化参数的值相关。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值