梯度下降法

来源:互联网 发布:深度卷积网络最新发展 编辑:程序博客网 时间:2024/05/16 08:28
下面这个例子也鲜明的示例了"之字"的下降,这个例子用梯度下降法求极小值。
再举另外一个非常简单的例子,如求函数
 的最小值。
利用梯度下降的方法解题步骤如下:
1、求梯度,
2、向梯度相反的方向移动
 ,如下
 ,其中,
 为步长。如果步长足够小,则可以保证每一次迭代都在减小,但可能导致收敛太慢,如果步长太大,则不能保证每一次迭代都减少,也不能保证收敛。
3、循环迭代步骤2,直到
 的值变化到使得
 在两次迭代之间的差值足够小,比如0.00000001,也就是说,直到两次迭代计算出来的
 基于没有变化,则说明此时
 已经达到局部最小值了。
4、此时,输出
 ,这个
 就是使得函数
 最小时的
 的取值 。
MATLAB如下。
1
2
3
4
5
6
7
8
9
10
11
12
syms x;
f=x^2;
step=0.1;
x=2;
loss_changed=x^2;
loss=x^2;
while loss_changed>0.000000001
    x=x-step*2*x;
    loss_changed = loss - x^2;
    loss = x^2 ;
end
x

参考问下:http://leftnoteasy.cnblogs.com/

0 0
原创粉丝点击