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
140
0
Share
B3ゼミ 自然言語処理におけるCNN
2019/03/21
長岡技術科学大学 自然言語処理研究室
学部4年 守谷 歩
Ayumu
March 21, 2019
More Decks by Ayumu
See All by Ayumu
B3ゼミ_03_28_マルチモーダル学習_.pdf
ayumum
0
200
マルチモーダル学習
ayumum
0
190
言語処理年次大会報告
ayumum
0
130
ニューラルネット4
ayumum
0
140
文献紹介「二値符号予測と誤り訂正を用いたニューラル翻訳モデル」
ayumum
0
200
ニューラルネット3 誤差伝搬法,CNN,word2vec
ayumum
0
200
ニューラルネット実践
ayumum
0
140
文献紹介[Zero-Shot Dialog Generation with Cross-Domain Latent Action]
ayumum
0
230
パーセプトロンとニューラルネット1
ayumum
0
120
Other Decks in Technology
See All in Technology
実践 TanStack Start ― 新規プロダクトを開発して確立した、サーバーとクライアント境界の設計パターン / Practical TanStack Start Server-Client Boundary Patterns
kaminashi
2
170
GitHub Copilot CLI で考える複数エージェント設計
tomokusaba
0
150
Fラン学生が考える、AI時代のデザインに執着した突破口
husengs7
1
230
ワールドカフェ再び、そしてゴール・ルール・ロール・ツール / World Café Revisited, and the Goals-Rules-Roles-Tools
ks91
PRO
0
190
Personal knowledge bases using LLM
lycorptech_jp
PRO
0
120
インプロセスQAのための要因から捉えるプロジェクトリスクマネジメントnano #1 開発リソース効率状態への対処 #jasstnano
barus_qa
0
220
TypeScriptはどのようにどこまで推論できるのか ─ とにかく as は禁止で
ypresto
1
280
LT準備のToilを削減 〜決定論×確率論のスライド生成CLI〜
shukob
0
120
社内RAGの導入で気を付けたポイント
yakumo
1
130
Agent Development Kit (ADK)で学ぶ実践Context Engineeringと社内での応用例
lycorptech_jp
PRO
0
130
[4] Power BI Deep Dive [2026-05]
ohata_bi
0
110
How to learn AWS Well-Architected with AWS BuilderCards: Security Edition
coosuke
PRO
0
200
Featured
See All Featured
Fireside Chat
paigeccino
42
3.9k
The Cult of Friendly URLs
andyhume
79
6.9k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
140
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Optimizing for Happiness
mojombo
378
71k
Discover your Explorer Soul
emna__ayadi
2
1.1k
We Have a Design System, Now What?
morganepeng
55
8.1k
YesSQL, Process and Tooling at Scale
rocio
174
15k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
380
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
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