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
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
630
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
420
AWS re:Invent 2024 ふりかえり
kongmingstrap
0
130
Snowflake女子会#3 Snowpipeの良さを5分で語るよ
lana2548
0
220
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
3
370
レンジャーシステムズ | 会社紹介(採用ピッチ)
rssytems
0
150
5分でわかるDuckDB
chanyou0311
10
3.2k
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
muziyoshiz
2
2.1k
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
160
Postman と API セキュリティ / Postman and API Security
yokawasa
0
200
Turing × atmaCup #18 - 1st Place Solution
hakubishin3
0
470
ガバメントクラウドのセキュリティ対策事例について
fujisawaryohei
0
530
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
222
9k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Agile that works and the tools we love
rasmusluckow
328
21k
Speed Design
sergeychernyshev
25
670
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Making the Leap to Tech Lead
cromwellryan
133
9k
It's Worth the Effort
3n
183
28k
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