CS224n「Lecture1 Intro to NLP and Deep Learning」
Lecture 1 | Natural Language Processing with Deep Learning
- CS224nのvideoが公開されたのでこちらにする。
自然言語処理とは?
自然言語のレベル
- 音声 → 音素
- 文書 → token化
- 構文解析 → 意味解析
自然言語の特徴
DL
DLと他の機械学習の違い
- 自動で適切な特徴量を取得する
なぜDLをつかうの?
- 特徴量を設計しなくて良い
- ユニバーサル
- 現在進行系で改善されている
なぜ成功したの?
なぜNLPは難しいの?
- 複雑
- プログラミングと違ってあいまい
- コンテキストによって意味が異なる
Deep NLP
- Deep LearningとNLPをくみあわせたもの
- 以下で大きな成果を出した
- レベル:speech, words, syntax, semantics
- ツール:speech, entities, parsing
- アプリ:機械翻訳、意味解析、会話エージェント、QAシステム
リンク
CS224n「Lecture1 Intro to NLP and Deep Learning」
CS224D Lecture 1 - 29th Mar 2016 - Introduction.mp4
Deep Learningを研究する理由
DLが効果を発揮した分野
Phonology・Morphology・Word・Syntax・Semantics
- Phonology:ある言語の音の体系およびその音素の分析と分類の研究
- Morphology:形態。容認可能な単語を形成するための規則の研究。
- word
- syntax
- semantics
- DLは上記すべてvectorとして表現する。
- その他にも
- Sentiment Analysis
- Question Answering
- Machine Translation
リンク
Chainerで「CS224d: Deep Learning for Natural Language Processing」
勉強の仕方
- Amazon Fire TV Stick
- Youtube
- 上記を使うと、字幕付きでお家のテレビで見られるの完全に近未来
リンク
- material
- video
- 講義まとめ:自然言語処理のための深層学習(CS224d) - Qiita
Chainerで「Python機械学習プログラミング」の例題を解く~感情分析~
目的
Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)
- 作者: Sebastian Raschka,株式会社クイープ,福島真太朗
- 出版社/メーカー: インプレス
- 発売日: 2016/06/30
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る
- 上記の本の解説部分(1章~6章)は読み終わったので実際に例題を解いてみたい。
- どうせなら流行りのDeep LearningライブラリChainerを使って解いてみたい。
Chainerにコントリビュート ~Documentation編~
Chainerにコントリビュートしよう
- 以下がDocumentationに関するIssue。
- その中でも関数の説明に関するIssueがこれ。
作業手順
手順の確認
[WIP] Improve docs of functions and links · Issue #2182 · pfnet/chainer · GitHubに手順が書いてるので確認
gitレポジトリの準備
- 自分のスペースにchainerをforkする(pfnet/chainerのmasterと自分のmasterが追従するようにはここ )
- documentation用のbranchを作成する(ex. improve-docs-examples)
softmax関数にDocumentationを追加してみよう
- 様子を見る
- chainer/softmax.py at master · pfnet/chainer · GitHub
- 関数にはdocは付いているが、クラスにはついていない。
- 既にDocumentation済みの関数を見てみる
- 同様に、関数にはdocは付いているが、クラスにはついていない。
- ただ、よりtemplateに近い形になるように関数のdocが修正されている。
テンプレートを見る
真似して書く
- ちゃんと生成できるかチェックする
- プルリクエスト作成
Chainer導入
前提
Python
- Python 2.7.6+, 3.4.3+, 3.5.1+, 3.6.0+が入っている
- NumPy 1.9, 1.10, 1.11, 1.12が使える
- six 1.9が使える
- cythonが入っている
- virtualenvが使える
CUDA
- CUDA 8.0のインストールが済んでいる
- g++ 4.8.4+が入っている
Install
- 基本はここ
手順
- 適当な場所で
git clone git@github.com:pfnet/chainer.git
- virtualenvの環境作成
~/dev/chainer$ virtualenv venv --python=/usr/bin/python3.4 ~/dev/chainer$ source activate venv/bin/activate
- cuDNN用の環境マネージメントツールcudnnenvでcuDNNを入れる
$ pip install cudnnenv $ cudnnenv install v5-cuda8 $ cudnnenv activate v5-cuda8 $ cudnnenv version v5-cuda8
- 必要な環境変数を設定する
$ tail -n 11 ~/.bashrc #path for cuDNN export LD_LIBRARY_PATH=~/.cudnn/active/cuda/lib64:$LD_LIBRARY_PATH export CPATH=~/.cudnn/active/cuda/include:$CPATH export LIBRARY_PATH=~/.cudnn/active/cuda/lib64:$LIBRARY_PATH # path for chainer export PATH=/usr/local/cuda-8.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH export CFLAGS=-I~/.cudnn/active/cuda/include export LDFLAGS=-L~/.cudnn/active/cuda/lib64 export LD_LIBRARY_PATH=~/.cudnn/active/cuda/lib64:$LD_LIBRARY_PATH
- 開発者ようにchainerをビルドする
~/dev/chainer$ python setup.py develop ... ... Finished processing dependencies for chainer==1.21.0