深度学习基础课:使用Adam算法
大家好~我开设了“深度学习基础班”的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序
线上课程资料:
加QQ群,获得ppt等资料,与群主交流讨论:106047770
本系列文章为线上课程的复盘,每上完一节课就会同步发布对应的文章
本课程系列文章可进入索引查看:
为什么要学习本课
- 为什么要使用Adam算法?
答:是因为要解决上一节课出现的无法收敛的问题。Adam算法可以自动调节每一层的学习率。我们只需要给出一个初始的学习率,在每一轮的中它会自动调整每一层的学习率,使它更接近最适合的值,从而能加快收敛
代码实现
- 在入口的Main代码中,现在使用Adam优化算法了,相关代码如下:
let _createConvNetwork = () => {
let learnRate = 0.001
...
Network.create(
AdamWOptimizerUtils.buildNetworkAdamWOptimizerData(~learnRate, ()),
- Adam算法的核心实现代码如下:
AdamW.res
let update = (data, (learnRate, t: int, (beta1, beta2, epsion)), vt_1, st_1, gradient) => {
let vt = vt_1 *. beta1 +. (1. -. beta1) *. gradient
let st = st_1 *. beta2 +. (1. -. beta2) *. gradient *. gradient
let vBiasCorrect = vt /. (1. -. Js.Math.pow_float(~base=beta1, ~exp=t->Obj.magic))
let sBiasCorrect = st /. (1. -. Js.Math.pow_float(~base=beta2, ~exp=t->Obj.magic))
(data -. learnRate *. vBiasCorrect /. (Js.Math.sqrt(sBiasCorrect) +. epsion), (vt, st))
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?