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
84
なぜ リアーキテクティング専任チームを作ったのか
kei_s
PRO
2
1.4k
実践 Rails アソシエーションリファクタリング / Rails association refactoring in practice
kei_s
PRO
8
8.3k
「Go言語でつくるインタプリタ」を Rust で移植してみた / "Write An Interpreter In Go" In Rust
kei_s
PRO
1
1.9k
Rust言語で作るインタプリタ / Write An Interpreter In Rust
kei_s
PRO
2
590
育児休業のご報告と、育児グッズとしてのスマートスピーカー / 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
980
Other Decks in Technology
See All in Technology
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
260
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
140
OpenAIの蒸留機能(Model Distillation)を使用して運用中のLLMのコストを削減する取り組み
pharma_x_tech
4
560
ハイテク休憩
sat
PRO
2
160
20241220_S3 tablesの使い方を検証してみた
handy
4
610
権威ドキュメントで振り返る2024 #年忘れセキュリティ2024
hirotomotaguchi
2
750
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
170
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
130
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
200
ブラックフライデーで購入したPixel9で、Gemini Nanoを動かしてみた
marchin1989
1
540
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
150
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
110
Featured
See All Featured
The Language of Interfaces
destraynor
154
24k
Navigating Team Friction
lara
183
15k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Mobile First: as difficult as doing things right
swwweet
222
9k
Building Your Own Lightsaber
phodgson
103
6.1k
How STYLIGHT went responsive
nonsquared
95
5.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
Typedesign – Prime Four
hannesfritz
40
2.4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
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