'''
Author: 365JHWZGo
Description: 17.rnn -- review
Date: 2021/11/2 17:15
FilePath: day1102-2.py
'''
图片来源:https://www.bilibili.com/video/BV1dZ4y1g7DE?p=4
理解RNN机制:
时序数据
具有时间概念的数据。
如图片中的6,当一张MNIST图片(1*28 *28)每次逐行扫描,可以进行28次扫描【TIME_STEP】
每次扫描的数据是28个像素点【INPUT_SIZE】,所以RNN的输入是【BATCH_SIZE,TIME_STEP,INPUT_SIZE】
CNN缺点
当对一句话进行处理时,CNN只能对每一个单词进行处理,并不会对前面处理过的单词进行分析,也就是说每个单词都是独立的。
举例:
我 从来 没有 喜欢 过 吃苹果
当用CNN处理时,每个单词都被看做是一个独立的个体,所以当扫描到喜欢时,就会误以为是一个褒义句子,从而误解整句话的意思。
RNN的实现
- 权值共享W和b
- 存储记忆,保留上一步的信息特征
举例:
假设现在有一个BATCH_SIZE=3,TIME_STEP=10,INPUT_SIZE=100的一个输入
xt : 每一个TIME_STEP的输入【BATCH_SIZE,INPUT_SIZE】 = 【3,100】
hidden len : 隐藏层,即用一个20维的向量来存储记忆【假设有20层】
ht-1 : 作为下一个ht输入
ht-1 = 【3,100】@【20,100】T+【3,20】@【20,20】T=【3,20】