首页 > 编程语言 >深度学习基础课:使用Adam算法

深度学习基础课:使用Adam算法

时间:2023-01-30 16:55:45浏览次数:62  
标签:-. 学习 算法 let Adam 基础课 vt

大家好~我开设了“深度学习基础班”的线上课程,带领同学从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))
}

Adam算法的学习资料

标签:-.,学习,算法,let,Adam,基础课,vt
From: https://www.cnblogs.com/chaogex/p/17076577.html

相关文章

  • 【数据结构和算法】Trie树简介及应用详解
    作者:京东物流马瑞1什么是Trie树1.1Trie树的概念Trie树,即字典树,又称单词查找树或键树,是一种树形结构,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以......
  • 【算法训练营day31】LeetCode455. 分发饼干 LeetCode376. 摆动序列 LeetCode53. 最大
    LeetCode455.分发饼干题目链接:455.分发饼干独上高楼,望尽天涯贪心的思路,将每块饼干都发给最合适的孩子,那么最后分发饼干的策略就是最合适的,即可满足最多的孩子。class......
  • 随机算法
    模拟退火听说是模拟了物理中的降温过程来寻找全局最优解的过程?众所周知物理中的降温过程是\(T=T_{ed}+a^t\),所以我们仿照这个过程定义温度\(T\),降温系数\(a\)。每次我们......
  • 使用遗传算法+神经网络解决贪食蛇游戏
    在网上无意看到的一个项目,感觉还是蛮有意思的:​​https://github.com/greerviau/SnakeAI​​    ==========================================  代码不知道是用什么语......
  • 怎么高效学习数据结构和算法?
    5个步骤:基础语法学习—>语法配套练习—>数据结构—>算法入门—>算法进阶一、数据结构官方解释:​​数据结构​​是一门研究非数值计算的程序设计问题中的额操作对象,以及他们......
  • 【算法与数据结构】Trie树简介及应用
    作者:京东物流马瑞1什么是Trie树1.1Trie树的概念Trie树,即字典树,又称单词查找树或键树,是一种树形结构,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常......
  • Exgcd(扩展欧几里得算法)
    其实挺简单。GCD(辗转相除法)定理:\[\gcd(a,b)=\gcd(b,a\%b)\]证明:\[\text{设}a=kb+r\text{,则}r=a\bmodb\]\[\text{若}c\text{是}a,b\te......
  • 分布式协议与算法-Raft算法
    本文总结自:极客时间韩健老师的分布式协议与算法实战课程。大家都知道,Raft算法属于Multi-Paxos算法,它是在Multi-Paxos思想的基础上,做了一些简化和限制。关于Paxos算法,博主......
  • 《深入理解Java虚拟机》第三章读书笔记(一)——垃圾回收算法
    参考书籍《深入理解java虚拟机》周志明著系列文章目录和关于我本文主要介绍垃圾回收理论知识1.jvm哪些区域需要进行垃圾回收虚拟机栈,本地方法栈,程序计数器都是线......
  • 算法刷题 Day 27 | ● 39. 组合总和 ● 40.组合总和II ● 131.分割回文串
    今日任务组合总和组合总和II分割回文串详细布置39.组合总和本题是集合里元素可以用无数次,那么和组合问题的差别其实仅在于startIndex上的控制题目链接/......