机器学习|NLP的深度学习:ANN,RNN和LSTM详解!(附资源)


机器学习|NLP的深度学习:ANN,RNN和LSTM详解!(附资源)文章插图
作者:Jaime Zornoza , 马德里技术大学
翻译:陈之炎
校对:王威力
本文约3700字 , 建议阅读10+分钟 。
本文带你以前所未有的方式了解深度学习神经网络 , 并利用NLP构建Chatbot!
机器学习|NLP的深度学习:ANN,RNN和LSTM详解!(附资源)文章插图
【机器学习|NLP的深度学习:ANN,RNN和LSTM详解!(附资源)】是否曾经幻想过能和自己的私人助理对话或是漫无边际地探讨任何问题?多亏机器学习和深度神经网络 , 你曾经的幻想很快会变成现实 。 让我们来看一下Apple的Siri或亚马逊的Alexa所展示的这一神奇功能吧 。
不要太激动 , 我们在下面一系列帖子中 , 创建的不是一个无所不能的人工智能 , 而是创建一个简单的聊天机器人 , 预先些输入一些信息 , 它能够对此类信息相关的问题做出是或否的回答 。
它远不及Siri或Alexa , 但它却能很好地说明:即使使用非常简单的深度神经网络架构 , 也可以获得不错的结果 。 在这篇文章中 , 我们将学习人工神经网络 , 深度学习 , 递归神经网络和长短期记忆网络 。 在下一篇文章中 , 我们将在真实项目中利用它来回答问题
在开始讨论神经网络之前 , 先仔细看看下面的图像 。 其中有两张图片:其中一张图片是一辆校车行驶通过马路 , 另一张图片是是普通的起居室 , 这两张图片都有人工注释人员对其进行了描述 。
机器学习|NLP的深度学习:ANN,RNN和LSTM详解!(附资源)文章插图
图中为两个不同的图像 , 附有人工注释人员对其进行的描述
好了 , 让我们继续吧!
开始 - 人工神经网络
为了构建一个用于创建聊天机器人的神经网络模型 , 会用到一个非常流行的神经网络Python库:Keras 。 然而 , 在进一步研究之前 , 首先应了解人工神经网络(ANN)是什么 。
人工神经网络是一种机器学习模型 , 它试图模仿人类大脑的功能 , 它由连接在一起的大量神经元构建而成- 因此命名为“人工神经网络” 。
感知器
最简单的ANN模型由单个神经元组成 ,Star-Trek将之命名为感知器(Perceptron) 。 它由弗朗克·罗森布拉特(Frank Rossenblatt)于1957年发明 , 它包括一个简单的神经元 , 对输入的加权和进行函数变换(在生物神经元中是枝状突起) , 并输出其结果(输出将等同于生物神经元的轴突) 。 我们不在这里深入研究用到的函数变换的细节 , 因为这篇文章的目的不是成为专家 , 而只是需要了解神经网络的工作原理 。
机器学习|NLP的深度学习:ANN,RNN和LSTM详解!(附资源)文章插图
单个神经元的图像 , 左边为输入 , 乘以每个输入的权重 , 神经元将函数变换应用于输入的加权和并输出结果
这些单独的神经元可以堆叠起来 , 形成包含不同个数神经元的层 , 这些层可以顺序地相邻放置 , 从而使得网络更深 。
当以这种方式构建网络时 , 不属于输入层或输出层的神经元叫做隐藏层 , 正如它们的名称所描述:隐藏层是一个黑盒模型 , 这也正是ANN的主要特征之一 。 通常我们对其中的数学原理以及黑盒中发生的事情有一些认知 , 但是如果仅通过隐藏层的输出试图理解它 , 我们大脑可能不够用 。
尽管如此 , ANN却能输出很好的结果 , 因此不会有人抱怨这些结果缺乏可解释性 。
机器学习|NLP的深度学习:ANN,RNN和LSTM详解!(附资源)文章插图
大的神经网络的图像 , 由许多单独的神经元和层组成:一个输入层 , 两个隐藏层和一个输出层
神经网络结构以及如何训练一个神经网络 , 已为人所知有二十多年了 。 那么 , 又是什么原因导致了当今对人工神经网络和深度学习的火爆和炒作?下面我们会给出问题的答案 , 但在此之前 , 我们先了解一下深度学习的真正含义 。
什么是深度学习?
从它的名称可以猜测到 , 深度学习使用多个层逐步从提供给神经网络的数据中提取出更高级别的特征 。 这个道理很简单:使用多个隐藏层来增强神经模型的性能 。
明白了这一点之后 , 上面问题的答案便简单了:规模 。 在过去的二十年中 , 各种类型的可用数据量以及我们的数据存储和处理机器(即 , 计算机)的功能都呈指数级增长 。
计算力的增加 , 以及用于训练模型的可用数据量的大量增加 , 使我们能够创建更大、更深的神经网络 , 这些深度神经网络的性能优于较小的神经网络 。