RNN模型与NLP应用(3/9):Simple RNN模型

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ธ.ค. 2024

ความคิดเห็น • 52

  • @陈宇迪-i8z
    @陈宇迪-i8z 3 ปีที่แล้ว +4

    过于优秀了!心安理得逃课看王老师的视频

  • @matthewlee2405
    @matthewlee2405 4 ปีที่แล้ว +2

    感谢Shusen讲解,豁然开朗

  • @hanwang2574
    @hanwang2574 2 ปีที่แล้ว

    真的感叹,咋讲的这么清晰!

  • @PatrickCat99
    @PatrickCat99 ปีที่แล้ว

    老师讲的太好了

  • @anibue_mango
    @anibue_mango 7 หลายเดือนก่อน

    讲的很好,给老师点赞

  • @封筱
    @封筱 3 ปีที่แล้ว

    王老师的视频对我这种小白来说真的讲的非常透彻,期待王老师更多的教程

  • @matthewlee2405
    @matthewlee2405 4 ปีที่แล้ว +1

    讲的非常清晰!

  • @iyoungman3443
    @iyoungman3443 3 ปีที่แล้ว +1

    感谢王老师,课程清晰易懂!

  • @wangrichard2140
    @wangrichard2140 4 ปีที่แล้ว +2

    非常清晰!!

  • @leejack5209
    @leejack5209 2 ปีที่แล้ว

    讲的真好啊,谢谢老师。

  • @davidliu5075
    @davidliu5075 3 ปีที่แล้ว

    讲的太好了!很清晰!感谢!

  • @zhili7566
    @zhili7566 3 ปีที่แล้ว

    反复学习中!超赞!!!

  • @Liaocyintl
    @Liaocyintl 4 ปีที่แล้ว +1

    讲的特别好!

  • @jacquepang
    @jacquepang ปีที่แล้ว

    0:22 from nlp perspective, RNN is not comarapble to transformer model, should the training dataset is large enough, however RNN is useful for small dataset.
    00:33 limitations :
    a. FC nets and conv nests are 1-to-1 model ( where you process a parapgra as a whole and output is one )
    b. on contrarry to human behavior where accumulate the text but not aggregated paragraph as a whole
    c. fixed-size output
    2:31 RNN introduction
    x_t word embedding
    A parameter of RNN
    (NOTE! shape of A = shape(h) * (shape(h)+shape(x)) + shape(bias) , there is ONLY ONE such parameter matrix A, NO MATTER HOW long the sequence is.)
    h_t state of all previous words
    4:56 simple RNN
    tanh : used for normalization to enforce A elements in (0,1)
    7:22 simple RNN parameter dimensions
    for h_t = tanh(A* (h_{t-1}+x_t)^T ) , rows of A = shape of h , cols of A = shapes of (h) + shapes of (x)
    8:08 structure of RNN for case study
    word embedding : map a word to a embedding vector(x)
    A : input is the word embeeding, output is status h_i
    10:00 explain RNN parameter(keras)
    embedding_dum=32 shape of word vector (x) = 32
    word_num = 500 means we cut off at most 500 words in each movie review.
    state_dim =32 means the shape of status h = 32
    return _sequenes=False means RNN only output the very last status h_t and disregard all previous status from h_0 to h_{t-1}
    12:01 how to calculate rnn parameter
    2080 = 32*(32+32) + 32 = shape(h) * (shape(h)+shape(x)) + shape(bias)
    13:48 to return all previous status, the returned output is a vector h vec([h_1, ... h_t]) , then flattern to sigmoid with this vector h to get final output.
    16:17 simple RNN disadvanatage : good at short-term dependence, BAD at long-term dependence: "h_100" is almost irrelevant to x1 \frac{\partial h_{100}}{\partial x_{1}} is near zero, this means change x1 almost will NOT change h_100. (LSTM is longer than simple RNN thought LSTM still has its own issue.)

  • @xinliu4785
    @xinliu4785 2 ปีที่แล้ว

    讲得太好了!

  • @forrestgan
    @forrestgan 4 ปีที่แล้ว

    感谢王老师!超级清楚!

  • @darrengreen2449
    @darrengreen2449 3 ปีที่แล้ว

    讲的太好了,太清楚了,妈妈再也不用担心我的学习成绩了

  • @gaokaizhang
    @gaokaizhang ปีที่แล้ว

    讲的可太好了

  • @skyfaded9807
    @skyfaded9807 ปีที่แล้ว

    我认为使用激活函数的目的是,能让RNN学习到非线性的关系,没有激活函数的话,实际上只是矩阵乘法,也就是线性变换

  • @ximoyan
    @ximoyan 4 ปีที่แล้ว +3

    可以提供pytorch代碼嗎?

  • @DED_Search
    @DED_Search 3 ปีที่แล้ว

    6:17 这里有些糊涂。我理解例子里 当A的值大于1的时候 A100会非常大 做 back propagation 的时候会梯度爆炸 反之小于1的话会梯度消失 所以要对 h 用一下激活函数tahn?但是我感觉这个只对梯度爆炸有作用,因为tanh也没办法对0附近的值起到什么作用。。。
    第二个问题 我发现做rnn的时候 loss降低的过程会规律的产生cliff 跟这个例子相关么?

    • @yangkewen
      @yangkewen 2 ปีที่แล้ว

      这里王老师是说hidden state在很多time step之后的数值会爆炸或者接近0吧,而不是gradient,tanh函数应该还是有gradient vanishing问题的

  • @理塘第一突破手
    @理塘第一突破手 10 หลายเดือนก่อน

    膜拜大神!!!

  • @zhiweisong4617
    @zhiweisong4617 3 ปีที่แล้ว +1

    王老师您好,看完DRL,我又来看RNN啦。这里有几个问题。1. 激活函数为什么用tanh,而不用sigmoid,reLu。reLu不是不容易造成梯度消失嘛? 2. word embedding中那320000个参数是在用RNN之前train好的还是和RNN中的A一起train。3. 为什么RNN中的梯度 \partial h_100 / \partial x = 0? 再次感谢老师清楚易懂的视频。

    • @ShusenWang
      @ShusenWang  3 ปีที่แล้ว

      1. relu会梯度爆炸,sigmoid跟tanh几乎一样。2. 都可以,取决于数据够不够多。3. 这个不太好解释

    • @維仁陳-c2k
      @維仁陳-c2k 3 ปีที่แล้ว +1

      3.這需要用back propagation through time解釋,裡面牽涉到符號定義,所以文字不太容易說明,底下附個連結給你參考:
      th-cam.com/video/UTojaCzMoOs/w-d-xo.html
      要注意的是,在這裡王老師用matrix A代表RNN的weight matrix,在我們學校老師的影片裡,矩陣A被拆解成U和W。
      這邊附上我們老師的講義和代碼供參考:
      nthu-datalab.github.io/ml/index.html

  • @thomaswoh01
    @thomaswoh01 4 ปีที่แล้ว +5

    您好老师,不知道您能够讲述关于特征值和奇异值吗?看了很多文章还是没有完全理解在机器学习里的用途。

    • @binwangcu
      @binwangcu 2 หลายเดือนก่อน

      诚心同问,大一上学期第一节课就是线性代数,至今还记得老师要算特征值和奇异值,非常狭义的认为就是为了解方程,现在才知道那些基础概念有这么多应用,PCA, LORA for LLM,感觉当时老师要是能把知识和现实应用衔接上,课程会更有趣。

  • @leenoddles3038
    @leenoddles3038 3 ปีที่แล้ว

    3分钟开始的rnn 结构展示,h0,h1,h2,...,ht 不需要用→连接嘛?A是rnn的参数,所有时科都不变,为什么用→连接呢?期待老师的回复

  • @phillwang1573
    @phillwang1573 3 ปีที่แล้ว +1

    这节课的word_num为什么是500啊,上节课的LR如果设置word_num=500,测试集准确率有89%,比这个还好

  • @xinyuanwang3805
    @xinyuanwang3805 3 ปีที่แล้ว

    支持支持!!!!!!!!!

  • @zizhunguo586
    @zizhunguo586 ปีที่แล้ว

    为什么通过Cross Validation可以筛选出最佳的隐向量维度呢?我理解CV是通过选用不同的样本作为训练集和测试集来评估模型性能和过拟合情况,所以为什么呢?

  • @jambozhang7167
    @jambozhang7167 3 ปีที่แล้ว

    讲的太清楚了

  • @AJ-cb2bz
    @AJ-cb2bz ปีที่แล้ว

    准确率是和什么比较呢?是不是数据集外,还存在一个人工标签的好坏评价集?

  • @xiangwang4462
    @xiangwang4462 4 ปีที่แล้ว

    谢谢老师!

  • @leejack5209
    @leejack5209 2 ปีที่แล้ว

    老师请问,y是0或者1吗还是,没有看到怎么标注y的。对应的pos和neg

  • @carpemer
    @carpemer 2 ปีที่แล้ว

    是因为那个tan造成了梯度被逼近到0附近么?

  • @yuefang1030
    @yuefang1030 4 ปีที่แล้ว +1

    王老师,你说的根据cross validation找到合适的维度值如何理解,我没太搞明白,多谢

    • @ShusenWang
      @ShusenWang  4 ปีที่แล้ว +2

      RNN做分类会错误率。选择超参数(包括x和h的维度),让错误率最低。

  • @zhiweisong4617
    @zhiweisong4617 3 ปีที่แล้ว

    王老师您好。one - to - one model 是输入和输出长度都是固定的。RNN可以用来做many- to -one,但在这个视频中RNN的输入长度仍是固定的,所以我想问的是 这里用的训练样本(movie review analysis)可不可以是没有经过align sequences的,即输入长度不固定(就有电影评论的本身长度),输出固定为1(好评或者差评)。期待老师的回复,谢谢您。

    • @ShusenWang
      @ShusenWang  3 ปีที่แล้ว +1

      训练的时候要align,长度一样。inference的时候长度可以任意。

  • @yubai9932
    @yubai9932 4 ปีที่แล้ว

    这个虽然 λ_max(A)^100 很大或者很小,但是 h(0) 也是 0,循环次数增多中间值也都是 0 啊,这个反例举的有点绕

    • @ShusenWang
      @ShusenWang  4 ปีที่แล้ว

      h0未必是零呀。如果是 seq2seq 模型的decoder,h0就不是 0。

  • @yuanyao1774
    @yuanyao1774 4 ปีที่แล้ว

    老师,在讲解为什么用tanh的时候,我理解的原因是tanh起到了normilization的作用,所以采用它,那么用sigmod也可以起到normlization的作用,为什么不用sigmod呢?

    • @yangkewen
      @yangkewen 2 ปีที่แล้ว +1

      这个其实也是可以,但是sigmoid(准确地说是logistic)的输出是range(0,1),不是0-centered,这就有一个zigzag输出问题,你可以网上搜一下

  • @yuanwei3464
    @yuanwei3464 3 ปีที่แล้ว

    王老师,您好,我有个问题是关于PPT第6页的Simple RNN,其中matrix A是怎么构成的呢?就是紫色和蓝色部分分别代表什么含义呢?

    • @武伯玉
      @武伯玉 ปีที่แล้ว

      matrix A其实是需要学习的,只不过矩阵大小和h和x有关系;紫色和蓝色只是强调分别作用于h和x的关系。

  • @wujiefu4992
    @wujiefu4992 2 ปีที่แล้ว

    感谢王老师,我有一个问题,请问对于第一个词向量 x0 如何计算出 h0(因为貌似还没有做 concatenation)

    • @jiangwuheng
      @jiangwuheng ปีที่แล้ว

      请看4分01秒。

  • @frankrobert9199
    @frankrobert9199 2 ปีที่แล้ว

    👍

  • @callforpapers_
    @callforpapers_ 4 ปีที่แล้ว

    The best fucking tutorial I ever watched

  • @henrylee19840301
    @henrylee19840301 2 ปีที่แล้ว

    这么好的教程竟然没有地方可以打赏?差评!