深度学习算法

adam调参

坚强是说给别人听的谎言 提交于 2019-12-05 22:00:51
微调 #阿尔法 "learning_rate": 3e-5, #学习率衰减 "weight_decay": 0.1, // "weight_decay": 0.01, "clip_grad": 2, "batch_size": 30, "epoch_num": 1, "min_epoch_num": 1, "patience": 0.02, "patience_num": 3, "epsilon": 10e-8 # 防止除以零 如果不是微调 学习率和学习率的衰减率 都要增大 https://juejin.im/entry/5983115f6fb9a03c50227fd4 深度学习最常用的算法:Adam优化算法 阅读 15278 收藏 7 2017-08-03 原文链接: dataunion.org 从带宽扩展到丢包隐藏,实时音频中的 AI juejin.im 深度学习常常需要大量的时间和机算资源进行训练,这也是困扰深度学习算法开发的重大原因。虽然我们可以采用分布式并行训练加速模型的学习,但所需的计算资源并没有丝毫减少。而唯有需要资源更少、令模型收敛更快的最优化算法,才能从根本上加速机器的学习速度和效果,Adam 算法正为此而生! Adam 优化算法是随机梯度下降算法的扩展式,近来其广泛用于深度学习应用中,尤其是计算机视觉和自然语言处理等任务。本文分为两部分,前一部分简要介绍了

深度强化学习――连续动作控制DDPG、NAF

匿名 (未验证) 提交于 2019-12-03 00:18:01
一、存在的问题 DQN是一个面向离散控制的算法,即输出的动作是离散的。对应到Atari 游戏中,只需要几个离散的键盘或手柄按键进行控制。 然而在实际中,控制问题则是连续的,高维的,比如一个具有6个关节的机械臂,每个关节的角度输出是连续值,假设范围是0°~360°,归一化后为(-1,1)。若把每个关节角取值范围离散化,比如精度到0.01,则一个关节有200个取值,那么6个关节共有 200 6 个取值,若进一步提升这个精度,取值的数量将成倍增加,而且动作的数量将随着自由度的增加呈指数型增长。所以根本无法用传统的DQN方法解决。 解决方法 使用Policy-Based方法,通过各种策略梯度方法直接优化用深度神经网络参数化表示的策略,即网络的输出就是动作。 二、DDPG 深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG)算法是Lillicrap 等人利用 DQN 扩展 Q 学习算法的思路对 确定性策略梯度(Deterministic Policy Gradient, DPG) 方法进行改造,提出的一种基于行动者-评论家(Actor-Critic,AC)框架的算法,该算法可用于解决连续动作空间上的 DRL 问题。 随机性策略和确定性策略: 随机性策略,策略输出的是动作的概率,比如上一篇A3C博客提到的连续动作控制

数据挖掘与数据仓库――分类

匿名 (未验证) 提交于 2019-12-02 23:34:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/budding0828/article/details/90311845 分类算法 什么是分类 一些常见的概念: 训练集(Training data):用于训练模型(的参数,如神经网络的各层权重和偏置,线性回归分析的系数); 验证集(Validation data):用于调整超参数(Hyper-Parameters,如神经网络的宽度和深度、学习率等); 测试集(Test data):用于评价模型本身的有效性(准确率等) 训练误差(Training error):分类器在训练集上的误差。 泛化误差(Generalization error,out-of-sample error):分类器在未见样本(不在训练集中的样本)上的误差。 对于数据集的划分 划分法: 训练集与测试集 把样本划分成2个独立的数据集合, 如, 训练集 (2/3), 测试集(1/3)。 适用于大规模的数据样本。 交叉验证(Cross-validation) 把数据集合划分成k 个子样本; 使用k - 1 个子样本作为训练集,另一个作为测试样本―k-折交叉验证。 适用于中等规模的数据。 留一测试(Leave One Out, k = n) 适用于小规模数据。 泛化误差的偏差/方差分解、过拟合、欠拟合 以回归为例

【转】深度学习目标检测的整体架构描述(one-stage/two-stage/multi-stage)

