序列模型

https://zh.d2l.ai/chapter_recurrent-neural-networks/sequence.html

你好, 不是很理解 为什么 李老师说 CNN也可以解决 NLP 问题,要用 cov1d 来做, 我看很多代码都是 用 2d做的。 应该 con2d 等于 {kneral size, embedding} 谢谢

李老师在视频里解释了,时序序列就相当于一个一维向量,对于一维向量,自然要用1d的卷积啊。图片是二维的,所以用2d的卷积。这就是直观的理解。至于你说con2d 等于 {kneral size, embedding},我觉得也对,等于在时间序列的维度之外,你还考虑每个时间点上的embedding,等于又增加了一维。

2 Likes

我使用d2l.plot画图是时候,服务器回挂掉,有什么解决方法嘛?

问题解决了,加上os.environ[‘KMP_DUPLICATE_LIB_OK’]='True’就好了,虽然不是很明白原理

您好,请问这里 epoch=5 的设置有什么逻辑吗?我尝试过增加迭代次数,确实对提高预测性能没有太大帮助。但这一点是怎么提前看出来的呢?

在训练过程中应该是l.mean()而不是l.sum()这里有问题吧

我在conda里卸载重装了d2l这个环境后,好了

效果基本不变,只不过梯度更新步伐有差异,即便学习率相同。
在固定模型和学习率 η 的情况下,用 mean() 时,其梯度更新步伐大小为用 sum() 时的 1/batch_size 。

2 Likes

关于问题一(2),我的想法是,如果没有噪音只需要向前观察1个时间步就足够了。
经过修改tau,以及输入维度,在tau=1时候是可以取得很好的单步预测结果。
猜想是如果用泰勒展开一项,sin(t) = sin(t_1) + Δt * cos(t_1),那么只需要神经网络根据前一个时刻的输入sin(t_1)可以学习会cos(t_1)就可以预测出下一步的sin(t)的输出,t_1代表t的前一个时刻,delta t是时间间隔。

1 Like

最后一行加上 d2l.plt.show()

最近用colab使用d2l.plot出现问题


用了matplotlib==3.0也不行,求大佬指点

我觉得大概是老师试了一堆值之后发现epoch=5效果最好吧

这节的习题有点摸不清头脑,看了一下英文版,1.1的翻译感觉有点问题,感觉应该翻译为“试试将输入改为超过的4个观察值?您真正需要多少个?”

1 Like

想知道公式8.1.4中的Xt是不是作为一个划分?实现时是不是将所有X[t+1],X[t-1]之间的项统计出来才可以计算?

hxd真的帮大忙了,我看的也是一头雾水 :heart_eyes:

多谢抛砖引玉。但感觉还不够,就算在噪声情况下也可以写一个泰勒公式来,但此时为什么不是依赖前一个时间步即可?感觉还要对sin(t_1)项展开,此时若果涉及t_2项的结果远小于t_1项的结果时,才可以认定主要与前一个时间步相关。

简而言之,电影评分决不是固定不变的。
中的“决不”,感觉用“绝不”更准确些。参考: 小辨“决不”和“绝不” - 知乎 (zhihu.com)

for i in range(tau):
features[:, i] = x[i: T - tau + i]
强烈认为这里T - tau + i应改为T-tau-1+i.不然feature有997个样本而不是996个。/(ㄒoㄒ)/~~求回复!!!

试过改成T-tau-1+i代码会报错哦,因为切片操作x[i: T - tau + i]是从i取到T - tau + i的上一个位置,所以并不需要减1喔