CS224n「Lecture2 Word Vector Representations: word2vec」
Lecture 2 | Word Vector Representations: word2vec
Word meaning
離散表現の問題
- 細かいニュアンスが消えてしまう
- 人手で作らないといけない
- 単語種長のone-hot vectorが必要になる
- 近い意味の単語が全く異なる語として扱われる
分散表現
- ある単語に近い単語はその単語の意味を表現する
- 単語の意味が固定長のみつベクトルで表現される
- 意味の近い単語は類似度が高くなるように学習されている
word2vecとは
単語tからのprediction
- 全ての単語t=1,…,Tに対して、距離mにあるた単語の確率が最大化されるように学習を行う
objective functionとは
- objective function = loss function = cost function
詳細
- 確率のモデリングにはSoftmax関数を用いる
- Softmaxは実数を0~1の値(確率)にマップできる
参考文献
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が修正されている。
テンプレートを見る
真似して書く
- ちゃんと生成できるかチェックする
- プルリクエスト作成