深度学习

方向:如何提高深度学习的性能?

性能提高分为四个部分: 1. 通过数据提升性能 、2. 通过算法提升性能 、3. 通过算法调参提升性能 、4. 通过嵌套模型提升性能。

通常来讲,随着列表自上而下,性能的提升也将变小。例如,对问题进行新的架构或者获取更多的数据,通常比调整最优算法的参数能带来更好的效果。虽然并不总是这样,但是通常来讲是的。

1. 通过数据提升性能

对你的训练数据和问题定义进行适当改变,你能得到很大的性能提升。或许是最大的性能提升。

1) 获取更多数据

你能获取更多训练数据吗?

你的模型的质量通常受到你的训练数据质量的限制。为了得到最好的模型,你首先应该想办法获得最好的数据。你也想尽可能多的获得那些最好的数据。

有更多的数据,深度学习和其他现代的非线性机器学习技术有更全的学习源,能学得更好,深度学习尤为如此。这也是机器学习对大家充满吸引力的很大一个原因(世界到处都是数据)。

神经网络结构在命名实体识别(NER)中的应用

近年来,基于神经网络的深度学习方法在自然语言处理领域已经取得了不少进展。作为NLP领域的基础任务—命名实体识别(Named Entity Recognition,NER)也不例外,神经网络结构在NER中也取得了不错的效果。最近,我也阅读学习了一系列使用神经网络结构进行NER的相关论文,在此进行一下总结,和大家一起分享学习。

1 引言

命名实体识别(Named Entity Recognition,NER)就是从一段自然语言文本中找出相关实体,并标注出其位置以及类型,如下图。它是NLP领域中一些复杂任务(例如关系抽取,信息检索等)的基础。

神经网络结构在命名实体识别(NER)中的应用

NER一直是NLP领域中的研究热点,从早期基于词典和规则的方法,到传统机器学习的方法,到近年来基于深度学习的方法,NER研究进展的大概趋势大致如下图所示。

深度学习网络调参技巧

好的实验环境是成功的一半

由于深度学习实验超参众多,代码风格良好的实验环境,可以让你的人工或者自动调参更加省力,有以下几点可能需要注意:

• 将各个参数的设置部分集中在一起。如果参数的设置分布在代码的各个地方,那么修改的过程想必会非常痛苦。

• 可以输出模型的损失函数值以及训练集和验证集上的准确率。

• 可以考虑设计一个子程序,可以根据给定的参数,启动训练并监控和周期性保存评估结果。再由一个主程序,分配参数以及并行启动一系列子程序。

画图

画图是一个很好的习惯,一般是训练数据遍历一轮以后,就输出一下训练集和验证集准确率。同时画到一张图上。这样训练一段时间以后,如果模型一直没有收敛,那么就可以停止训练,尝试其他参数了,以节省时间。

如果训练到最后,训练集,测试集准确率都很低,那么说明模型有可能欠拟合。那么后续调节参数方向,就是增强模型的拟合能力。例如增加网络层数,增加节点数,减少dropout值,减少L2正则值等等。

如果训练集准确率较高,测试集准确率比较低,那么模型有可能过拟合,这个时候就需要向提高模型泛化能力的方向,调节参数。

从粗到细分阶段调参

深度学习的57个术语

激活函数(Activation Function)

为了让神经网络能够学习复杂的决策边界(decision boundary),我们在其一些层应用一个非线性激活函数。最常用的函数包括 sigmoid、tanh、ReLU(Rectified Linear Unit 线性修正单元) 以及这些函数的变体。

Adadelta

Adadelta 是一个基于梯度下降的学习算法,可以随时间调整适应每个参数的学习率。它是作为 Adagrad 的改进版提出的,它比超参数(hyperparameter)更敏感而且可能会太过严重地降低学习率。Adadelta 类似于 rmsprop,而且可被用来替代 vanilla SGD。

