如何加速我们的神经网络?

各位老哥们大家好,双击喜欢666。今天我们来聊一聊本萌新最新学习的一些知识。让我们一起来想一下怎么样来加速我们的神经网络的训练过程。

通常我们知道,越复杂的神经网络,越多的训练数据。我们所花费在训练这些实验数据上所消费的时间也就越多。原因很简单,因为你在计算的过程中需要计算的数据量太大了。但是往往在实际的过程中,复杂的数据和海量的数据往往是不可避免的。这个时候,我们就需要找到一些方法,让神经网络变得聪明起来,变得快起来。

所以,人们找出了一个最基础的方法SGD(Stochastic Gradient Descent)

现在想想红色方块是我们所要训练的data,如果要按照以前整套的流程和写法,就需要把整套的数据一次一次的放入到神经网络中进行学习,放入到NN中进行训练。在这个过程中所消耗的资源会很大。这个时候我们需要换一种思维方式。假如现在我们先将这些数据分拆成一小批一小批的,然后再不断地分批放入NN中进行计算。这个就是我们常说的SGD的正确打开方式了。在每一次的过程中,每次使用分量数据,虽然不能反映整体的情况,但是却在很大的程度上大大加速了NN的训练过程,并且在这个过程中也不会减少NN的准确率。但是如果即便是使用了SGD,你还是觉得训练的速度太慢,那应该怎么办?

没事!满足你,经过科学家们的反复研究,事实证明,SGD并不是最快的实践方法,在下图中我们可以看到,当SGD到达实验目标的时候,它所消耗的实践是最长的一种,这跟我昨天写的文章中对于问题求解的最佳路径显然是矛盾的。与之相对的,我们还有很多的途径来加速训练。其余的大多数方法都是在更新神经网络参数的时候动手脚。

对于公式W+=-Learning rate*dx。传统参数W的更新是将原始的学习参数上累加上一个负的学习效率Learning rate乘以矫正值dx。虽然这个学习过程的道路会曲折务必,做出来的折线图也像是一个喝醉了的大汉摇摇晃晃走出的路一样。走了很多弯路,所以我们将这个人从平地上放到一个下坡上,只要这个人往下坡上走一点点,他就会不自觉地往下走,走的弯路也就相应的变少。这也就是所谓的Momentum的更新方法。他们的数学形式也就是m=b1*m-Learning rate*dx  W+=m

另外一种学习方法也就是AdaGrad方法,这一种方法其实是在学习率上动动手脚,最后使得每一个参数的更新都会有与众不同的效应。这个方法其实和Momentum有一点类似,不过这个方法不是给一个喝醉的大汉安排一个下坡,而是给他一双较小的鞋子,这样他走路的时候就会发现自己的脚疼,这样就会变成一个走弯路的阻力,就会逼着他直着走。

那么这个时候你可能会像,如果把下坡和不好走的鞋子结合起来会不会有更好的效果呢?

没错,你的想法是对的。这样的情况下,我们就有了RMSProp的方法。因为有了Momentum对于错误方向的轨迹,加上AdaGrad对于错误方向上的阻力,这样就让RMSProp有了他们两种同时的优势。现在的数学公式如下

V =b1*v +(1-b1)*dx^2

W+= -Learning rate*dx/v

不过这个时候有细心地同学一定可以发现RMSProp并不是AdaGrad和Momentu两组公式的相加,其实缺少了Momentu中的-Learning rate*dx中的这一个部分,所以我们就引出了这个算法Adam,并且在Adam中引出这个公式:

Momentu:m =b1*m+(1-b1)*dx

AdaGrad:V =b1*v +(1-b1)*dx^2

W+= -Learning rate*dx/v

经过试验证明,在大多数情况下使用Adam可以迅速的达到收敛的目标,又快又好的完成任务。在神经网络训练过程中,Adam算法可以说功不可没。

这些就是这一篇文章所想要解释的一些内容,但是因为时间仓促,一定要很多的纰漏,也希望大家可以多多提出意见,以此来促进我们的共同提升!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据科学与人工智能

【数据挖掘】用文本挖掘和机器学习洞悉数据

文本挖掘是对包含于自然语言文本中数据的分析。它可以帮组一个组织从基于文本的内容中获得潜在的有价值的业务洞察力,比如Word文档,邮件和社交媒体流中发布的帖子,如...

24610
来自专栏机器之心

论文结果难复现?本文教你完美实现深度强化学习算法DQN

3327
来自专栏鸿的学习笔记

深度学习的五种分类

卡洛斯佩雷斯为深度学习为基础的AI给出了自己的分类。这个分类让我们知道我们目前在哪里,我们可能走向哪里。

1331
来自专栏数据派THU

收藏 | 最新知识图谱论文清单(附解读、下载)

精选 6 篇来自 EMNLP 2018、COLING 2018、ISWC 2018 和 IJCAI 2018 的知识图谱相关工作,带你快速了解知识图谱领域最新研...

2173
来自专栏数据科学与人工智能

【机器学习】有趣的机器学习:最简明入门指南

在听到人们谈论机器学习的时候,你是不是对它的涵义只有几个模糊的认识呢?你是不是已经厌倦了在和同事交谈时只能一直点头?让我们改变一下吧! 本指南的读者对象是所有对...

3218
来自专栏机器之心

教程 | 深度Q学习:一步步实现能玩《毁灭战士》的智能体

选自Medium 作者:Thomas Simonini 机器之心编译 参与:Panda 近年来,深度强化学习已经取得了有目共睹的成功。机器之心也曾发布过很多介绍...

2945
来自专栏企鹅号快讯

简单有效的多标准中文分词

-欢迎 加入AI技术专家社群>> 本文介绍一种简洁优雅的多标准中文分词方案,可联合多个不同标准的语料库训练单个模型,同时输出多标准的分词结果。通过不同语料库之间...

2797
来自专栏IT派

可视化图表10个错误的表达方式,你犯了几个

饼图的设计应该直观而清晰,理论上,一个饼图不应该分割超过5块。下面就是两种可以让读者的注意力瞬间集中到你要表述的重点的方法。

1142
来自专栏IT技术精选文摘

白话深度神经网络

近些年来,深度神经网络异常火爆,各种深度神经网络架构层出不穷。大有千树万树梨花开,各领风骚数小时的趋势!

1281
来自专栏CreateAMind

结构知识的泛化-从海马体学习的模型

3676

扫码关注云+社区

领取腾讯云代金券