欢迎来到天天文库
浏览记录
ID:1561716
大小:49.50 KB
页数:2页
时间:2017-11-12
《梯度下降法理论及部分代码实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、梯度下降法梯度下降法是一种最优化算法,常用来优化参数,通常也称为最速下降法。梯度下降法是一般分为如下两步:1)首先对参数θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量;2)改变θ的值,使得J(θ)按梯度下降的方向进行减少。以一个线性回归问题为例,应用libsvm包里的数据heart_scale.mat数据做测试。假设要学习这么一个函数:那么损失函数可以定义成:(1)其中X看以看成一行一行的样本向量,那么Θ就是一列一列的了。目标很简单,就是求损失J最小值时候的解Θ:先直接求导,对于求导过程,详解如下:首先定义损失变量:那么损失函数就可以表
2、示成:一步一步的求导:再求:那么把分步骤合起来就是:令导数为0,求此时的Θ,整理一下,有:用矩阵符号将上面的细节运算抽象一下:2让导数为0,那么求得的解为:求解矩阵的逆复杂度有点儿高,可以用梯度下降来求解:(2)其中γ就是下降的速度,一般是一个小的数值,可以从0.01开始尝试,越大下降越快,收敛越快。迭代终止的条件取:部分代码如下:w_old=zeros(size(X,2),1);%%初始化参数wk=1;while1minJ_w(k)=1/2*(norm(X*w_old-Y))^2;%%损失函数公式(1)%%norm默认为L2标准化w_new=
3、w_old-gamma*(X'*X*w_old-X'*Y);%%梯度下降公式%%公式(2)ifnorm(w_new-w_old)
此文档下载收益归作者所有