三世轮回 提交于 2019-11-30 19:19:35
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/JNingWei/article/details/80039079 Introduction Detection主要分为以下三个支系: - one-stage系 two-stage系 multi-stage系 主要算法 YOLOv1、SSD、YOLOv2、RetinaNet、YOLOv3 Fast R-CNN、Faster R-CNN R-CNN、SPPNet 检测精度 较低 较高 极低 检测速度 较快 较慢 极慢 鼻祖 YOLOv1 Fast R-CNN R-CNN 状态 已淘汰 Detection算法的几个task 对于不需要预生成RP的Detection算法而言,算法只需要完成三个任务: 特征抽取 分类 定位回归 对于有预生成RP的Detection算法而言,算法要完成的主要有四个任务: 特征抽取 生成RP 分类 定位回归 Detection算法的框架套路 multi-stage 算法 最早期的检测算法 (主要为R-CNN、SPPNet) 都属于multi-stage系。这个时候的Selective Serach、Feature extraction、location regressor、cls

归并排序、jensen不等式、非线性、深度学习

独自空忆成欢 提交于 2019-11-29 18:50:13
前言 在此记录一些不太成熟的思考,希望对各位看官有所启发。 从题目可以看出来这篇文章的主题很杂,这篇文章中我主要讨论的是深度学习为什么要“深”这个问题。先给出结论吧:“深”的层次结构是为了应对现实非线性问题中的复杂度,这种“深”的分层结构能够更好地表征图像语音等数据。 好了,如果各位看官感兴趣,那就让我们开始这次思考的旅程吧! 归并排序 我们首先从归并排序算法开始,这里先跟大家回顾一下这个算法,相信大家都已经非常熟悉了。排序是计算机基础算法中的一个重要主题,要将一个无序的数组排成有序的一个容易想到的算是冒泡法,其时间复杂度为O(n^2),冒泡算法并没用到“分而治之”的思想,而是一次性地解决问题。而我们要讨论的归并算法的时间复杂度为O(nlogn),归并算法的大致原理是递归地将待排序的数组分解成更小的数组,将小数组排好序,再逐层将这些排好序的小数组拼成大数组,最终完成排序。直接上代码吧: def merge_sort(arr): """ input : unsorted array output: sorted array in ascending order """ if len(arr) <= 1: return arr half = len(arr)//2 left = merge_sort(arr[0:half]) right = merge_sort(arr[half:])

动手学深度学习(MXNet)4:优化算法

你。 提交于 2019-11-29 06:30:16
优化算法通常只考虑最小化目标函数。其实,任何最大化问题都可以很容易地转化为最小化问题,只需令目标函数的相反数为新的目标函数即可。 由于优化算法的目标函数通常是一个基于训练数据集的损失函数,优化的目标在于降低训练误差。而深度学习的目标在于降低泛化误差。为了降低泛化误差,除了使用优化算法降低训练误差以外,还需要注意应对过拟合。 深度学习中绝大多数目标函数都很复杂。因此,很多优化问题并不存在解析解,而需要使用基于数值方法的优化算法找到近似解,即数值解。本书中讨论的优化算法都是这类基于数值方法的算法。为了求得最小化目标函数的数值解,我们将通过优化算法有限次迭代模型参数来尽可能降低损失函数的值。 两个挑战 ,即局部最小值和鞍点。 梯度下降和随机梯度下降 def train_2d(trainer): # 本函数将保存在d2lzh包中方便以后使用 x1, x2, s1, s2 = -5, -2, 0, 0 # s1和s2是自变量状态,本章后续几节会使用 results = [(x1, x2)] for i in range(20): x1, x2, s1, s2 = trainer(x1, x2, s1, s2) results.append((x1, x2)) print('epoch %d, x1 %f, x2 %f' % (i + 1, x1, x2)) return results

笔记 :归纳总结 (一)

