CS224N-Lecture5-notes

CS224N Assignment 3 Neural Dependency Parser

需要理清楚的细节问题

网络结构

  1. 输入数据的形式
    • 原始输入数据分为3个部分:Word,POS,Label(单词,词性标签,弧的类型)。处理后的输入数据$[x^w, x^t, x^l]$
    • 其中word是按照一定的规则从数据中抽取的特征,包含18个词(stack,buffer栈顶6个 + stack栈顶2个单词的最左2个,最右2个 + stack栈顶两个元素的最左,最右的最左最右单词,共计4个)
    • 3个特征都需要Embedding
  2. Embedding是从已经训练好的文件中加载的还是训练过程中同步训练出来的?
    • 使用的是预训练好的Embedding矩阵,位置./data/en_cw.txt
  3. 各层模型对数据类型的具体要求
    • 存疑
  4. mini_batch的问题,怎样划分mini_batch,每个batch的数据是同时输入做训练还是batch内部有区别
    • 针对本作业:minibatch的划分是为了按照批次处理数据,由于句子的长度不同,需要处理的步数不同,因此每个批次的数据不是按照固定的步骤数生成,而是每批次数据都需要等到该批次数据全部解析完。
    • 其他:这里用到的参数是batch_size, 那么数据一共能分成dataset_size / batch_szie向下取整个batch
  5. loss值的计算,这里用的是softmax,Pytorch中不同的损失值的计算的输入,输出,对数据类型的要求是什么,形状是什么
    • 这里的输出对应transition的3种类型,是一个1*3的向量,每个元素对应该类别的概率。因此最终采用交叉熵计算loss值。
  6. UAS的计算方式。神经网络预测出的结果,最终是通过什么方式评估,量化并得到最终的评分的,标注好的数据集是什么形式
    • Unlabeled attachment score (UAS) = head
    • 也就是说UAS只需要关注弧的指向是否正确,而不关注弧的标签是否正确。因此,与之对应的:LAS(Labeled attachment score)两者都关注
  7. tqdm进度条的使用方法
  8. dropout的概率参数是指的保留的神经元数目还是指的丢弃的神经元数目。
    • dropout:训练的时候使用,随机把隐含层的单元设为0(每个批次drop不同的单元),然后将隐含层和一个常数$r$相乘得到$h_{drop}$。这个常数使得$h_{drop}$的期望和$h$的期望相同
    • dropout层的目的是防止过拟合
  9. dropout层是一个单独的层还是仅仅是作用于隐含层上的一个函数
    • 是一个单独的层,只用于训练的时候,为了防止过拟合。(因此一般加在全连接层后面)
    • drop prop的意义是隐含层的单元有drop prop的概率会被”drop“
  10. Adam算法的思路回顾

收获

  1. 对CS224N的第5课有了更深入的理解
  2. 实际使用PyTorch搭建了神经网络,对这个问题有所了解了
  3. 更深地理解了从原始数据->特征抽取->嵌入->训练->验证这个过程
  4. 理解了每次课讲的评估这个部分
分享到