发布日期:2024-03-11 来源: 网络 阅读量()
前言:因为要实现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 ?