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
580
「深層学習による自然言語処理」読書会 第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
110
なぜ リアーキテクティング専任チームを作ったのか
kei_s
PRO
2
1.5k
実践 Rails アソシエーションリファクタリング / Rails association refactoring in practice
kei_s
PRO
8
9.1k
「Go言語でつくるインタプリタ」を Rust で移植してみた / "Write An Interpreter In Go" In Rust
kei_s
PRO
1
2k
Rust言語で作るインタプリタ / Write An Interpreter In Rust
kei_s
PRO
2
700
育児休業のご報告と、育児グッズとしてのスマートスピーカー / Parental Leave and SmartSpeaker
kei_s
PRO
0
870
「深層学習による自然言語処理」読書会 第6章2.7
kei_s
PRO
0
460
「深層学習による自然言語処理」読書会 第5章5.1
kei_s
PRO
0
470
最近個人的に気になるプログラミング言語おさらい Ruby, Python, Go, Rust, Julia
kei_s
PRO
0
1k
Other Decks in Technology
See All in Technology
Evolución del razonamiento matemático de GPT-4.1 a GPT-5 - Data Aventura Summit 2025 & VSCode DevDays
lauchacarro
0
210
スクラムガイドに載っていないスクラムのはじめかた - チームでスクラムをはじめるときに知っておきたい勘所を集めてみました! - / How to start Scrum that is not written in the Scrum Guide 2nd
takaking22
2
210
2つのフロントエンドと状態管理
mixi_engineers
PRO
3
160
はじめてのOSS開発からみえたGo言語の強み
shibukazu
3
1k
複数サービスを支えるマルチテナント型Batch MLプラットフォーム
lycorptech_jp
PRO
1
970
AIエージェント開発用SDKとローカルLLMをLINE Botと組み合わせてみた / LINEを使ったLT大会 #14
you
PRO
0
130
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
240
LLM時代のパフォーマンスチューニング:MongoDB運用で試したコンテキスト活用の工夫
ishikawa_pro
0
170
Firestore → Spanner 移行 を成功させた段階的移行プロセス
athug
1
500
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.8k
AIがコード書きすぎ問題にはAIで立ち向かえ
jyoshise
1
210
エンジニアが主導できる組織づくり ー 製品と事業を進化させる体制へのシフト
ueokande
1
110
Featured
See All Featured
Writing Fast Ruby
sferik
628
62k
What's in a price? How to price your products and services
michaelherold
246
12k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Done Done
chrislema
185
16k
4 Signs Your Business is Dying
shpigford
184
22k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Six Lessons from altMBA
skipperchong
28
4k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
GraphQLとの向き合い方2022年版
quramy
49
14k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Docker and Python
trallard
46
3.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
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