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
「深層学習による自然言語処理」読書会 第2章2.1~2.5
Search
Kei Shiratsuchi
PRO
August 24, 2017
Technology
0
480
「深層学習による自然言語処理」読書会 第2章2.1~2.5
「深層学習による自然言語処理」読書会
第2章2.1~2.5
Kei Shiratsuchi
PRO
August 24, 2017
Tweet
Share
More Decks by Kei Shiratsuchi
See All by Kei Shiratsuchi
モノリスとマイクロサービスの橋渡し - ベターからモアベターへ
kei_s
PRO
0
120
なぜ リアーキテクティング専任チームを作ったのか
kei_s
PRO
2
1.6k
実践 Rails アソシエーションリファクタリング / Rails association refactoring in practice
kei_s
PRO
8
9.5k
「Go言語でつくるインタプリタ」を Rust で移植してみた / "Write An Interpreter In Go" In Rust
kei_s
PRO
1
2k
Rust言語で作るインタプリタ / Write An Interpreter In Rust
kei_s
PRO
2
750
育児休業のご報告と、育児グッズとしてのスマートスピーカー / Parental Leave and SmartSpeaker
kei_s
PRO
0
880
「深層学習による自然言語処理」読書会 第6章2.7
kei_s
PRO
0
470
「深層学習による自然言語処理」読書会 第5章5.1
kei_s
PRO
0
490
最近個人的に気になるプログラミング言語おさらい Ruby, Python, Go, Rust, Julia
kei_s
PRO
0
1.1k
Other Decks in Technology
See All in Technology
AR Guitar: Expanding Guitar Performance from a Live House to Urban Space
ekito_station
0
250
AI時代のワークフロー設計〜Durable Functions / Step Functions / Strands Agents を添えて〜
yakumo
3
2.3k
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
14k
AWSに革命を起こすかもしれない新サービス・アップデートについてのお話
yama3133
0
510
AWS運用を効率化する!AWS Organizationsを軸にした一元管理の実践/nikkei-tech-talk-202512
nikkei_engineer_recruiting
0
170
AIBuildersDay_track_A_iidaxs
iidaxs
4
1.4k
意外と知らない状態遷移テストの世界
nihonbuson
PRO
1
280
Agent Skillsがハーネスの垣根を超える日
gotalab555
6
4.5k
re:Invent2025 セッションレポ ~Spec-driven development with Kiro~
nrinetcom
PRO
1
110
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
770
TED_modeki_共創ラボ_20251203.pdf
iotcomjpadmin
0
150
アプリにAIを正しく組み込むための アーキテクチャ── 国産LLMの現実と実践
kohju
0
240
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
My Coaching Mixtape
mlcsv
0
13
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
410
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
320
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
29
KATA
mclloyd
PRO
33
15k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Building Flexible Design Systems
yeseniaperezcruz
330
39k
Become a Pro
speakerdeck
PRO
31
5.7k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
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