不想讲Deep Learning论文,只想推荐代码(NLP方向)~

不想讲Deep Learning论文,只想推荐代码(NLP方向)~

已经在万能的知乎申请专栏半年了,然而并没有写过任何一篇,最大的原因就是不知道写什么。很多人在知乎专栏里写论文,其实我自己并不想这么做,第一个原因是看得懂你 “解读”论文的人,必然看得懂论文原版,而论文原版的水平往往会比第三者解读的水平高到不知道哪里去。第二个原因是受众太小,往往读者连你的任务都不知道,那更无法读这个paper了。例如:ACL有个outstanding paper我猜看得懂标题的都不到半数Improving Hypernymy Detection with an Integrated Path-based and Distributional Method Hypernymy的意思是上位词。。。

所以想了想,还是推荐开源代码吧,毕竟深度学习是个基于实验的科学,code是一切的基础,无论是做研究还是做项目。由于我自己用theano,所以我先推荐自然语言处理的theano经典实现吧。如果你热爱keras,这种theano的wrapper我建议也学习一下theano,毕竟theano更为底层更为灵活。


Warm up

新手请阅读,老手可跳过。Theano 教学: GitHub - lisa-lab/DeepLearningTutorials: Deep Learning Tutorial notes and code. See the wiki for more info. 如果你还是小白,想入门,请认真阅读并重新实现这个tutorial,做完你就入门了。如果你连numpy之前都没有用过= =,比如当初的我从C#转Python,我会先熟悉numpy,GitHub - rougier/numpy-100: 100 numpy exercises (100% complete) 去做题吧,100个numpy练习题,包你2小时熟悉numpy操作。

基础级theano代码

第一个库(文本分类)

GitHub - yoonkim/CNN_sentence: CNNs for sentence classification 比较有名的CNN用于文本分类的实现,虽然是篇EMNLP short但已经cite次数过了300,学术上一般都是基于他改改,吹下牛逼,说自己可以更好地学习sentence representation。我记得他的实现在一个CNN中有不同宽度的卷积和池化,单论CNN这已经是个毕竟完善的模型了。


第二个库(问答)

Microsoft Research WikiQA Code Package QA的基本NN模型,实现的是CNN的。基本上输入输出改了就可以应用到所有相似度的任务上了。

第三个库(生成)

GitHub - nyu-dl/dl4mt-tutorial 与其说这个代码实现了神经网络机器翻译 NMT,不如说这篇文章实现了Seq2Seq这个结构,所有生成的任务,稍微把这个代码改改就能用。这个代码算是NMT的标准开源实现了,现在的EMNLP和ACL这些自然语言处理顶会的很多机器翻译论文都是改了改这个代码实现的。代码分四个session,第一个是RNN(GRU) Language Model,可以训练网上吹的神乎其神的 自动写诗 自动写作文 等酷炫吊炸天任务。。。然而,你要是真训练过,你会发现,吹还是朋友圈中的文章能吹,理想很丰满,现实很骨感。

近期代码,较为fancy模型

GitHub - YerevaNN/Dynamic-memory-networks-in-Theano: Implementation of Dynamic memory networks by Kumar et al. http://arxiv.org/abs/1506.07285 这是个dynamic memory network的代码,文章我记得是今年ICML的,memory network在学术界估计会火一阵子~

GitHub - lipiji/variational-autoencoder-theano: Variational Autoencoders (VAEs) in Theano for Images and Text Variational Autoencoders 这个估计会在文本生成的任务有些作用

最后一个 GitHub - coreylynch/grid-lstm: Torch7 implementation of Grid LSTM as described here: http://arxiv.org/pdf/1507.01526v2.pdf 虽然是个torch代码,但我觉得grid lstm也是一个promising的模型。

还有很多实现的比较好的github库,但是往往针对任务的,我觉得把上面的弄懂了,也就可能说自己熟悉深度学习了。

最后,说一句,阅读楼主专栏,20小时熟悉深度学习不是梦 = =

编辑于 2016-08-24

文章被以下专栏收录