% Adam梯度下降法
% 输入:func:损失函数 x0:初值 delt:步长 eps:终止条件
% 返回值:最优解,最小值
function [solution, minValue] = gradient_descent_Adam(func, x0, delt, eps, maxIterNum)
dx = eps + 1;
x1 = x0;
num = 1;
beta1 = 0.9;
beta2 = 0.999;
epsilon = 1e-8;
m = 0;
v = 0;
while (max(dx) > eps)
plot_trace([x0, x1], [func(x0), func(x1)], num, 'Adam');
g = gradient_func(func, x0);
m = beta1*m + (1-beta1).*g; % 冲量平均
v = beta2*v + (1-beta2).*(g.*g); % 梯度平方和平均
% 进行偏差校正
beta1_t = 1/9;
beta2_t = 1/999;
m_ = m./(1 - beta1_t);
v_ = v./(1 - beta2_t);
solution = x0 - delt/sqrt(v_ + epsilon).*m_;
dx = abs(solution-x0);
x1 = x0;
x0 = solution;
num = num + 1;
if num > maxIterNum
break;
end
end
minValue = func(solution);
end
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
gradient descent.rar (10个子文件)
gradient descent
Test.m 903B
gradient_descent_momentum.m 699B
gradient_func.m 368B
gradient_descent_RMSProp.m 829B
plot_trace.m 184B
gradient_descent_Adagrad.m 808B
gradient_descent_NAG.m 705B
gradient_descent.m 608B
diff_func.m 129B
gradient_descent_Adam.m 1KB
共 10 条
- 1
caojianfa969
- 粉丝: 17
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5