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