BiLSTM学习笔记

1、proj_size是指在计算出隐状态hi之后,另外使用一个投影矩阵(projection matrix)来把隐状态从hidden_size投影到proj_size维度。这个投影矩阵也是可学习的。

2、LSTM产出3种结果,第一个是output,是最后一层LSTM产出的每个时间节点t的隐状态合集,如果LSTM是双向的,则会拼接每个时间点t的正向和反向的结果,作为这个时间t的结果。

第二个是h,是每一层的LSTM的每个方向的最后一个时间节点t的隐状态结果,这个维度大小和刚开始初始化时丢进去的h大小是一样的,即:

(LSTM层数*LSTM方向数)*batch数*隐节点数

第三个是c,细胞状态,维度和h一样,不过这个结果不常用。

3、RNNCell和LSTMCell两个类模型,是RNN和LSTM模型拆开的独立单元,一般来说RNN或LSTM会根据输入序列的字数自动安排模型长度,而RNNCell和LSTMCell固定只接受单个字的特征(带batch),这就给建模提供了diy的可能性。

>>> rnn = nn.RNNCell(10, 20)
>>> input = torch.randn(6, 3, 10)
>>> hx = torch.randn(3, 20)
>>> output = []
>>> for i in range(6):
        hx = rnn(input[i], hx)
        output.append(hx)

>>> rnn = nn.LSTMCell(10, 20)
>>> input = torch.randn(6, 3, 10)
>>> hx = torch.randn(3, 20)
>>> cx = torch.randn(3, 20)
>>> output = []
>>> for i in range(6):
        hx, cx = rnn(input[i], (hx, cx))
        output.append(hx)

4、dropout为什么能防止过拟合,因为dropout在丢弃某些节点后,剩下的节点相当于独立的一个模型网络,当每次dropout不同节点时,相当于训练多个模型网络来捕获不同维度的特征,最后在pred时没有经过dropout,这就启动了所有网络进行综合判断,这样可以一定程度上使各个方向上的过拟合相互抵消,增强鲁棒性。

5、BILSTM流程图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值