Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
B3ゼミ 自然言語処理におけるCNN
Search
Ayumu
March 21, 2019
Technology
0
110
B3ゼミ 自然言語処理におけるCNN
2019/03/21
長岡技術科学大学 自然言語処理研究室
学部4年 守谷 歩
Ayumu
March 21, 2019
Tweet
Share
More Decks by Ayumu
See All by Ayumu
B3ゼミ_03_28_マルチモーダル学習_.pdf
ayumum
0
170
マルチモーダル学習
ayumum
0
170
言語処理年次大会報告
ayumum
0
110
ニューラルネット4
ayumum
0
120
文献紹介「二値符号予測と誤り訂正を用いたニューラル翻訳モデル」
ayumum
0
180
ニューラルネット3 誤差伝搬法,CNN,word2vec
ayumum
0
180
ニューラルネット実践
ayumum
0
130
文献紹介[Zero-Shot Dialog Generation with Cross-Domain Latent Action]
ayumum
0
200
パーセプトロンとニューラルネット1
ayumum
0
110
Other Decks in Technology
See All in Technology
Kotlinで型安全にバイテンポラルデータを扱いたい! ReladomoラッパーをAIと実装してみた話
itohiro73
2
100
Okta Identity Governanceで実現する最小権限の原則
demaecan
0
210
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
2
160
GPUをつかってベクトル検索を扱う手法のお話し~NVIDIA cuVSとCAGRA~
fshuhe
0
280
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
14
82k
オブザーバビリティと育てた ID管理・認証認可基盤の歩み / The Journey of an ID Management, Authentication, and Authorization Platform Nurtured with Observability
kaminashi
2
1.3k
【SORACOM UG Explorer 2025】さらなる10年へ ~ SORACOM MVC 発表
soracom
PRO
0
180
OTEPsで知るOpenTelemetryの未来 / Observability Conference Tokyo 2025
arthur1
0
330
頭部ふわふわ浄酔器
uyupun
0
240
Raycast AI APIを使ってちょっと便利なAI拡張機能を作ってみた
kawamataryo
0
210
Dify on AWS 環境構築手順
yosse95ai
0
170
AIでデータ活用を加速させる取り組み / Leveraging AI to accelerate data utilization
okiyuki99
6
1.4k
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1032
470k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Navigating Team Friction
lara
190
15k
YesSQL, Process and Tooling at Scale
rocio
173
15k
Designing for Performance
lara
610
69k
Designing for humans not robots
tammielis
254
26k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
630
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Leading Effective Engineering Teams in the AI Era
addyosmani
7
670
Transcript
自然言語処理における CNN 2019/03/21 長岡技術科学大学 自然言語処理研究室 学部4年 守谷 歩 単語埋め込み表現(Word embedding),CNN,QRNN
単語共起行列 ⚫I like apple ⚫He like banana ⚫He like fruit
I Like Apple He Banana Fruit I 0 1 0 0 0 0 Like 1 0 1 2 1 1 Apple 0 1 0 0 0 0 He 0 2 0 0 0 0 Banana 0 1 0 0 0 0 Fruit 0 1 0 0 0 0
SVD 特異値分解 ⚫任意のM*Nの行列Cに対して以下のような分解を行う = Σ ⚫左特異行列UはM*Mの正方行列で各列はと直行する固有ベ クトル ⚫右特異行列VはN*Nの正方行列で各列はと直行する固有ベク トル ⚫ΣはN*M行列で対角行列成分が特異値によって表現(それ以外は
0) ⚫特異値はの固有値の平方根で求まる
Word2Vec Skip-Gram ⚫単語の前後に大きさCのウィンドウをといったものを考える。ウィン ドウ内単語に対して出現確率を考え、総和を目的関数にし、最尤推 定する。 ⚫直観的なイメージとしては “Do Androids Dream of
Electric Sheep?” のDreamの単語に注目したとき、ウインドウサイズC=2として考える ときDreamの周辺2単語がNNの出力される確率が高くなるように学 習を行う。 ⚫上の注目する単語をすべての単語に対して行うと1単語に対する 次の単語の生成確率と単語数の行列を作ることができる。
Glove ⚫Word2VecとSVDの利点を取ったもの ⚫単語の共起カウントを行列 とする ⚫以下の式を最小二乗法にて単語ベクトルを求めるための損失関数として定義する。 = ,=1 , ~
+ + ~ − log 2 ⚫この時関数fは重みをつけるための関数で以下のように定義される = ൞ < 1 ℎ
CNN ⚫入力が文書の場合、各行を単語を表現するベクトルで考える。例として、 200次元の単語埋め込みを行った10単語の文書があった場合、10*200 の行列として扱うことができる。 ⚫NLPタスクでは一般的に行列の行全体をスライドするフィルタを使う。 ⚫CNNではハイパーパラメータとして畳み込み幅のサイズ、ストライド数、 プーリング層の数、チャンネルといった点でCNNはハイパーパラメータを 取りうる。 ⚫分類問題を解くCNNを実装すると考えると畳み込みや、プーリングの操 作を適用すると単語の局所的な位置情報は失われる
QRNN Quasi Recurrent neural network ⚫RNNを並列処理しようとすると、RNNが前回の隠れ層からの入力を重み をかけて受け取るため、順番に処理する必要がある。 ⚫QRNNではCNNを連続的なデータに対して適用する。また、重みを使わ ずに伝搬させるため隠れ層の中の各要素を他要素からの影響から独立 した状態で留める。
⚫LSTMでいうinput,forget,outputといったものをZ,F,Oといった関数を用い て計算する。 = tanh ∗ = ∗ = ( ∗ )
QRNN Quasi Recurrent neural network ⚫また畳み込み処理ではプーリングをよく使うが、これは4領域あった場合にそ の最大値や平均値をとるといった手法であった。ここにFの割合で過去の情報h と合成したものをプーリングする。F-poolingといった手法として以下の手法が挙 げられている。 ℎ
= ⨀ℎ−1 + 1 − ⨀ ⚫ほかにも、コンテキストcを経由するfo-poolingとして以下の変形も提案されて いる。 ct = ⨀−1 + 1 − ⨀ ℎ = ⨀ ⚫また、インプットを書き込む割合を考える変形としてifo-poolingが提案されてい る。 = ⨀−1 + ⨀ ℎ = ⨀
参考文献 ⚫QUASI-RECURRENT NEURAL NETWORKS https://arxiv.org/pdf/1611.01576v1.pdf ⚫自然言語処理における畳み込みニューラルネットワークを理解する http://tkengo.github.io/blog/2016/03/11/understanding-convolutional-neural- networks-for-nlp/ ⚫畳み込みニューラルネットワークによるテキスト分類を TensorFlow
で実装する http://tkengo.github.io/blog/2016/03/14/text-classification-by-cnn/ ⚫A Sensitivity Analysis of (and Practitioners’ Guide to) ConvolutionalNeural Networks for Sentence Classification https://arxiv.org/pdf/1510.03820.pdf ⚫高速かつ高性能な分散表現Gloveについて(PyTorch実装) https://qiita.com/GushiSnow/items/e92ac2fea4f8448491ba ⚫いますぐ使える単語埋め込みベクトルのリスト https://qiita.com/Hironsan/items/8f7d35f0a36e0f99752c