深度学习面试79题:涵盖深度学习所有考点(66-79)


深度学习面试79题:涵盖深度学习所有考点(66-79)
本文插图
LSTM ——是一种特殊 RNN 类型 , 可以学习长期依赖信息 。 LSTM 由Hochreiter & Schmidhuber (1997)提出 , 并在近期被Alex Graves进行了改良和推广 。 在很多应用问题 , LSTM 都取得相当巨大的成功 , 并得到了广泛的使用 。 然而LSTM结构复杂 , 初学者难于理解 , 本文通过动图形象直观的理解LSTM 。
一、短时记忆
RNN 会受到短时记忆的影响 。 如果一条序列足够长 , 那它们将很难将信息从较早的时间步传送到后面的时间步 。
因此 , 如果你正在尝试处理一段文本进行预测 , RNN 可能从一开始就会遗漏重要信息 。 在反向传播期间 , RNN 会面临梯度消失的问题 。梯度是用于更新神经网络的权重值 , 消失的梯度问题是当梯度随着时间的推移传播时梯度下降 , 如果梯度值变得非常小 , 就不会继续学习 。
深度学习面试79题:涵盖深度学习所有考点(66-79)
本文插图
因此 , 在递归神经网络中 , 获得小梯度更新的层会停止学习—— 那些通常是较早的层 。由于这些层不学习 , RNN 可以忘记它在较长序列中看到的内容 , 因此具有短时记忆 。
一 前言
最近在看深度学习的东西 , 一开始看的吴恩达的UFLDL教程 , 有中文版就直接看了 , 后来发现有些地方总是不是很明确 , 又去看英文版 , 然后又找了些资料看 , 才发现 , 中文版的译者在翻译的时候会对省略的公式推导过程进行补充 , 但是补充的又是错的 , 难怪觉得有问题 。
反向传播法其实是神经网络的基础了 , 但是很多人在学的时候总是会遇到一些问题 , 或者看到大篇的公式觉得好像很难就退缩了 , 其实不难 , 就是一个链式求导法则反复用 。 如果不想看公式 , 可以直接把数值带进去 , 实际的计算一下 , 体会一下这个过程之后再来推导公式 , 这样就会觉得很容易了 。
二、简单的神经网络
说到神经网络 , 大家看到这个图应该不陌生:
深度学习面试79题:涵盖深度学习所有考点(66-79)
本文插图
这是典型的三层神经网络的基本构成 , Layer L1是输入层 , Layer L2是隐含层 , Layer L3是隐含层 , 我们现在手里有一堆数据{x1,x2,x3,...,xn},输出也是一堆数据{y1,y2,y3,...,yn},现在要他们在隐含层做某种变换 , 让你把数据灌进去后得到你期望的输出 。 如果你希望你的输出和原始输入一样 , 那么就是最常见的自编码模型(Auto-Encoder) 。
可能有人会问 , 为什么要输入输出都一样呢?有什么用啊?其实应用挺广的 , 在图像识别 , 文本分类等等都会用到 , 我会专门再写一篇Auto-Encoder的文章来说明 , 包括一些变种之类的 。 如果你的输出和原始输入不一样 , 那么就是很常见的人工神经网络了 , 相当于让原始数据通过一个映射来得到我们想要的输出数据 , 也就是我们今天要讲的话题 。