MATLAB常见的学习率下降策略
MATLAB常见的学习率下降策略
凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/
1. 几种常见的学习率下降策略(learning rate decay strategy)
t:自变量,迭代次数,λ(t):因变量,学习率,T:常量,最大迭代次数,其他参数均为常量,可自行设定。可以设定初始学习率λ(0):

1) exp


2) inv


3) plot


4) sigmoid


5) cosine_decay


6) Gaussian


2. MATLAB程序
function learning_rate_decay(choose)
% Author: kailugaji 凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/
max_iter=1000;
y=zeros(1, max_iter);
t=1:max_iter;
if choose==1
% cosine decay
y(t)=0.5*(1+cos(pi*t/max_iter));
elseif choose==2
% plot p>1:凹曲线, 0<p<1:凸曲线
p=0.25;
y(t)=(1-(t/max_iter)).^p;
elseif choose==3
% inv
gamma=0.99; p=0.25;
y(t)=(1+gamma*t).^(-p);
elseif choose==4
% exp
gamma=0.99;
y(t)=gamma.^t;
elseif choose==5
% sigmoid
gamma=-0.01; stepsize=max_iter/2;
y(t)=1./(1+exp(-gamma*(t-stepsize)));
elseif choose==6
% Gaussian
sigma=300;
y(t)=exp(-(t.^2)/(2*(sigma^2)));
else
disp('input error!');
end
%%
plot(t, y);
axis([1, max_iter, 0, 1]);
xlabel('iter');
ylabel('learning rate');
3. 学习率衰减



4. 参考文献
Tensorflow中learning rate decay的奇技淫巧
TensorFlow学习--学习率衰减/learning rate decay
邱锡鹏, 神经网络与深度学习[M]. 2019.
MATLAB常见的学习率下降策略的更多相关文章
- 史上最全学习率调整策略lr_scheduler
学习率是深度学习训练中至关重要的参数,很多时候一个合适的学习率才能发挥出模型的较大潜力.所以学习率调整策略同样至关重要,这篇博客介绍一下Pytorch中常见的学习率调整方法. import torch ...
- 机器学习_线性回归和逻辑回归_案例实战:Python实现逻辑回归与梯度下降策略_项目实战:使用逻辑回归判断信用卡欺诈检测
线性回归: 注:为偏置项,这一项的x的值假设为[1,1,1,1,1....] 注:为使似然函数越大,则需要最小二乘法函数越小越好 线性回归中为什么选用平方和作为误差函数?假设模型结果与测量值 误差满足 ...
- 【转载】 PyTorch学习之六个学习率调整策略
原文地址: https://blog.csdn.net/shanglianlm/article/details/85143614 ----------------------------------- ...
- tensorflow中的学习率调整策略
通常为了模型能更好的收敛,随着训练的进行,希望能够减小学习率,以使得模型能够更好地收敛,找到loss最低的那个点. tensorflow中提供了多种学习率的调整方式.在https://www.tens ...
- PyTorch学习之六个学习率调整策略
PyTorch学习率调整策略通过torch.optim.lr_scheduler接口实现.PyTorch提供的学习率调整策略分为三大类,分别是 有序调整:等间隔调整(Step),按需调整学习率(Mul ...
- 深度学习训练过程中的学习率衰减策略及pytorch实现
学习率是深度学习中的一个重要超参数,选择合适的学习率能够帮助模型更好地收敛. 本文主要介绍深度学习训练过程中的6种学习率衰减策略以及相应的Pytorch实现. 1. StepLR 按固定的训练epoc ...
- tensorflow中常用学习率更新策略
神经网络训练过程中,根据每batch训练数据前向传播的结果,计算损失函数,再由损失函数根据梯度下降法更新每一个网络参数,在参数更新过程中使用到一个学习率(learning rate),用来定义每次参数 ...
- matlab练习程序(演化策略ES)
还是这本书上的内容,不过我看演化计算这一章是倒着看的,这里练习的算法正好和书中介绍的顺序是相反的. 演化策略是最古老的的演化算法之一,和上一篇DE算法类似,都是基于种群的随机演化产生最优解的算法. 算 ...
- matlab常见使用
可以新建一个.m文件,将代码放入其中 1.求平均 A=[ 1 2; 3 4; ] a=mean(A,1) %按列平均 b=mean(A,2) %按行平均 c=mean(A(:)) %全部平均 2.清屏 ...
随机推荐
- Linux下使用 github+hexo 搭建个人博客07-next主题接入搜索和站点管理
这是搭建个人博客系统系列文章的最后一篇,如果你是从第一篇一路跟下来的,那么恭喜你,即将完成整个博客网站的搭建.OK,话不多说,开始我们的收官之战. 不知你想过没有,如果我们的文章少,一眼看完整个目录, ...
- go语言设计模式之visitor
这个确实没有调通,也要记录一下 visitor.go package visitor import ( "fmt" "io" "os" ) ...
- MYSQL 命令导出事件、存储过程、触发器
普通导出某个数据库 mysqldump -u username -p passowrd databasename > file.sql 顺便导出事件 使用 –events 参数 mysqldum ...
- openjdk源码下载
http://hg.openjdk.java.net/jdk8u/jdk8u60/jdk/file/935758609767 browse>zip
- 剑指Offer-35.两个链表的第一个公共结点(C++/Java)
题目: 输入两个链表,找出它们的第一个公共结点. 分析: 先统计两个链表的长度,计算他们的差值,然后将两个链表对齐,再去寻找公共节点即可. 程序: C++ class Solution { publi ...
- for(var i in items) 和 for(var i;i<items.length;i++) 区别
前者循环的是属性,后者循环的才是数组. 若项目中对数组属性进行了扩展,那切记不能使用前者,否则在循环数组时扩展的函数体也会被当做数据返回. var data = { p1:1, p2:"b& ...
- ubuntu 16.04 + eigen3 安装(解决 fatal error: Eigen/Core: No such file or directory)
1.安装 sudo apt-get install libeigen3-dev 2. 解决 fatal error: Eigen/Core: No such file or directory 当调用 ...
- Vue ---- 组件文件分析 组件生命周期钩子 路由 跳转 传参
目录 Vue组件文件微微细剖 Vue组件生命周期钩子 Vue路由 1.touter下的index.js 2.路由重定向 3.路由传参数 补充:全局样式导入 路由跳转 1. router-view标签 ...
- 【Linux】文本处理工具介绍
文本处理工具介绍 grep.sed和awk都是文本处理工具,各自都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的.相比较而言,sed和awk功能更强大,且已独立成一种语言来介绍. grep: ...
- 二、Mapper映射文件
Mapper映射文件 mapper.xml映射文件主要是用来编写SQL语句的,以及一些结果集的映射关系的编写,还有就是缓存的一些配置等等. 在映射文件里面可以配置以下标签: 元素名称 描述 备注 se ...