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
95
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
160
マルチモーダル学習
ayumum
0
140
言語処理年次大会報告
ayumum
0
94
ニューラルネット4
ayumum
0
110
文献紹介「二値符号予測と誤り訂正を用いたニューラル翻訳モデル」
ayumum
0
150
ニューラルネット3 誤差伝搬法,CNN,word2vec
ayumum
0
170
ニューラルネット実践
ayumum
0
110
文献紹介[Zero-Shot Dialog Generation with Cross-Domain Latent Action]
ayumum
0
180
パーセプトロンとニューラルネット1
ayumum
0
110
Other Decks in Technology
See All in Technology
アセスメントで紐解く、10Xのデータマネジメントの軌跡
10xinc
1
450
Cross Data Platforms Meetup LT 20250422
tarotaro0129
1
720
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
0
220
より良い開発者体験を実現するために~開発初心者が感じた生成AIの可能性~
masakiokuda
0
210
Would you THINK such a demonstration interesting ?
shumpei3
1
230
OpenLane-V2ベンチマークと代表的な手法
kzykmyzw
0
110
PostgreSQL Log File Mastery: Optimizing Database Performance Through Advanced Log Analysis
shiviyer007
PRO
0
120
コスト最適重視でAurora PostgreSQLのログ分析基盤を作ってみた #jawsug_tokyo
non97
1
550
サーバレス、コンテナ、データベース特化型機能をご紹介。CloudWatch をもっと使いこなそう!
o11yfes2023
0
180
彩の国で始めよう。おっさんエンジニアから共有したい、当たり前のことを当たり前にする技術
otsuki
0
150
勝手に!深堀り!Cloud Run worker pools / Deep dive Cloud Run worker pools
iselegant
3
470
ガバクラのAWS長期継続割引 ~次の4/1に慌てないために~
hamijay_cloud
1
300
Featured
See All Featured
Become a Pro
speakerdeck
PRO
27
5.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
390
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
560
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.4k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Statistics for Hackers
jakevdp
798
220k
It's Worth the Effort
3n
184
28k
Faster Mobile Websites
deanohume
306
31k
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