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
100
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
160
言語処理年次大会報告
ayumum
0
98
ニューラルネット4
ayumum
0
110
文献紹介「二値符号予測と誤り訂正を用いたニューラル翻訳モデル」
ayumum
0
170
ニューラルネット3 誤差伝搬法,CNN,word2vec
ayumum
0
170
ニューラルネット実践
ayumum
0
120
文献紹介[Zero-Shot Dialog Generation with Cross-Domain Latent Action]
ayumum
0
190
パーセプトロンとニューラルネット1
ayumum
0
110
Other Decks in Technology
See All in Technology
アクセスピークを制するオートスケール再設計: 障害を乗り越えKEDAで実現したリソース管理の最適化
myamashii
1
280
SEQUENCE object comparison - db tech showcase 2025 LT2
nori_shinoda
0
280
ソフトウェアテストのAI活用_ver1.25
fumisuke
1
540
助けて! XからWaylandに移行しないと新しいGNOMEが使えなくなっちゃう 2025-07-12
nobutomurata
2
140
AI エージェントと考え直すデータ基盤
na0
17
7.1k
第4回Snowflake 金融ユーザー会 Snowflake summit recap
tamaoki
1
330
TLSから見るSREの未来
atpons
2
220
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
130k
「クラウドコスト絶対削減」を支える技術—FinOpsを超えた徹底的なクラウドコスト削減の実践論
delta_tech
4
180
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
7.8k
LLM時代の検索
shibuiwilliam
2
630
How to Quickly Call American Airlines®️ U.S. Customer Care : Full Guide
flyaahelpguide
0
240
Featured
See All Featured
Being A Developer After 40
akosma
90
590k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
700
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Designing Experiences People Love
moore
142
24k
It's Worth the Effort
3n
185
28k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
980
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
6
330
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
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