howie6879 / howie6879.github.io

努力就好
https://www.howie6879.com/
9 stars 0 forks source link

02.梯度下降数学推导 | 机器学习之路 #75

Open howie6879 opened 3 years ago

howie6879 commented 3 years ago

https://www.howie6879.cn/ml_book/docs/04_appendix/02.%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D%E6%95%B0%E5%AD%A6%E6%8E%A8%E5%AF%BC/

梯度下降数学推导 # 以感知器为例,可以梯度下降来学习合适的权重和偏置: 假设有n个样本,第i次的实际输出为y,对于样本的预测输出可以表示为: $$ \bar{y}^i = w_1x_1^i+w_2x_2^i+…+w_nxn^i+b $$ 任意一个样本的实际输出和预测输出单个样本的误差,可以使用MES表示: $$ e^i=\frac{1}{2}(y^i-\bar{y}^i)^{2} $$ 那么所有误差的和可以表示为: $$ \begin{aligned} E &= e^1+e^2+…+e^n \ &= \sum{i=1}^ne^i \ &= \frac{1}{2}\sum{i=1}^n(y^i-w^Tx^i)^2 \end{aligned} $$ 梯度下降 # 想象一下,当你从山顶往下走,只要你沿着最陡峭的位置往下走,那么终将走到最底部(也可能是局部最低): 我们学习的目的就是在$E$尽量最小,然后得到此时的$w$和$b$,前面说的最陡峭的位置该怎么定义呢?我们可以引入梯度,这是一个向量,指的是函数值上升最快的方向,那么最陡峭的位置就可以用在最陡峭的方向迈出一步(步长,学习速率),用数学公式表示为: 其中: $\nabla$表示梯度算子 $\nabla f(x)$表示函数的梯度 $\eta$表示梯度、学习速率,可以理解为找准下山的方向后要迈多大步子 推导 # 现在有了目标函数,也知道怎么找到让目标函数值最小的办法,对于参数$w$: $$ E{(w)} = \frac{1}{2}\sum{i=1}^n(y^i-w^Tx^i)^2 $$ 那么$W$值的更新公式为: $$ w{n e w}=w{\text {old }}-\eta \nabla E{(w)} $$ 关键步骤来了,来看看$E{(w)}$的推导吧: $$ \begin{aligned} \nabla E(\mathrm{w}) &=\frac{\partial}{\partial \mathrm{w}} E(\mathrm{w}) \ &=\frac{\partial}{\partial \mathrm{w}} \frac{1}{2} \sum{i=1}^{n}\left(y^{(i)}-\bar{y}^{(i)}\right)^{2} \&=\frac{1}{2}\frac{\partial}{\partial \mathrm{w}} \sum_{i=1}^{n} \left(y^{(i)2}-2y^{(i)}\bar{y}^{(i)}+\bar{y}^{(i)2}\right) \end{aligned} $$