Wednesday, November 22, 2017

deep learning methods and text mining related concepts for Alibaba interview 2

word2vec & GloVe



递归神经网络(Re- cursive Neural Network)的相关工作。该方法被证实在构建句子级语义时较为有 效。然而,递归神经网络需要按照一个树形结构来构建句子的语义,其性能依 赖于构建文本树的精度。而且,构建这棵树需要至少 O(n2) 的时间复杂度,其 中 n 表示句子的长度。当模型在处理长句子或者文档时,所花费的时间往往是 不可接受的。更进一步地,在做文档表示时,两个句子之间的关系不一定能构 成树形结构。因此递归神经网络可能不适合构建长句子或者文档的语义。 


循环神经网络(Recurrent Neural Network)可以在 O(n) 时间内构建文本的 语义 [26]。该模型逐词处理整个文档,并把所有上文的语义保存到一个固定大 小的隐藏层中。循环神经网络的优势在于它可以更好地捕捉上下文信息,对长 距离的上下文信息进行建模。然而,循环神经网络是一个有偏的模型,如对于 正向的循环神经网络而言,文本中靠后的词相对靠前的词占据了更主导的地位。 由于这一语义偏置的特性,循环神经网络在构建整个文本的语义时,会更多地 包含文本后面部分的信息。但是实际上并非所有文本的重点都放在最后,这可 能会影响其生成的语义表示的精确度。
为了解决语义偏置的问题,有人提出用卷积神经网络(Convolutional Neural Network)来构建文本语义 [18]。卷积神经网络利用最大池化技术能从文本中找 出最有用的文本片段,其复杂度也是 O(n)。因此卷积神经网络在构建文本语义 时有更大的潜力。然而,现有卷积神经网络的模型总是使用比较简单的卷积核, 如固定窗口 [18, 46]。在使用这类模型时,如何确定窗口大小是一个关键问题。 当窗口太小时,可能导致上下文信息保留不足,难以对词进行精确刻画;而当 窗口太大时,会导致参数过多,增加模型优化难度。因此,需要考虑,如何构 建模型,才能更好地捕获上下文信息,减少选择窗口大小带来的困难。并以此 为基础来更好地完成文本分类的任务。 












Wednesday, November 15, 2017

deep learning methods and text mining related concepts for Alibaba interview

CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构区别

https://www.zhihu.com/question/34681168
http://www.cnblogs.com/pinard/p/6418668.html
http://blog.csdn.net/Real_Myth/article/details/53780314
https://www.jiqizhixin.com/articles/2017-03-30-4
http://www.jianshu.com/p/9dc9f41f0b29
https://www.jiqizhixin.com/articles/2017-11-04-3

反向传播:
https://zhuanlan.zhihu.com/p/24801814
http://blog.csdn.net/pennyliang/article/details/6695355
https://www.zhihu.com/question/27239198/answer/154510111
https://zhuanlan.zhihu.com/p/25081671

max pooling:
https://www.zhihu.com/question/23437871
http://blog.csdn.net/jiejinquanil/article/details/50042791
http://blog.csdn.net/pangjiuzala/article/details/71840947

LSTM:
https://www.zhihu.com/question/41949741
http://blog.csdn.net/jerr__y/article/details/58598296

machine translation:
https://zhuanlan.zhihu.com/p/25366912

Wednesday, November 8, 2017

install tensorflow in Saturn (ILS server)

Saturn 的server是Red Hat 的,所以参考https://jiafulow.github.io/blog/2018/07/10/install-tensorflow-with-gpu-on-redhat/ 来安装Tensorflow-GPU.

For Ubuntu server,
为了run python 3.6 + tensorflow GPU version in ILS saturn server, 具体步骤:
一 准备工作:
1. 安装anaconda 3。在.bashrc 里面加入
PATH=/home/gao27/anaconda/bin:$PATH
2. 确定你的Python version 3.6

二 安装cuda 和 cudnn
1. 因为我们没有权限在cuda里面直接安装,所以我们首先通过which nvcc 找到cuda 包的所在地,然后把cuda整个包都拷贝到一个我们有权限操作的地方。 cuda版本需要8.0
2. 下载cudnn 5.1 版本,解压后会有两个文件夹lib64 和 include。 把里面的文件对应加到cuda对应的lib64 和 include里面 (不同版本的tensorflow 对应不同的cudnn. tensorflow 1.4 对应6.0. )
3. 在.bashrc 里面加入如下路径
#cuda settings
export PATH=$HOME/cuda/bin:$PATH
export CPATH=$HOME/cuda/include:$CPATH
export LIBRARY_PATH=$HOME/cuda/lib64:$LIBRARY_PATH
export LD_LIBRARY_PATH=/$HOME/cuda/lib64:$LD_LIBRARY_PATH


最后要source ~/.bashrc
三 安装tensorflow GPU 版本通过Anaconda
如图:
网址如下:https://www.tensorflow.org/versions/r1.2/install/install_linux#python_36

然后activate tensorflow之后检验是否安装成功:
# Python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))


https://blog.csdn.net/u014797226/article/details/80229887
https://blog.ailemon.me/2017/06/06/install-tensorflow-gpu-on-ubuntu-linux/
https://blog.csdn.net/u014797226/article/details/80229887