孤街浪徒 提交于 2019-11-28 13:09:57
原文: http://blog.gqylpy.com/gqy/480 置顶:来自一名75后老程序员的武林秘籍——必读 (博主推荐) 来,先呈上武林秘籍链接: http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我会画原理图,会画 PCB,会模拟,会数字!玩过 PLC,玩过单片机,会用汇编,会用 C!玩过 ARM,比如 PLC,STM32,和时下正在起飞的 NXP RT1052!搞过 DSP,比如 TMS320F28335!搞过 FPGA,不管 Xilinx 还是 Altera,也不管是 Verilog 还是 VHDL,或者直接画数字电路图!我懂嵌入式系统,比如 uCOS 和 Linux!我懂开源的硬件,比如 Arduino 和树莓派!我也搞软件,学了一堆上位机的语言C#,JAVA,Python,Kotlin,Swift!会写爬虫工具,又自学写APP,不管Android 还是 IOS! 可是这一切有什么用呢?土鸡瓦狗!不值一提!干技术的永远就是最苦逼的那个人! 我相信看到这里的你,应该是个 IT

机器学习(十四):深度学习梯度优化算法(SGD \\ SGD-M \\ NAG \\ AdaGrad \\ RMSProp \\ Adam )

耗尽温柔 提交于 2019-11-28 05:08:56
1.随机梯度下降算法(Stochastic Gradient Descent, SGD) 2.使用动量的随机梯度下降算法(Stochastic Gradient Descent - Momentum, SGD-M) 3.使用Nesterov动量的随机梯度下降算法(Nesterov Accelerated Gradient, NAG) 4.AdaGrad算法 5.RMSProp算法 6.Adam算法 ———————————————— 来源: https://www.cnblogs.com/pengfeiz/p/11393125.html

目标跟踪算法综述

眉间皱痕 提交于 2019-11-27 05:22:51
转自 https://www.zhihu.com/question/26493945 作者:YaqiLYU 第一部分:目标跟踪速览 先跟几个SOTA的tracker混个脸熟,大概了解一下目标跟踪这个方向都有些什么。一切要从2013年的那个数据库说起。。如果你问别人近几年有什么比较niubility的跟踪算法,大部分人都会扔给你吴毅老师的论文,OTB50和OTB100(OTB50这里指OTB-2013,OTB100这里指OTB-2015,50和100分别代表视频数量,方便记忆): Wu Y, Lim J, Yang M H. Online object tracking: A benchmark [C]// CVPR, 2013. Wu Y, Lim J, Yang M H. Object tracking benchmark [J]. TPAMI, 2015. 顶会转顶刊的顶级待遇,在加上引用量1480+320多,影响力不言而喻,已经是做tracking必须跑的数据库了,测试代码和序列都可以下载: Visual Tracker Benchmark ,OTB50包括50个序列,都经过人工标注: 两篇论文在数据库上对比了包括2012年及之前的29个顶尖的tracker,有大家比较熟悉的OAB, IVT, MIL, CT, TLD, Struck等,大都是顶会转顶刊的神作

机器学习、计算机视觉面经整理(持续完善整理中……)

强颜欢笑 提交于 2019-11-26 12:58:40
算法岗计算机视觉方向 求职经验总结 进入11月份,楼主找工作也基本进入尾声了,从7月份开始关注牛客网,在求职的过程中学到了不少,感谢牛客提供这样一个平台,让自己的求职历程不再孤单。 先说一下楼主教育背景,本科西部末流985,研究生调剂到帝都某文科学校.专业都是CS专业,求职方向都是计算机视觉算法。有某外企以及二线互联网实习经历,本科虽然CS出身,但实际动手能力并不强。研究生的研究方向并不是计算机视觉方向。实习的时候开始接触计算机视觉,自己比较感兴趣,开始转CV方向。回想这几个月的求职经历,其中的辛苦只有自己知道。最终拿到了 百度SP ,京东SSP,美团无人驾驶SP,顺丰科技SP,拼多多SP,以及虹软SP,思科,中电29等offer。 想把我学习与求职路上的一些心得告诉学弟学妹们。 1. 一定要有一门自己比较熟悉的语言。 我由于使用C++ 比较多,所以简历上只写了C++。C++的特性要了解,C++11要了解一些,还有STL。面试中常遇到的一些问题,手写代码实现一个string类,手写代码实现智能指针类,以及STL中的容器的实现机制,多态和继承,构造函数, 析构函数等。推荐看一下 网易云课堂翁恺老师 的C++ 的视频以及经典的几本书。 2.一定要刷题 楼主主要刷了 剑指offer 以及leetcode上的easy,middle的题目。如果编程能力不是很强,推荐可以分类型进行刷题