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
560
「深層学習による自然言語処理」読書会 第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
93
なぜ リアーキテクティング専任チームを作ったのか
kei_s
PRO
2
1.4k
実践 Rails アソシエーションリファクタリング / Rails association refactoring in practice
kei_s
PRO
8
8.6k
「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
620
育児休業のご報告と、育児グッズとしてのスマートスピーカー / Parental Leave and SmartSpeaker
kei_s
PRO
0
850
「深層学習による自然言語処理」読書会 第6章2.7
kei_s
PRO
0
450
「深層学習による自然言語処理」読書会 第5章5.1
kei_s
PRO
0
440
最近個人的に気になるプログラミング言語おさらい Ruby, Python, Go, Rust, Julia
kei_s
PRO
0
1k
Other Decks in Technology
See All in Technology
開発組織のための セキュアコーディング研修の始め方
flatt_security
3
2.3k
全文検索+セマンティックランカー+LLMの自然文検索サ−ビスで得られた知見
segavvy
2
100
関東Kaggler会LT: 人狼コンペとLLM量子化について
nejumi
3
580
ハッキングの世界に迫る~攻撃者の思考で考えるセキュリティ~
nomizone
13
5.2k
滅・サービスクラス🔥 / Destruction Service Class
sinsoku
6
1.6k
Classmethod AI Talks(CATs) #16 司会進行スライド(2025.02.12) / classmethod-ai-talks-aka-cats_moderator-slides_vol16_2025-02-12
shinyaa31
0
110
「海外登壇」という 選択肢を与えるために 〜Gophers EX
logica0419
0
700
一度 Expo の採用を断念したけど、 再度 Expo の導入を検討している話
ichiki1023
1
170
2/18/25: Java meets AI: Build LLM-Powered Apps with LangChain4j
edeandrea
PRO
0
110
The Future of SEO: The Impact of AI on Search
badams
0
190
モノレポ開発のエラー、誰が見る?Datadog で実現する適切なトリアージとエスカレーション
biwashi
6
800
PL900試験から学ぶ Power Platform 基礎知識講座
kumikeyy
0
130
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
67
4.6k
Typedesign – Prime Four
hannesfritz
40
2.5k
Designing for humans not robots
tammielis
250
25k
How GitHub (no longer) Works
holman
314
140k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
240
Automating Front-end Workflow
addyosmani
1368
200k
Practical Orchestrator
shlominoach
186
10k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
GraphQLとの向き合い方2022年版
quramy
44
13k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
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