LSTM添加多线程工作记录

简介

现在手头的代码没有支持多线程,现在需要添加多线程。以及后期转向GPU。

相关问题记录

编译的时候undefined问题

因为代码使用的cmake编译,与我之前接触的书写makefile略有不同。加之我对C++的编译不太熟悉,在这边耽误了挺长时间。

AAAI2016-work

AAAI2016工作记录

Giga数据处理

1.利用脚本“convertCONLL2sentence.py”将CONLL格式的Giga数据重新处理成:

  • 一个句子一行的格式
  • 丢弃字的长度大于60的句子

RNN学习

RNN学习记录

因为RNN比较适合序列标注的问题,所以在以前我已经将普通的NN应用到词性标注的问题上,最近一段时间打算应用一下RNN,看看效果如何。ANN的最好的效果是93.19%,比线性模型好了一点点,希望应用RNN会得到更好的结果。

Forward Pass过程分析

neural-network-for-POS.md

使用神经网络进行词性标注的相关调参数据记录

概述

因为针对所有的数据所编写的神经网络已经完成,目前的工作就是对相关的超参进行调参,以求达到一个比较好的正确率,现在将相关的调试记录下来,以便以后使用。
为了有比较,我们分别使用了linear model, global linear model, CRF进行了测试,所得的结果如下:
linear model:93.17%/9
global linear model:94.18%/18
CRF: 93.5819%/13

对oov-ratio调参

oov-ratio的使用如下:

1
np.random.binomial(1, p) == 1:

如果当p == 0的时候,这个条件永远为False;当p == 1的时候,这个条件永远为真,所有的词频为1的word就会使用oov embedding。

network2总结

使用神经网络进行词性标注

在有了第一个版本的network的基础上,我们将output层修改为softmax,改掉原来使用的sigmoid。代码修改完之后却发现运行的时候报出overflow的错误,在纠结了许久之后,在导师的帮助下,发现了程序的两个bug:一个是softmax的激活函数,分子上的e次方忘记了加;另外一个就是在feedforward的过程中,把hidden layer的activation直接输出到softmax()中,没有使用z = w * a + b。代码的错误还是很无语的,总结:千万不要在头脑昏昏的时候敲代码,越敲越乱。下面对使用了softmax作为output layer的神经网络做一个准确率的总结。