在人工智能领域,神经网络扮演着极其重要的角色。目前比较火热的卷积神经网络(CNN)主要用于分类,特别是在图像识别方面具有较大的优势。但是在一些动态的、与时间相关的领域效果并不如意。而LSTM在处理复杂的任务上具有CNN难以媲美的优势,LSTM更加真实地表征神经元的认知过程、更能体现人脑的逻辑与记忆功能。
如今有许多的AI项目开始应用LSTM。比如语言翻译,能够结合语境使得翻译后的内容更贴切;语音助手,更加“人性化”地与人交流;动态视频识别,能够根据视频中人物前后动作预测人物的意图等等。
早在1997年,就有大量学者针对LSTM进行研究。由于梯度消失和爆发的问题一直没有得到解决,所以早期LSTM一直没有得到很好的应用。
2012年是神经网络迅速发展的一年,各式各样的神经网络模型层出不穷。LSTM也不例外,Alex Graves针对LSTM作出了突破性的改进。
1. 引入了Forget(遗忘)门,有选择地将一部分信息丢弃掉。
2. 对LSTM的激活函数进行改进,比如sigmoid和tanh。
3. 加入了Peephole,即Celll对各个Gate的链接。
4. 训练过程不再使用截断算法,而是用FULL BPTT+trick进行算法,且获得的更好效果。
这使得许多问题取得了难以置信的成功,比如语音识别、语言建模、语言翻译、图像字幕等等。这是人工智能领域不可也缺少的一个环节。如果神经网络只是可以让机器像人类一样学习和思考,那么LSTM相当于让机器能够像人类一样既能思考又能记忆。
人脑有两个主要的功能:记忆和思考。然而当前的大多数神经网络没有办法做到这一点。这是当前人工智能的一个弊端所在。例如,智能语音助手只能回答你最近一次提出的问题,却不能联系之前的对话进行回答,表现就是它不能理解当前对话的语境,因而回答并不是那么“智能化”。
为了解决这一问题,有人提出了RNN(Recurrent Neural Network)循环神经网络
然而RNN在实际应用方面还有许多不足,其中最大的问题是后节点很难感知距离较远的前节点,也就是RNN只具有短期记忆,会忘事。这在深层网络中尤为突出。于是在RNN的基础上出现了LSTM(Long-Short Term Memory)长短期记忆网络。
LSTM与RNN的主要区别是LSTM加入了一种机制:有选择的让信息通过。可以结合我们有选择的遗忘一些不重要的事情来理解。在处理与时间序列相关的问题时,LSTM具有非常大的优势。因此LSTM目前被广泛应用于AI领域。比如:编码解码网络,机器翻译、自然语言处理、动态视频识别等等。