论文:Adadelta:一种自适应学习率方法(ADADELTA: An Adaptive Learning Rate Method)
技术博客:斯坦福 CS231n:优化算法(http://cs231n.github.io/neural-networks-3/)

深度学习中消失的梯度

了解深度学习的同学可能知道,目前深度学习面临的一个问题就是在网络训练的过程中存在梯度消失问题(vanishing gradient problem),或者更广义地来讲就是不稳定梯度问题。那么到底什么是梯度消失呢?这个问题又是如何导致的呢?这就是本文要分享的内容。

1. 消失的梯度

首先,我们将一个网络在初始化之后在训练初期的结果可视化如下:

深度学习中消失的梯度

在上图中,神经元上的条可以理解为神经元的学习速率。这个网络是经过随机初始化的,但是从上图不难发现,第二层神经元上的条都要大于第一层对应神经元上的条,即第二层神经元的学习速率大于第一层神经元学习速率。那这可不可能是个巧合呢?其实不是的,在书中,Nielsen通过实验说明这种现象是普遍存在的。

我们再来看下对于一个具有四个隐层的神经网络,各隐藏层的学习速率曲线如下:

你的深度学习应用可能存在安全风险!

导语:深度学习框架和应用中存在许多漏洞,其中15个漏洞拥有CVE编号。漏洞的类型有堆溢出、数字溢出、Use-After-Free漏洞等。

360安全实验室(肖奇学 、Deyue Zhang)、佐治亚大学(李康)和弗吉尼亚大学(Weilin Xu)的研究者,他们在论文《Security Risks in Deep Learning Implementations》中,对三个主流的深度学习框架的实现中存在的安全威胁进行了检查和分析,分别是Caffe, TensorFlow, and Torch。文中,作者提到软件来说,应用实现的复杂性会导致一些软件漏洞的产生。深度学习框架面临同样的挑战,经过检查,研究人员发现了许多实现的漏洞,其中15个漏洞拥有CVE编号。漏洞的类型有堆溢出、数字溢出、Use-After-Free漏洞等。

深度学习应用程序的分层架构

深度学习框架让开发人员可以快速开发深度学习应用程序。深度学习应用程序采用的是一种三层的分层架构,最底层是框架依赖库,上层是深度学习的框架,最上层为深度学习的应用程序。有了预先实现的神经网络层,深度学习框架允许开发者重点关注应用程序的实现逻辑。

你所不能不知道的CNN

作者:许铁

说起CNN,最初人们想到的都是某电视台,但等过几年,人们想起的多半是深度学习了。

应该说, CNN是这两年深度学习风暴的罪魁祸首, 自2012年, 正是它让打入冷宫的神经网络重见天日并且建立起自己在人工智能王国的霸主地位。

如过你认为深度学习是只能用来理解图像的,你就大错特错了, 因为它的用途太广了,上至文字,中有图像, 下至音频, 从手写数字识别到大名鼎鼎的GAN对抗学习, 都离不开它。

不过要了解CNN,还是拿图像做例子比较恰当。一句话来说CNN图像处理的本质,就是信息抽取, 巨大的网络可以抽取一步步得到最关键的图像特征, 我们有时也叫自动的特征工程。

CNN的建造灵感来自于人类对视觉信息的识别过程。 人脑对物体的识别的第一个问题是: 对应某一类对象的图像千千万, 比如一个苹果, 就有各种状态的成千上万状态, 我们识别物体的类别,事实上是给这成千上万不同的图片都打上同一个标签。

专家教你利用深度学习检测恶意代码

当前,恶意软件的检测已经成为全社会关注的网络安全焦点,因为许多时候,单个恶意软件就足以导致数百万美元的损失。目前的反病毒和恶意软件检测产品,一般采用的是基于特征的方法,它们借助人工设定的规则集来判断某软件是否属于某种已知的恶意软件类型集合。通常来说,这些规则是具有针对性的,即使新出现的恶意代码使用了跟原来的恶意代码相同的功能,检测软件通常也检测不出来。

所以,这种方法是无法令人满意的,因为大部分情况下二进制文件都是非常独特的,或者说是以前从未见过的,并且,这个世界上每天都有数百万个新的恶意软件样本被发现。所以,我们需要开发一种能够适应日新月异的恶意软件生态系统的检测技术,而机器学习看起来非常有希望满足我们这一需求。事实上,一些初创公司和老牌安全公司早就开始着手构建基于机器学习的防御系统了。为了获得高质量的防御系统,这些公司通常都需要在特征工程和分析方面花费大量财力和精力。然而,如果我们是否能够在无需借助特征工程的情况下构建反病毒系统呢?果真如此的话,我们就能将同一系统部署到不同的操作系统和硬件上检测恶意软件。在我们最近发表的研究论文中,我们的研究成果向这个目标迈出了坚实的一步。

图像分类 | 深度学习PK传统机器学习

图像分类,顾名思义,是一个输入图像,输出对该图像内容分类的描述的问题。它是计算机视觉的核心,实际应用广泛。

图像分类的传统方法是特征描述及检测,这类传统方法可能对于一些简单的图像分类是有效的,但由于实际情况非常复杂,传统的分类方法不堪重负。现在,我们不再试图用代码来描述每一个图像类别,决定转而使用机器学习的方法处理图像分类问题。

图像分类 | 深度学习PK传统机器学习

目前,许多研究者使用CNN等深度学习模型进行图像分类;另外,经典的KNN和SVM算法也取得不错的结果。然而,我们似乎无法断言,哪种方法对于图像分来问题效果最佳。
图像分类 | 深度学习PK传统机器学习

本项目中,我们做了一些有意思的事情:

为什么大家都不戳破深度学习的本质?!

作者:Pope

人类正在慢慢接近世界的本质——物质只是承载信息模式的载体。人脑之外的器官都只是保障这一使命的给养舰队。

自从 AlphaGo 完虐李世乭,深度学习火了。但似乎没人说得清它的原理,只是把它当作一个黑箱来使。有人说,深度学习就是一个非线性分类器?有人说,深度学习是对人脑的模拟……但我觉得都没有捅透那层窗户纸。

当读完 Jeff Hawkins 的《论智能》,「就是它了!」。而我惊奇地发现,原书竟是 2004 年出版的!我怕自己读了本假书,或是某个美国民科的著作,特意到豆瓣、知乎上查了下,发现几乎每个看过这本书的人都对其理论啧啧称赞。但奇怪的是,似乎没人肯替它站台,这套理论的影响止步于此,好像大家都在刻意掩饰自己看过这本秘笈。它明明已经完整解释了人脑智能的运作机制了啊!注意是 Real Intelligence ,而不仅仅是 Artificial Intelligence !!!

三个洞见

比起绝大多数脑科学论文,作者的洞见简单得多,也深刻得多:

同步内容
--电子创新网--
粤ICP备12070055号