梯度下降算法(Gradient descent)
2015-07-14 16:04
656 查看
Matlab代码:
% parameter
% 梯度下降法, gradient descent
% heart_scale 数据,
% Iteration fuction: x(n+1)= x(n)- alpha*grad
% f(x)= 1/2*||y- Ax||^2, 让f(x)最小
% create data
A= rand(20);
y= rand(20, 1);
x= rand(20, 1); % initialize x
% parameter
alpha= 0.001;
iter= 1;
error= 1;
maxiter= 300;
while error> 1e-1 && iter< maxiter
f(iter)= 1/2*(norm(A*x- y))^2;
x_new= x- alpha*(A'*A*x- A'*y);
newf= 1/2*(norm(A*x_new- y))^2;
fprintf('The %dth iteration, f = %f, \n', iter, f(iter));
error= f(iter)- newf;
x= x_new;
iter= iter+ 1;
end
plot(f, 'r-')
xlabel('Number of iteration')
ylabel('Value of function')
legend('Gradient descent')
相关文章推荐
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- C++实现汉诺塔算法经典实例
- PHP实现克鲁斯卡尔算法实例解析
- C#常见算法面试题小结