【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记

李宏毅机器学习学习笔记汇总
课程链接


文章目录

  • Example Application
    • Slot Filling
    • 把词用向量来表示的方法
      • 1-of-N encoding / one-hot
      • Beyond 1-of-N encoding
    • 存在的问题
  • Recurrent Neural Network(RNN)
    • Example
    • RNN 处理slots filling问题
    • Of course it can be deep...
  • RNN 的变形
    • Elman Network 和 Jordan Network
    • Bidirectional RNN
    • Long Short-term Memory(LSTM)
      • LSTM - Example
      • LSTM
      • Multiple-layer LSTM

Example Application

Slot Filling

【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第1张图片
可以使用前馈神经网络来实现,需要把每个词用向量来表示。
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第2张图片

把词用向量来表示的方法

1-of-N encoding / one-hot

【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第3张图片

Beyond 1-of-N encoding

多一个纬度other,不在词典中的词汇归类入other
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第4张图片

存在的问题

词汇表示为一个向量,输入是这个向量,输出是一个概率分布,属于某种的概率
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第5张图片
神经网络在输入同一个词输出的概率分布是一样的,但是这样是不对的(如下图例子),所以我们希望神经网络是有记忆的。
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第6张图片

Recurrent Neural Network(RNN)

有记忆的神经网络,叫做RNN。

每次hidden layer里的neural产生输出的时候都会存到内存中,在下一次有input的时候,hidden layer的neural不止会考虑input还会考虑内存中的值。
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第7张图片

Example

假设weight都是1,没有bias,激活函数都是线性的。
输入和输出都是一个序列。

第一次:内存中还没存过东西,都是0,输入为1,计算后存入内存

【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第8张图片
第二次:考虑输入和内存,得到新的结果并且保存
(哪怕两次输入是一样的,输出结果是不一样的,因为内存中的值是不一样的)
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第9张图片
第三次:重复上述步骤。。。
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第10张图片
在RNN中,改变输入序列的顺序,将会改变输出。

RNN 处理slots filling问题

RNN处理的流程:

ps:并不是有三个神经网络,而是同一个神经网络在三个不同的时间点,被使用了三次
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第11张图片
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第12张图片

Of course it can be deep…

【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第13张图片

RNN 的变形

Elman Network 和 Jordan Network

Elman Network:把hidden layer的值存起来,在下一个时间点读出来,如前面的例子

Jordan Network:存的是整个网络的output的值,在下一个时间点再读出来。
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第14张图片

Bidirectional RNN

RNN还可以是双向的。可以看到更多的东西,得到更好的performance。
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第15张图片

Long Short-term Memory(LSTM)

neutral的output想要写入内存前需要经过一系列的闸门。
input gate:打开的时候neutral的output才可以被写入内存
output gate:外界其他的neutral是否可以通过内存读出值。
forget gate(遗忘门):什么时候内存要把过去的东西忘掉

以上三个都是需要网络自己学习。

LSTM可以看作有四个input,一个output

input :

  • 想要被存到内存的值
  • 操控input gate的信号
  • 操控output gate的信号
  • 操控forget gate的信号

【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第16张图片
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第17张图片

LSTM - Example

【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第18张图片

图上标记出来的权重假设是已经训练好的参数

【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第19张图片
完整流程:(假想已知参数,不用梯度下降了)
输入310
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第20张图片

输入410
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第21张图片
输入200
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第22张图片

输入101
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第23张图片
输入3 -1 0
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第24张图片
传统神经网络和LSTM的区别
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第25张图片
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第26张图片
四倍参数。

LSTM

【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第27张图片
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第28张图片

还没结束,进一步的:
加上前一个时间点的output h
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第29张图片
把存在内存中的值也加进去
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第30张图片

Multiple-layer LSTM

【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第31张图片
哭了
【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记_第32张图片

你可能感兴趣的:(Machine,Learning,机器学习,李宏毅,学习笔记)