前言:因为要实现GAN,简单理解一下训练过程需要用到的Adam优化器。
零、何为优化器
机器学习的任务就是优化参数使之达到最合适的值,同时也就是时损失函数达到最小。损失函数即目标函数的值与真实值的差值函数,实际上就是欲优化参数的函数。而优化器的任务就是在每一个epoch中计算损失函数的梯度,进而更新参数。
一般过程:给定一组训练样本(x, y),对于若干个x运用此时的参数求出预测值y',而y'与这些x对应的真实值y的差值(即损失函数)作为优化器的目标函数(使得函数值越小越好)。将该目标函数求梯度(有的优化器还要求动量),而后使用梯度值(动量)更新参数。直到停止条件达到为止。
?
一、简单认识Adam
Adam(自适应矩估计?Adaptive moment estimation)
翻译:
参数设定:?(元素乘操作),
:步长或称学习率(stepsize);:矩估计的指数衰减率;:参数的随机目标函数值;:初始参数向量;
:初始第一矩向量;:第二矩向量;:时间步长;
优化过程(更新参数向量过程):
while??未收敛:? {
? 获得新一轮的梯度值(参数是上轮刚更新的)
? 更新第一矩向量
? ?更新第二矩向量
? ?计算偏差校正的第一矩向量
? ?计算偏差校正的第二矩向量
? ?更新参数
}
优化参数过程结束
?
二、代码实现
https://github.com/dream-catcher/learning_blogs/blob/master/Adam_Optimizer/adam_optimizer.py? #不知为何,我这边运行会报错,所以我先不用这个
https://github.com/yzy1996/Python-Code/blob/master/Algorithm/Optimization-Algorithm/Adam.py
https://github.com/sagarvegad/Adam-optimizer/blob/master/Adam.py
?
参考链接:https://www.jianshu.com/p/aebcaf8af76e
https://www.cnblogs.com/xiaoniu-666/p/10596089.html
?
公司名称: 亚游-亚游娱乐-注册登录站
手 机: 13800000000
电 话: 400-123-4567
邮 箱: admin@youweb.com
地 址: 广东省广州市天河区88号