Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
「深層学習による自然言語処理」読書会 第2章2.1~2.5
Search
Kei Shiratsuchi
PRO
August 24, 2017
Technology
510
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
「深層学習による自然言語処理」読書会 第2章2.1~2.5
「深層学習による自然言語処理」読書会
第2章2.1~2.5
Kei Shiratsuchi
PRO
August 24, 2017
More Decks by Kei Shiratsuchi
See All by Kei Shiratsuchi
モノリスとマイクロサービスの橋渡し - ベターからモアベターへ
kei_s
PRO
0
140
なぜ リアーキテクティング専任チームを作ったのか
kei_s
PRO
2
1.7k
実践 Rails アソシエーションリファクタリング / Rails association refactoring in practice
kei_s
PRO
8
10k
「Go言語でつくるインタプリタ」を Rust で移植してみた / "Write An Interpreter In Go" In Rust
kei_s
PRO
1
2.1k
Rust言語で作るインタプリタ / Write An Interpreter In Rust
kei_s
PRO
2
820
育児休業のご報告と、育児グッズとしてのスマートスピーカー / Parental Leave and SmartSpeaker
kei_s
PRO
0
910
「深層学習による自然言語処理」読書会 第6章2.7
kei_s
PRO
0
500
「深層学習による自然言語処理」読書会 第5章5.1
kei_s
PRO
0
510
最近個人的に気になるプログラミング言語おさらい Ruby, Python, Go, Rust, Julia
kei_s
PRO
0
1.1k
Other Decks in Technology
See All in Technology
顧客価値を追いかけたら、プライシングにたどり着いた
sansantech
PRO
2
1k
ポケモン対戦を自動で記録して振り返ろう
fufufukakaka
0
410
契約で守るコンパウンドプロダクトのデザインシステム
yug1224
1
1.5k
正解のない研修に放り出されて / Being thrown into a training program with no right answers
ohnoeight
1
150
僕のハーネスを紹介します
watany
7
1.6k
アカウント統制の健康診断
kenichinakamura
1
200
dbt Semantic Layerで進めるenechainのデータ民主化
akizhou
1
270
QAエンジニアがSoutherを使ってみたの〜10分でわかるSouther〜
mhlyc
0
120
AWS Continuum for Penetration Testing に Deep Dive してみる
asanoharuki
2
1.4k
Agent 活用環境の構築・運用のための AWS サービスのご紹介/agentcore-for-building-and-operating-agents
ren8k
1
150
AWSDirectConnectの構築の進め方を整理してみた
masa_my
1
200
クラウドエージェントの先駆け Devin。今も最先端を走る、他との違い
kinopeee
1
450
Featured
See All Featured
Producing Creativity
orderedlist
PRO
348
41k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
310
Thoughts on Productivity
jonyablonski
76
5.4k
Deep Space Network (abreviated)
tonyrice
0
380
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
330
Tell your own story through comics
letsgokoyo
1
1.1k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
490
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
580
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Transcript
ʮਂֶशʹΑΔࣗવݴޠॲ ཧʯಡॻձ ୈষd ⽩⼟ 慧 株式会社レトリバ © 2017 Retrieva, Inc.
ࣗݾհ • 名前:⽩⼟ 慧 • 年齢:33歳 • 所属:株式会社レトリバ(2016年4⽉〜) • 職業:エンジニア
• ⾃然⾔語処理:⼤学の授業レベル。 • 深層学習:⼊社してから少しだけ案件で。 © 2017 Retrieva, Inc. 2
ൣғ • 2. ニューラルネットの基礎 • 2.1 教師あり学習 • 2.2 順伝搬型ニューラルネット
• 2.3 活性化関数 • 2.4 勾配法 • 2.5 誤差逆伝搬法 © 2017 Retrieva, Inc. 3
χϡʔϥϧωοτͷجૅ • この章で紹介すること • 機械学習とは何か • 誤差逆伝搬法 • 広く使われているニューラルネットの構造(次回) ©
2017 Retrieva, Inc. 4
ڭࢣ͋Γֶश • 深層学習は、ニューラルネットを関数近似に使う⼿法 • ニューラルネットはあくまでもデータから関数を学習するため のモデル © 2017 Retrieva, Inc.
5
ڭࢣ͋Γֶशͷఆٛ • 教師あり学習では、訓練データを使って所望の予測モデルを学 習する。 • 訓練データ:正解事例の集合 • 式(2.1):⼊⼒変数x(n)と出⼒変数y(n)について、損失を最⼩化す るようなパラメータθを求める⼿続き •
損失: x(n), y(n) を損失関数にかけた結果の平均値 • つまり学習とは、最適化アルゴリズムを使って、ある関数を最 ⼩化するパラメータ値を求める、最適化問題である © 2017 Retrieva, Inc. 6
ଛࣦؔ • 損失関数を何にするかも設計要素 • fθ (x,y) は予測モデル。本書ではニューラルネットとする • 交差エントロピー損失関数 •
真の分布とモデルとの距離を表す交差エントロピーを、訓練データで 近似する • ヒンジ損失関数 • 正解y(n)と、正解を除いた中で最もスコアが⼤きい "だけを使って損失 を定義する • これを⽤いて学習するアルゴリズムをサポートベクトルマシンと呼ぶ © 2017 Retrieva, Inc. 7
ڭࢣ͋Γֶशʹ༻͍Δσʔλ • 訓練データに対してだけ正しく予測できても意味がない • 本当は世の中全てのデータを訓練データとしたいが、不可能 • 最適化問題と違い、教師あり学習は訓練データに最適化できれば良い わけではない • 評価データと開発データを⽤意する
• 評価データ:学習の最後に、モデルを評価するための正解事例 • 開発データ:学習の過程で使う正解事例 © 2017 Retrieva, Inc. 8
ॱൖܕχϡʔϥϧωοτɺϞσϧ • 最も単純な構造である順伝搬型ニューラ ルネット(FFNN) • ⾏列Wをかけてベクトルbを⾜す、という 作業を層ごとに繰り返す • 活性化関数a(l)を通す •
パラメータθは、{W(1),…W(l),b(1)…b(l)}と なる • 隠れ状態ベクトルの次元数、または層の 数が多いと、⼊⼒データを細かく分類で きる • つまり深いニューラルネットは表現⼒が⾼ いと⾔われる © 2017 Retrieva, Inc. 9 o h(2) h(1) h(0) = x h(1) = a(1)(W(1)x +b(1)) h(2) = a(2)( W(2)h(1) +b(2)) o = W(3)h(2) +b(3)
׆ੑԽؔ • 活性化関数として⾮線形関数を適⽤する • sigmoid • tanh • ReLU •
勾配法と組み合わせるため、微分可能な関数を選ぶ • 活性化関数と性能の関係は明確になっていないので、実験的に選ぶことが多 い • ⾮線形関数を通さない2層のFFNNは、等価な1層のFFNNで構成でき てしまう • 深い構造を有効活⽤するため、⾮線形な活性化関数を適⽤する必要がある © 2017 Retrieva, Inc. 10
ޯ๏ɺޯ๏ʹΑΔؔ࠷খԽ • 2.1節の通り、学習はL(θ) の最⼩化 • ニューラルネットでは勾配法による最適化がよく使われる • パラメータθを下記の式で更新していく • θ(k+1)=θ(k)-η∂L(θ(k))
• 関数Lをθ(k)において偏微分を取り線形近似し、最も減る⽅向(最急降 下⽅向)に向かって、ηぶんパラメータを動かす © 2017 Retrieva, Inc. 11
ϛχόονԽʹΑΔ֬తޯ๏ • 式(2.1)では訓練データのすべての事例を利⽤している。バッチ法と呼ぶ • ⼀回の評価に時間がかかりすぎる • 最急降下⽅向は局所的な性質なので、雑に早く計算してパラメータ更新回数を増や した⽅が、早く良い解にたどり着ける • 事例からランダムに選んで勾配法を実⾏する確率的勾配法がよく使われる
• 1事例だけ使う(オンライン法)だとパラメータ更新回数は多くできるが、 偏微分のバラツキが⼤きい • いいとこ取りをして、事例からランダムに複数選ぶ、ミニバッチ法を⽤い る • 選ぶ個数:バッチサイズ • 全データ数/バッチサイズ:1エポック © 2017 Retrieva, Inc. 12
ޡࠩٯൖ๏ɺχϡʔϥϧωοτͷඍ • 誤差逆伝搬法:ニューラルネットにおいて⽬的関数の偏微分を 計算するアルゴリズム • ⾃分で実装する必要はあまりない • ニューラルネットを合成関数と捉え微分の連鎖律を使うと、 ニューラルネットの微分はそれぞれの導関数の積で表せる ©
2017 Retrieva, Inc. 13
ਂ͍χϡʔϥϧωοτͷ͠͞ • 隠れ層1層を持つニューラルネットをスコア関数 f とすると、 f(x,y) = f(o)(f(1)(x), y)=w y
(o)w(1)x • 損失関数にかけた l(f(o)(f(1)(x), y)) を⽬的関数とすると、f(1)のパラ メータw(1)における微分は(式2.31)、 ' ()) • これは関数評価とは逆⽅向に誤差(損失関数の⼊⼒による微分)が かけられている • 誤差が関数評価とは逆⽅向に伝達されることになるので誤差逆伝搬法 © 2017 Retrieva, Inc. 14
ਂ͍χϡʔϥϧωοτͷ͠͞ • 偏微分の計算は、⽬的関数の計算グラフを逆に辿っていく © 2017 Retrieva, Inc. 15 ⼊ ⼒
︵ 訓 練 デ タ ︶ ⾏ 列 活 性 化 関 数 ⾏ 列 活 性 化 関 数 ⾏ 列 損 失 関 数 順伝搬の計算 偏微分の計算
ਂ͍χϡʔϥϧωοτͷ͠͞ • 隠れ層を2つに増やすと(式2.33)、 ' ) (,)(-) • 層が増えると積の回数が増える • パラメータが⼤きいと、微分の値が⾮常に⼤きくなる:勾配爆発
• パラメータが⼩さいと、微分の値が⾮常に⼩さくなる:勾配消失 • 層を増やすと表現⼒は⼤きくなるが、学習が困難になる • ResNetのような⼿法を⽤いると、1000層も可能になる © 2017 Retrieva, Inc. 16