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
「深層学習による自然言語処理」読書会 第4章4.3
Search
Kei Shiratsuchi
PRO
August 02, 2017
Technology
1
550
「深層学習による自然言語処理」読書会 第4章4.3
「深層学習による自然言語処理」読書会
第4章4.3
Kei Shiratsuchi
PRO
August 02, 2017
Tweet
Share
More Decks by Kei Shiratsuchi
See All by Kei Shiratsuchi
モノリスとマイクロサービスの橋渡し - ベターからモアベターへ
kei_s
PRO
0
81
なぜ リアーキテクティング専任チームを作ったのか
kei_s
PRO
2
1.4k
実践 Rails アソシエーションリファクタリング / Rails association refactoring in practice
kei_s
PRO
8
8.2k
「Go言語でつくるインタプリタ」を Rust で移植してみた / "Write An Interpreter In Go" In Rust
kei_s
PRO
1
1.8k
Rust言語で作るインタプリタ / Write An Interpreter In Rust
kei_s
PRO
2
580
育児休業のご報告と、育児グッズとしてのスマートスピーカー / Parental Leave and SmartSpeaker
kei_s
PRO
0
840
「深層学習による自然言語処理」読書会 第6章2.7
kei_s
PRO
0
440
「深層学習による自然言語処理」読書会 第5章5.1
kei_s
PRO
0
420
最近個人的に気になるプログラミング言語おさらい Ruby, Python, Go, Rust, Julia
kei_s
PRO
0
970
Other Decks in Technology
See All in Technology
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
120
ハイパーパラメータチューニングって何をしているの
toridori_dev
0
140
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
290
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
490
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
460
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
2
430
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
170
[FOSS4G 2024 Japan LT] LLMを使ってGISデータ解析を自動化したい!
nssv
1
210
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
150
SSMRunbook作成の勘所_20241120
koichiotomo
1
110
スクラムチームを立ち上げる〜チーム開発で得られたもの・得られなかったもの〜
ohnoeight
2
350
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
190
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
730
Faster Mobile Websites
deanohume
305
30k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
Facilitating Awesome Meetings
lara
50
6.1k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
What's new in Ruby 2.0
geeforr
343
31k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Building an army of robots
kneath
302
43k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Transcript
ʮਂֶशʹΑΔࣗવݴޠॲ ཧʯಡॻձ ୈষ ⽩⼟ 慧 株式会社レトリバ © 2017 Retrieva, Inc.
ࣗݾհ • 名前:⽩⼟ 慧 • 年齢:33歳 • 所属:株式会社レトリバ(2016年4⽉〜) • 職業:エンジニア
• ⾃然⾔語処理:⼤学の授業レベル。 • 深層学習:⼊社してから少しだけ案件で。 © 2017 Retrieva, Inc. 2
ൣғ • 4.3. 出⼒層の⾼速化 • 4.3.1 巨⼤なソフトマックス関数の課題 • 4.3.2 重点サンプリング
• 4.3.3 雑⾳対照推定(NCE) • 4.3.4 負例サンプリング • 4.3.5 ブラックアウト • 4.3.6 階層的ソフトマックス • 4.3.7 ⾼速化⼿法の⽐較 © 2017 Retrieva, Inc. 3
ग़ྗͷߴԽ • これまで、⽬的関数として交差エントロピー損失関数を⽤いて きた。 • 3.2 ⾔語モデル、3.3 埋め込みベクトル、3.4 系列変換モデル •
交差エントロピー損失関数は、全語彙集合に対するソフトマッ クス関数の対数を計算する。 • 語彙が⼤きいとき(数万〜100万)計算が重くなる。 • 本節では、ソフトマックス関数による損失関数処理の効率化技 術を解説する。 © 2017 Retrieva, Inc. 4
ڊେͳιϑτϚοΫεؔͷ՝ • 交差エントロピー損失関数 " #$%&'() , = − exp ("
(, )) ∑ exp (" (, 9)) ; 9∈= • Y は全語彙集合なので、分⺟の計算は膨⼤になる • 式(4.36)に誤植 = ∑ exp ( 9 ) ; 9∈= • xとθを省略して、以下のように書く = " , , = A ( 9) ; 9∈= " #$%&'() , = − + • Zを分配関数と呼ぶ © 2017 Retrieva, Inc. 5
ڊେͳιϑτϚοΫεؔͷ՝ • () = DEF # ; G = (?)
• 最適化のため、損失関数をθで微分する ∇ " #$%&'() , = − + • 変形すると、 " #$%&'() , = −J + L [′()] • L J はsの勾配の期待値 • ⽅針:Zに関する計算をやりたくない © 2017 Retrieva, Inc. 6
ॏαϯϓϦϯά • L J は期待値計算なので、少数の標本を利⽤して近似計算する。 • モンテカルロ法で抽出できるが、単語の出現確率は分配関数Zを計算しなければ求ま らない。 • 重点サンプリング
• 元の確率分布とは異なる分布での標本を利⽤して期待値を近似する⼿法 L J ≈ =Q~S J (J) (J) = 1 A ′(W X) (W X) (W X) Y WZ[ • ⼀様分布などのようなqからの分布で抽出できる © 2017 Retrieva, Inc. 7
ॏαϯϓϦϯά • ′(W X) L(;\) S(;\) の計算において、依然(W X)の計算にZ(Y)の計算が必 要。 •
Zの代わりにqからの標本に対する総和Z^を利⽤して近似する = ||_ exp ≈ 1 A exp W X W X Y WZ[ = a • 最終的(式4.49)に、pに依存した標本もp()の計算も含まない ようにでき、語彙数に依存した計算を取り除いた © 2017 Retrieva, Inc. 8
ࡶԻରরਪఆʢ/$&ʣ • 重点サンプリングではZの近似を考えていたが、Zも未知のパラ メータとして推定する • 訓練データyに対して、ノイズ分布qからのk個の標本Dを抽出し、この k+1個の事例に対するDの負の対数尤度を最⼩化する " bcd =
− + − A f f + f ; f∈g X © 2017 Retrieva, Inc. 9
ࡶԻରরਪఆʢ/$&ʣ • () = DEF (# ; ) G(=) の計算に時間がかかるのが問題だったので、新
たなパラメータcを導⼊し、これも学習する () = exp exp () • ⽂献[109]で、cをおかずにZ(Y)=1としても問題ないことが発⾒ された " bcd = − exp ( ) exp ( ) + − A f exp ( f ) + f ; f∈g X • NCEのこの性質は、⾃⼰正規化とも呼ばれる。(?) © 2017 Retrieva, Inc. 10
ෛྫαϯϓϦϯά • NCEをより単純化させたものが負例サンプリング " bi = −log {( )} −
A log {1 − ( f )} ; f∈g X • NCEに、k=|Y|, q(y)=1/|Y| としたものとほぼ同じ式 • qとして、⼀様分布や出現頻度に⽐例した分布(ユニグラム確率)も使え る • ユニグラム確率の3/4乗を利⽤すると良い • 「利⽤するノイズの標本D⾃体は何かしらの分布qからの標本で、⼀様分 布からではない点で異なります」(?) © 2017 Retrieva, Inc. 11
ϒϥοΫΞτ • 重み付きソフトマックス 9を使う " rs(tu$_& = −log 9() −
A log (1 − 9 f ) ; f∈g X • 9は1/qで重み付けしている • qはユニグラム確率のα乗を使うのが良い • 9は、重点サンプリングによって近似計算された勾配を積分して、確 率値を復元した関数と⾔える • NCEでのノイズ分布の確率密度関数としてpを使うように設計した ものとみなせる • 分配関数Zがキャンセルされるように設計している © 2017 Retrieva, Inc. 12
֊తιϑτϚοΫε • 通常のソフトマックス=全語彙集合から1つを選ぶ • 階層的ソフトマックス=⼆値分類を⽊構造で繰り返す • 全語彙数の対数程度の分類回数で済む • ⽊を単語の出現頻度によるハフマン符号化などで構成しておく •
⽊構造に依存して結果が変わることに注意 © 2017 Retrieva, Inc. 13
ߴԽख๏ͷൺֱ • 重点サンプリング • 元々の⽬的関数の⽅針を変えず、近似によって軽くしている • NCE、負例サンプリング、ブラックアウト • 元々の最尤推定とは⼤きく異なる、新しい⽬的関数で推定する •
上記4つの⼿法は、少数の無作為抽出結果だけを利⽤することで計算量を 落とす • 時間計算量は語彙数|V|でなく、標本数に依存する • 無作為抽出については7.3.2、7.3.3を参照 • 階層的ソフトマックス • 巨⼤なソフトマックス関数を⼩さなソフトマックス関数の積で表現する • モデルそのものが⼤きく変わっている © 2017 Retrieva, Inc. 14
<એ> • WEB+DB PRESS Vol.100 に、弊社 のメンバーが特集記事を書きまし た。 • 特集1
作って学ぶ⼈⼯知能 • 第1章 ⼈⼯知能とはどんな技術なの か? • 第2章 ⾃然⾔語処理 • 第3章 機械学習 • 第4章 深層学習とニューラルネット ワーク • 明⽇ 8/24 発売! © 2017 Retrieva, Inc. 15