講義「機械学習入門」
前半
立教大学 人工知能科学研究科
瀧 雅人

目次
機械学習と深層学習の概論
・機械学習とは？帰納推論と汎化
・線形回帰とロジスティック回帰・ニューラルネットとディープラーニング
・Transformer
・ライブラリーの簡単な紹介
今日は簡単なモデル・手法しか紹介しませんが、十分に機械学習のエッセンスが詰まっています。興味を持たれた方は、参考書でぜひ勉強なさってください。
例：ビショップ「パターン認識と機械学習」

1. 機械学習とは？
ー帰納推論と汎化ー１. 色々な機械学習アルゴリズム
インスタンス学習・メモリ学習・怠惰学習

モデル学習

教師あり学習 データが模範解答も含む
半教師あり学習
教師なし学習 データに模範解答なし
質問学習
強化学習
敵対的学習

学習者 (モデル) が環境 (現実世界) に作用できる

１. 色々な機械学習アルゴリズム
教師あり学習線形回帰
ロジスティック回帰
SVM
決定木
ランダムフォレスト

教師なし学習

主成分分析
k平均法
混合ガウス法階層クラスタリング
行列因子分解１. 色々な機械学習タスク
回帰
分類
クラスタリング次元削減
異常検知：「未定義」の異常を発見
欠損値補完
密度推定
生成(サンプリング)...

１. 色々な機械学習の応用
画像認識・画像生成
顔認識
機械翻訳
推薦システム
音声認識・音声合成
自動運転
ゲームAI
金融
診断
...

2. なぜいま機械学習なのか？

“big data”
データの巨大さ、多様性、複雑性、データフローの速度

人間の把握能力を超えている
強力な計算能力
機械学習の活用で価値を生む

2. 機械学習はいつ使う？
・人間にはできる作業だが、明示的にプログラムするのが困難なタスク2. 機械学習はいつ使う？
・人間にはできる作業だが、明示的にプログラムするのが困難なタスク
・人間の手に負えない「規模」のデータ（PとN）

2. 機械学習はいつ使う？
・人間にはできる作業だが、明示的にプログラムするのが困難なタスク
・人間の手に負えない「規模」のデータ（PとN）
・明示プログラムにはない適応性・柔軟性
ビジネス環境の変化に対するシステム側の迅速な対応。

2. 機械学習はいつ使う？
・人間にはできる作業だが、明示的にプログラムするのが困難なタスク
・人間の手に負えない「規模」のデータ（PとN）
・明示プログラムにはない適応性・柔軟性
・スケーラビリティを要する
データが増えるたびに統計分析要員を雇用していては、ビジネス成長の律速になる。新データに人が慣れるまでの時間もかかる。

fi

3. 機械学習とは？

A.Samuel (1959)
eld of study that gives computers the ability tolearn without being explicitly programmed

経験から学習するプログラムが作れれば、我々がいちいち事細かにプログラムする必要がなくなる

3. 機械学習とは？: formalな定義

T.M.Mitchell (1997)
コンピュータプログラムがタスクのクラスTと性能指標Pに関し経験Eから学習するとは、T内のタスクのPで測った性能が、経験Eにより改善される事を言う。
T：機械学習に解かせたい課題
P：性能を定量評価するために人間が設計した数値指標
E：データ
model/architecture：プログラム本体 (+学習アルゴリズム)

3. 機械学習とは？: formalな定義
モデル群 ＝ 仮説空間
hypothesis spacemin

ベストモデルP

タスクT
真のパターン(ground truth)

学習アルゴリズム
訓練データ（経験, E）

3. 機械学習とは？: formalな定義
訓練フェーズ：データと一番マッチする仮説を探す

hypothesis space

P
学習アルゴリズム
訓練データ（経験, E）

3. 機械学習とは？: formalな定義
予測フェーズ：未知のデータにも仮説が通用する

汎化

テストデータnew

機械学習の目的は、すでに学んだ問題（訓練データ）を解けることではなく、見たことのない新しい問題・データにも正しく推論を行えること。機械学習≠最適化数学。
はんか

汎化 generalization

3. 機械学習とは？: formalな定義
一般に、データとマッチする仮説はたくさんあるhypothesis spaceversion space（それぞれ一般に汎化性能は違う）

P

訓練データ（経験, E）

3. 機械学習とは？: formalな定義
一般に、データとマッチする仮説はたくさんあるhypothesis spaceversion space

学習アルゴリズムに特定の仮説への選好（バイアス）を持たせない限りは決まらない：帰納バイアス→ データ外の知識・バイアス

4. 帰納バイアスとヒュームの懐疑：科学哲学史

・機械学習＝帰納推論 (inductive reasoning)
観察した有限個の事例 → 普遍法則

フランシス・ベーコン

ちょっとした観察だけから普遍的な真理なんて本当にわかるの！？

4. 帰納バイアスとヒュームの懐疑：科学哲学史

・機械学習＝帰納推論 (inductive reasoning)
観察した有限個の事例 → 普遍法則

フランシス・ベーコン

帰納は合理的正当化が不可能
デイヴィット・ヒューム

4. 帰納バイアスとヒュームの懐疑：科学哲学史

・機械学習＝帰納推論 (inductive reasoning)
平均気温

？

日時
一昨日 今日 明日

4. 帰納バイアスとヒュームの懐疑：科学哲学史

・機械学習＝帰納推論 (inductive reasoning)
平均気温

予測はここら辺

日時
一昨日 今日 明日

4. 帰納バイアスとヒュームの懐疑：科学哲学史

・機械学習＝帰納推論 (inductive reasoning)
平均気温

予測はここら辺

日時
一昨日 今日 明日

斉一性・単純性などを仮定して初めて予測できる一切の仮定がないと、論理的には丸暗記した四日分の気温を答える事しかできない4. 帰納バイアスとヒュームの懐疑：科学哲学史

・機械学習＝帰納推論 (inductive reasoning)
人間の与える帰納バイアスが、普遍的なパターンの獲得や、未来への予測に不可欠。データだけでは不十分。
学習が容易になる(人間が「穴埋め問題」にしてくれる)
柔軟性を犠牲にする(仮定の範囲でしか学習不可)
このトレードオフをバランスするのが我々の仕事
No-Free-Lunch定理 [Wolpert,1996]
全てのタスクで勝るアルゴリズムは存在しない

6. 帰納バイアスの初等的な例
・オッカムの剃刀 (Occamʼs razor)
データを説明するモデルが複数あるならば、一番シンプル
な(小さな)ものを選びなさい。simplicity→ 科学、機械学習のオーソドオックスな基準
自明でない。論争あり。「シンプル」とは？

6. 帰納バイアスの初等的な例
・オッカムの剃刀 (Occamʼs razor)
データを説明するモデルが複数あるならば、一番シンプル
な(小さな)ものを選びなさい。simplicity→ 科学、機械学習のオーソドオックスな基準
自明でない。論争あり。「シンプル」とは？

・エピクロスの多説明原理 (multi explanation)
データを説明するモデルが複数あるならば、全てを保持しなさい。indifference
多くの同じ結果を与えるモデルから一つを選ぶ原理的な根
拠はない→ アンサンブル法 (別の良い汎化法)

モデルと真実“All models are wrong, some are useful.”
1978年 George Box (統計学者)
現代の統計学・機械学習は予測に関する汎化を支柱にしている。データだけから「普遍法則」が正確にわかるはずはなく、「正しいモデル」があるわけでもない。我々は、事前知識（帰納バイアス）をうまく使い汎化がうまくいった（様に見える）成功事例だけを知っている。
George Box, ‘Science and Statistics’, (1976)

2. 線形回帰とロジスティック回帰1. 線形モデル：パラメトリックモデルの例
hypothesis space
パラメトリックモデル
具体的なパラメータ付き関数でモデル化される仮説のみに範囲を絞る
特にパラメータに関して本質的に線形なモデルに話を限る

2. 線形単回帰：教師あり学習の一例

明

今

気 日
温 の

気 日
温 の

XからYを予測する問題：P=1の場合

1
1
2

ンス

タ

ンス
イ

、

点

X=
n xn

タ
ー
デ

Y =
yn

対応関係

N
入力

出力

2. 線形単回帰：教師あり学習の一例

yyn

n番目のインスタンス

xn
散布図

x

2. 線形単回帰：教師あり学習の一例

yy ⇡ ax + bxxが増えると、yも増える単純な直線的（＝線形）な傾向

2. 線形単回帰：教師あり学習の一例
y の予測値（推定値）を与える線形単回帰モデルŷ(x, a, b) = ax + b
ŷ：真の値ではなく、データから推定される y の予測値

2. 線形単回帰：教師あり学習の一例
y の予測値（推定値）を与える線形単回帰モデルŷ(x, a, b) = ax + b
ŷ：真の値ではなく、データから推定される y の予測値
(a, b) ：学習パラメータ。事前には適切な値はわからない。データから最適値を推定（学習）する

2. 線形単回帰：教師あり学習の一例
y の予測値（推定値）を与える線形単回帰モデルŷ(x, a, b) = ax + b
ŷ：真の値ではなく、データから推定される y の予測値
(a, b) ：学習パラメータ。事前には適切な値はわからない。データから最適値を推定（学習）する
学習＝データと最もマッチするパラメータの値 (â, b̂)を推定すること。

2. 線形単回帰：教師あり学習の一例

y
本当の値

yn
ŷ(xn )
モデルの予測xnx2. 線形単回帰：教師あり学習の一例

y
本当の値

yn
ŷ(xn )

予測の誤差

モデルの予測xn

x

3. 誤差関数と学習

E(a, b) =

1

N
X

N n=1

(ŷ(xn )yn )2

訓練データで測った、現在のパラメータ値のもとでの平均的な予測誤差（平均二乗誤差、MSE）。
誤差関数を最小にするようなパラメータが、最も予測誤差が小さい、つまりデータへの当てはまりの良いモ
デル ŷ(x) = ax + b を与える。

3. 誤差関数と学習：正規分布モデルと最尤法

ŷ = ax + b + ✏,✏ ⇠ N (0,2)

観測（データ）は、線形なパタンの周りに正規分布
ノイズでばらつくと確率でモデル化してみる3. 誤差関数と学習：正規分布モデルと最尤法✏ ⇠ N (0,＝ŷ = ax + b + ✏,2

P (ŷ|x) = N (ax + b,2)

データ分布を線形正規分布でモデル化した。
→ 確率モデルの学習は最尤推定法が「定番」。

)

3. 誤差関数と学習：正規分布モデルと最尤法x) を仮定した時、ある~
xn に対してある確率モデル P (y|~xn , yn ) が得られる確率：
インスタンス (~P (yn |~xn )x1 , y1 ), · · · , (~xN , yN )} が得られる確率
データセット{(~NY~ = P (yP
L(✓)
x1n)P
x＊i.i.d.を仮定！
xN )
(y
|~
x(y
1 |~
2 ) · · · P (yN |~n )2 |~Nn=1
Y=
P (yn |~xn )n=1

3. 誤差関数と学習：正規分布モデルと最尤法x) を仮定した時、ある~
xn に対してある確率モデル P (y|~xn , yn ) が得られる確率：
インスタンス (~P (yn |~xn )~ = (~✓a, b) の関数

x1 , y1 ), · · · , (~xN , yN )} が得られる確率
データセット{(~NY~ = P (yP
L(✓)
x1n)P
x＊i.i.d.を仮定！
xN )
(y
|~
x(y
1 |~
2 ) · · · P (yN |~n )2 |~Nn=1
Y
P (yn |~xn )尤度関数（likelihood）=
n=1

3. 誤差関数と学習：正規分布モデルと最尤法
尤度関数（likelihood）~ = P (y1 |~L(✓)
x1 )P (y2 |~x2 ) · · · P (yN |~
xN )
=

N
Y

n=1

P (yn |~xn )x1 , y1 ), · · · , (~xN , yN )} が得られる「確率」
データセット{(~

逆に、このデータセットが得られたのは、この確率(尤度)~ が選ばれているからだ、が大きくなるようなパラメータ ✓と考えてみる → データに対して尤もらしいパラメータ

3. 誤差関数と学習：正規分布モデルと最尤法与えられたデータセットと確率モデルに対して、最適なモ
デルパラメータは、尤度関数を最大化するものである：⇤~~✓ = argmax✓~ L(✓)
log（単調増加関数）をっても最大値の位置は不変⇤~~✓ = argmax✓~ log L(✓)＊尤度は確率の積なので、小さい値になってアンダーフローしない
ように対数をとる。

3. 誤差関数と学習：正規分布モデルと最尤法
マイナスをつけると最小化：⇤~✓ = argmin✓~~log L(✓)→ 負の対数尤度を誤差関数とする最小化問題（学習）
最尤法による学習⇤~~✓ = argmin✓~ E(✓)~E(✓) =~
log L(✓)

3. 誤差関数と学習：正規分布モデルと最尤法
今モデルは正規分布

N (ax + b,

2

)/e

~ =
→ 負の対数尤度 E(✓)

E=

2

1 X
2

n

(yn

1

(y
2
2

(ax+b))

2~ が二乗誤差関数を導く
log L(✓)
2(axn + b)) + C

４. 勾配降下法：学習の幾何学的な見方
では、どう学習させる？（＝最小化する？）

４. 勾配降下法：学習の幾何学的な見方
今の場合、誤差関数はそれぞれのパラメータの二次関数（ ŷ(x) = ax + b の二乗 → a,bの二次関数）

E(a, b)

学習＝最小化問題

â, b̂ = arg mina,b E(a, b)b

下に凸なグラフ上での最小化

a(â, b̂)

４. 勾配降下法：学習の幾何学的な見方~ + ✓)~ ⇡ E(✓)~ + rE(✓)
~ · ✓
~
E(✓

~=
✓

~
rE(✓)

最急降下方向E(a, b)

~
rE(✓)

b
a

(â, b̂)

勾配の逆方向にパラメータを反復的に動かしていけは、凸最適化
問題は数値的に解ける

４. 勾配降下法：学習の幾何学的な見方
学習率 ⌘ ：学習では決まらないパラメータ、ハイパーパラ
メータの一例。程よい1ステップのスケール

anew = abnew = b@E(a, b)⌘⌘@a
@E(a, b)@b

勾配降下法の１ステップ→ これを数値収束まで繰り返す。

4. 勾配降下法のアルゴリズムのまとめ
１. 初期値 a, b ← 乱数
学習率 ⌘ ← 0.1など丁度良い値を設定
反復回数 ← 適当な回数を設定
２. 反復回数だけ次を繰り返す：
２-１. 現在の a, b に対する勾配を計算
２-２. 勾配を使って a, b の値を更新

a

a

⌘

b

b

⌘

@E(a, b)@a
@E(a, b)@b

３. うまくいけば得られる最終的な値が â, b̂ の近似値

5. 汎化性能の簡単な推定法：ホールドアウト
・学習させたデータ(問題)に答えられることは、機械学習の目的ではない：そんなものは訓練データの丸暗記でできる
・学習していないデータ(問題)に答えられることが目標：汎化
汎化したかしていないかを本当に判断ためには、可能なすべての状
況でのデータが揃わなくてはいけないが、それは不可能。
汎化したかしていないかを「ざっくり」近似的に測るために、学習には一切使っていないテストデータを用意する：ホールドアウト法

5. 汎化性能の簡単な推定法：ホールドアウト

データ

テスト
データ
テスト
セット
開発用
データ

汎化性能の推定

ランダム
に分割

検証
データ
検証
セット

モデルの比較

訓練
データ
訓練
セット

データの分析
や学習モデル開発に使い尽くす

ランダム
に分割

最後まで封印！

5. 汎化性能の簡単な推定法：ホールドアウト

データ

テスト
データ
テスト
セット
ランダム
に分割

開発用
データ

大学入試

ランダム
に分割

検証
データ
予備校の模試
検証
セット
訓練
学校での
データ
勉強・
訓練
セット 参考書の問題

6. ２クラス分類（バイナリ分類）
入力属性から、カテゴリカル(非数値)な出力を予測

6. ２クラス分類（バイナリ分類）

ゴ
テ

P

カ

i

リ

深
水

度

1 2

緯

経

度

入力属性から、カテゴリカル(非数値)な出力を予測

1
2
X=

Y =
n

対応関係

?

N
入力

クラス出力

6. ２クラス分類（バイナリ分類）
入力属性から、カテゴリカル(非数値)な出力を予測

~
x

! y=

or

2クラス

6. ２クラス分類（バイナリ分類）
入力属性から、カテゴリカル(非数値)な出力を予測

~
x

! y=

ダミー変数(数値)で表現

or

y = 0, 1

6. ２クラス分類（バイナリ分類）
分類は決定境界(decision boundary)を決める問題。
とりあえず線形な場合のみ考える。

x2

x3
境界線

境界面

x1

P=2

x2
x1

P=3

＊ここでxの添え字は、インスタンスのラベルではなく属性xの次元

6. ２クラス分類（バイナリ分類）~xを与えた時、その入力がクラス y に所属する「確率」
P (y|~
x)を推定すればいい。もし確率モデルが得られたら

xP

x2
x1

6. ２クラス分類（バイナリ分類）~xを与えた時、その入力がクラス y に所属する「確率」
P (y|~
x)を推定すればいい。もし確率モデルが得られたら

xP
P (y = 1|~x) = 0.01

x1

P (y = 1|~x) = 0.5

x2
P (y = 1|~x) = 0.99

6. ２クラス分類（バイナリ分類）~xを与えた時、その入力がクラス y に所属する「確率」
P (y|~
x)を推定すればいい。もし確率モデルが得られたら

xP
P (y = 1|~x) = 0.01

x1

決定境界

P (y = 1|~x) = 0.5

x2
P (y = 1|~x) = 0.99

6. ２クラス分類（バイナリ分類）~xを与えた時、その入力がクラス y に所属する「確率」
P (y|~
x)を推定すればいい。もし確率モデルが得られたら

xP
P (y = 1|~x) = 0.01

x1

決定境界

P (y = 1|~x) = 0.5

x2
P (y = 1|~x) = 0.99

6. ２クラス分類（バイナリ分類）
簡単のため、決定境界が線形になるモデルを考えてみる。
この超平面を学習

f (~x) = ~
x~
a+b=0
xP

超平面
決定境界

P (y = 1|~x) = 0.5x2
x1

7. ロジスティック回帰モデル
ロジスティック回帰モデル（logistic regression model）

P (1|~
x) =

1
1+e

ŷ(~
x) =

(~
x~
a+b)

1
ここがゼロなら(~x~a + b) =
(~
x
~
a
+b)
決定境界
1+e

確率が線形モデルのシグモイド変換で与えられるモデル

P (0|~x) = 1

P (1|~x)

No Free Lunch 定理（トイバージョン）の証明
色々な帰納バイアスを持った学習アルゴリズム

Aa

Ab

Ac

···

を使って、分類パタンのground truth f を仮説

h 2 {0, 1}|X |で近似できるように学習し、性能を比較したい。

X ：母集団（離散的）X ⇢ X ：訓練データ（離散的）H ：仮説空間。ラベル付与パタンなので {0, 1}|X |No Free Lunch 定理（トイバージョン）の証明
Aa がデータ X ⇢ X を学習し、h を得る確率
P (h|X, Aa )訓練データ以外で測ったアルゴリズムAa の平均予測誤差は

EOOD [Aa |X, f ] ==XX

h x2X \X

正解との不一致P (x)P (h|X, Aa ) f (x)6=h(x)これを全てのタスク f （一様分布）で平均化すると

No Free Lunch 定理（トイバージョン）の証明
X

EOOD [Aa |X, f ]XX

f 2{0,1}|X |=x2X \XP (x)h

P (h|X, Aa )1
= Aa に関係ない
よってタスクで平均化するとアルゴリズムの性能には差がないXf (x)6=h(x)f 2{0,1}|X |1 |X |
2
2
あり得る全ての正解パ
タンを考えると、そのうち半分のは間違える前半のまとめに変えて紹介した機械学習の構成要素4つ：
データの入力表現 ← 前処理等、後述
モデル ← 線形モデル（大体）微分可能に作る
誤差関数（loss） ← 尤度
最適化手法（optimizer） ← 勾配効果法
データや具体的タスクと切り離して手法選択の良し悪しを議論することはできない（No Free Lunch）

講義「機械学習入門」
後半
立教大学 人工知能科学研究科
瀧 雅人

1. 特徴量エンジニアリング

1. 特徴量エンジニアリング
一般に、データの中の生の特徴量(変数)のままで良いわ
けではない。

1 2

i

P

1
2

X=
n
N
i番目の特徴量、属性

1. 特徴量エンジニアリング・線形モデルでは単純なパターン認識しかできない

x3

x2
x1

1. 特徴量エンジニアリング・線形モデルでは単純なパターン認識しかできない・人間の事前知識を組み込む余地
予測：生徒のやる気、教師の能力、…

→

生徒の成長

(生徒のやる気)＊(教師の能力)を変数として加える
ANDの寄与(交互作用)

1. 特徴量エンジニアリング・線形モデルでは単純なパターン認識しかできない・人間の事前知識を組み込む余地
・次元の呪いを被らないように次元圧縮

1. 特徴量エンジニアリング
より高レベルの特徴量(表現)を人間の知識で設計~x! ~ (~x)例）多項式回帰（PolynomialFeatures）, degree=3x!

1 (x),

2 (x),

1 (x) = x
22 (x) = x
33 (x) = x

→ 複雑な識別境界、多項式回帰3 (x)1. 特徴量エンジニアリング~x⇣! ~ (~x)! ŷ ~ (~x)

hand-craftmachine learning

人間
知識の蓄積

データ

⌘

2. 表現学習~x⇣! ~ (~x)! ŷ ~ (~x)

machine learning

machine learningデータ⌘

2. 深層学習による深層表現学習~x⇣! ~ (~x)! ŷ ~ (~
x)

深層表現

通常タスク

⌘

深層ニューラルネット (DNN)
深い情報表現の学習と、与えられたタスクの機械
学習が、end-to-endで行われる。

2. 深層学習による深層表現学習
P airplane = 0.0001

10クラスの確率

画像

P car = 0.0002

画像分類を学習
飛行機

車

鳥

猫

鹿

犬

カエル

CIFAR10データセット

馬

船

トラック

2. 深層学習による深層表現学習
P airplane = 0.0001

10クラスの確率
P car = 0.0002

画像分類を学習
飛行機

車

鳥

猫

鹿

犬

カエル

CIFAR10データセット

馬

船

トラック

2. 深層学習による深層表現学習

各層の変数たちが強く反応する
入力パターン例
を探索

車

低次の視覚概念・
パターン

船

猫

高次の視覚概念・パターン

2. ニューラルネット

1. 重回帰モデルとグラフ

ŷ(x) = a1 x1 + · · · aP xP + bŷ = ~
x~
a+b

a1

・・・

x1

xP

ŷ
aP

b

1. ロジスティック回帰モデルとグラフ

ŷ(x) =

a 1 x1 + · · · a P xP + b

ŷ =

(u)

u=~
x~
a+b

a1

・・・

x1

xP

u ŷ
aP

b

1. ロジスティック回帰モデルとグラフ

ŷ(x) =

a 1 x1 + · · · a P xP + b

ŷ =

(u)

u=~
x~
a+b

a1

・・・

x1

活性化関数 activation functio

xP

u ŷ
aP

b

バイアス
重み weight

1. 重回帰モデルとグラフ
恒等写像 identity map (何もしない id(u) = u )ŷ = u

u=~
x~
a+b

a1

・・・

x1

xP

id

u ŷ
aP

b

2. グラフを使ってモデルを設計する

id
x1
・・・

気温

xP
湿度

a11

二乗誤差関数

ŷ1

a12

b1

E1

ビールの売り上げ

交差エントロピー

aP 1

ŷ2

aP 2

b2

E2

買い物に行く確率E = E1 + E2 を最小化

3. 多層ニューラルネット（２層）

x1

(1)
a11

(2)
a11

id

ŷ1

・・・

ビールの売り上げ

xP

(1)
aP 2

(2)
a22

ŷ2
買い物に行く確率

順伝搬ニューラルネット feedforward neural network3. 多層ニューラルネット（２層）

(2)
a11

ŷ1

・・・

x1

(1)
a11

id

xP
入力層
`=0

(1)
aP 2

ŷ2

(2)
a22

中間層、隠れ層
`=1

出力層
`=2

3. 活性化関数

活性化関数

・・・

a1

u
aP

b
ユニット

3. ReLU (recti er linear unit) 活性関数

ReLU (u) =

⇢

u (u
0)
0 (u < 0)

ReLU (u)fiu4. 万能近似定理（普遍近似定理）

万能近似定理（universal approximation theorem）[Cybenko, 1989]

一層の中間層を持つニューラルネットは、幅を大きくしていくと、「どんな」関数でも近似して表現できる

4. 万能近似定理（普遍近似定理）

width = 2

width = 1024

ŷ

ŷ

x
乱数で重みを決めた様々な場合のニューラルネットの定める関数のプロット。中間層が重要 → 深さはなぜ？？

x

3. 深層ニューラルネット

1. なぜ多層化したい？：表現学習↓ この部分もデータドリブンに学習させたい（表現学習）

x1

a1

・・・

頑張って人手で特徴量エンジニ
アリングをした
後のデータ

xP

ŷ
aP

b

1. なぜ多層化したい？：表現学習

xP

a1

ŷ
・・・

・・・

x1

・・・

深い階層性により、複雑な入力データの情報をうまく処理した表現（特徴量）が得られると期待

aPb

1. なぜWideではなくDeep？
これでもいくらでも複雑なものが表現できるのでは？（万能近似定理）

xP

深い方がいい理由は完全には
・・・

・・・

x1

ŷ

わかっていない（c.f. 深さに関する万能近似定理）(深さだけの問題でもない)1. 幅の役割：ロジスティック回帰
4 hidden layers
60 weights

学習された分類境界の様子。
3 hidden layers

深さを増やしたほうが、複雑

44 weights

な表現を少ないパラメータで学べる。

2 hidden layers
28 weights

width=4
12 weights

width=16
48 weights

width=64
192 weights

width=256
768 weights

2. 深層学習の難しさ？：loss landscape

ニューラルネットという非線形なモデルの誤差関数も、普通の機械学習同様、勾配降下法で学習させます。

2. 深層学習の難しさ？：loss landscape

ニューラルネットという非線形なモデルの誤差関数も、普通の機械学習同様、勾配降下法で学習させます。

計算機物理などでは「複雑な最適化問題を勾配法で解きます」と言うと、普通は先輩から怒られること間違いなし

2. 深層学習の難しさ？：loss landscapeE

広域にわたるloss landscapeE

初期値周りのloss landscape

ソフトマックス回帰モデルにおけるクロスエントロピー誤差関数のlandscale（MNISTデータ）

2. 深層学習の難しさ？：loss landscapeE

広域にわたるloss landscapeE

初期値周りのloss landscape

ソフトマックス回帰→ 比較的単純な形で、最小値周りは綺麗な「お椀型」

2. 深層学習の難しさ？：loss landscapeE

広域にわたるloss landscapeE

初期値周りのloss landscape

多層ニューラルネット*におけるクロスエントロピー誤差関数(loss)のlandscale（MNISTデータ）→ 複雑な形状* 6層MLP 784→265→265→265→265→265→10

2. 深層学習の難しさ？：loss landscape
E

E
初期値

プラトー（平坦部）、鞍点（saddle point）、局所最小値（local minima）など、勾配降下法ではまずい領域が増える。
→ 勾配降下法で切り抜けられるか！？

2. 深層学習の難しさ？：loss landscape
良いアーキテクチャは、滑らかなランドスケープを導く→ これが訓練可能性を保証していると予想される

右のネットワークの訓練がうまくいき、よく汎

residual構造を破壊化するResNet56（56層）[H.Li, Z.Xu, G.Taylor, C.Studer, T.Goldstein, NIPS 2018]

4. ディープラーニングのための正則化1. ディープラーニングの巨大さ
深層ニューラルネットは一般に膨大なパラメータを持つ。
ロジスティック回帰

パラメータ数 ≒ 1000 = 10**3
P=1000ニューラルネット(L=11)
パラメータ数≒ 10x1000x1000+1000≒ 10**7
P=10001000… 1000→ 過学習の恐れ2. ドロップアウト DropOut

モデルのパラメータが多いので過学習しなねない→ ネットワークから不要なユニットを削除したい→ 単純に削除するとモデルが小さくなり、逆に性能低下→ ドロップアウトは、学習中だけ仮想的にネットワーク
を縮小させるアイデア
ディープラーニングの初期を支えた手法 [Hinton et al., ʻ12]

2. ドロップアウト DropOut

p ：ハイパーパラメータ（ドロップアウト率）。何割のユニットを削除するのか、という割合（0.25）。
勾配法1回目

bird
prop & backprop

ランダムに p だけユ
ニットを間引く

勾配法2回目

勾配法3回目

air
plane

bird

ランダムに p だけユ
ニットを間引く

ランダムに p だけユ
ニットを間引く

3. バッチ規格化 batch normalization

各層の出力変数の統計的な性質（平均、分散、…）は勾配法を行うたびに変わってしまう → 出力側が右往左往
勾配降下
1回

平均0.3

平均0.7

分散0.78

分散0.26

内部共変量シフト internal covariate shift

3. バッチ規格化 batch normalization

そこで各層の間に、平均・分散を一定化させるように学習する層(バッチ規格化層)を入れる

BN

BN

平均・分散を一定化。その値は学習＊実は、内部共変量シフトの防止はバッチ規格化の主要な役割ではなく、今では他の仕組みで汎化を導いていることがわかっている。

4. 深層学習自体の不思議な性質：良性過学習モデルの容量を上げることで、仮説空間に含まれる典型的な関数の滑らかさ等がより改善→より汎化

3パラメータ30パラメータ（過少適合）（過剰適合）

汎化！？

[K.Belkin, Acta Numerica (2021)]

4. 深層学習自体の不思議な性質：良性過学習モデルの容量を上げることで、仮説空間に含まれる典型的な関数の滑らかさ等がより改善→より汎化

3パラメータ30パラメータ

3000パラメータ（過少適合）（過剰適合）（汎化、現代的regime）[K.Belkin, Acta Numerica (2021)]

5. アーキテクチャデザイン

さらに、ネットワーク構造のデザインが強力な正則化効
果（のようなもの）を生み出し、深層学習の汎化能力を支えてることが知られている。[Chiyuan Zhang et al., ICLR 2017]→ Transformerの例

5. Transformer

Transformerと自然言語処理
周辺のコンテキスト情報も取り込んだ単語の表現ベクトルを作りたい（この文章におけるthisの意味ベクトル、etc）

0
z1

0
z2

0
z3

0
z4

z1

z2

z3

z4

this

is

a

pen

Transformerと自然言語処理
周辺のコンテキスト情報も取り込んだ単語の表現ベクトルを作りたい（この文章におけるthisの意味ベクトル、etc）

0
z1

アテンション機構を使って、周囲のコンテキスト情報を集約する

z1

z2

z3

z4

this

is

a

pen

Transformerと自然言語処理
周辺のコンテキスト情報も取り込んだ単語の表現ベクトルを作りたい（この文章におけるthisの意味ベクトル、etc）

0
z2

z1

z2

z3

z4

this

is

a

pen

Transformerと自然言語処理
周辺のコンテキスト情報も取り込んだ単語の表現ベクトルを作りたい（この文章におけるthisの意味ベクトル、etc）

0
z4

z1

z2

z3

z4

this

is

a

pen

Transformerと自然言語処理

0
z1 =

X

A(query = z1 , key = zi ) zii

小さなニューラルネット。queryに対するkeyの重要性の重みを推定している（気持ち）。学習
パラメータをもつのでここも訓練。

Transformerと自然言語処理
RNN等と違い、再帰的な計算はないのでどんなに長い系列に対しても計算が完全に並列化可能！！（訓練時、あるいはEncoder部分のみ）

0
z1
A(z1 , z1 ) A(z1 , z2 ) A(z1 , z3 ) A(z1 , z4 )

z1

z2

z3

z4

this

is

a

pen

言語モデルの事前学習戦略

ラベル付きデータは自然言語では収集コストが高い。
ただのラベル無しテキストならwebにたくさんある。

fi→ 教師なし事前学習がいい戦略（転移学習・ ne-tuning）

OpenAI GPT [Radford et al., ’18]
Generative Pretrained Transformers
ラベルのない文章でも文生成はできる → generative pretraining
これ は ペン です EOS

・自然言語12タスクのうち9個のタスク
でSOTAを達成
・OpenAIの研究チーム（N=12）

・1.7億パラメータ・BookCorpusデータ（7000冊の本、800M words）

SOS これ は ペン ですGPT-2 [Ranford et al., ’19]

マルチタスク学習により事前学習

P (output | input, task)
言語モデルなので、ここも文章にできる： ’translate to french’・8のzero-shotタスクのうち7個でSOTAを達成
・WebTextデータセット（800万文書から40GBのテキスト）
・N=48：15億パラメータ→ zero-shot、few-shotに強い→ 文生成に強い（GPTの事前学習の仕組み上）→ 翻訳や文理解などのタスクにはあまり強くない（一方向モデルの限界）

GPT-3[Ranford et al., ’20]

・さまざまなlow-shotタスクで極めて高い性能を達成
・仏英、独英翻訳では、zero-shotで教師ありのSOTAを凌駕
・SAT類推問題では、few-shotでsuper-human（平均受験生以上）
・Common Crawlデータセット（1T words）も使う
・N=96：1750億パラメータ・アテンションをスパース化する工夫→ BERT系の ne-tuning戦略ではなく、zero/one/few-shot戦略により、 ne-tuningでの過学習やデータ準備のコストを避ける

fi

fi

fi

→ 依然としてqueation answeringや文理解などでは双方向＋
ne-tuningアプローチには負ける（一方向モデルの限界）

プロンプト工学

プロンプトへ「答えやすい優しい問いかけ」をする工夫。良い「呪文」を探す試行錯誤。

https://arxiv.org/pdf/2107.13586.pdf

GPTのスケーリング則1 PF-day = 1015 ⇥ 24 ⇥ 60 ⇥ 60 = 8.64 ⇥ 1019 不動⼩数点演算
WebText2 datasetで訓練[OpenAI, Scaling Laws for Neural Language Models, 2020](深さや幅のような詳細にはあまり依存せず)
３スケールさえ増やせばボトルネックなくス
ケールしてゆく！まだ飽和は見られない。

GPTのスケーリング則[OpenAI, Scaling Laws for Neural Language Models, 2020]

データ効率：大きいモデルの方が少ないサンプル(と少ないステップ)
で同じ性能に到達する

GPT-4？（一昨年のスライド）

・100兆パラメータ？
“From talking to OpenAI, GPT-4 will be about 100 trillion
parameters,” Feldman says.
・訓練用の専用チップ？
・数年後？
https://www.wired.com/story/cerebras-chip-cluster-neural-networks-ai/

今週ついに公開されたが…
this report contains no further details about the architecture(including model size), hardware, training compute, dataset
construction, training method, or similar.

ChatGPT・GPT-3系のモデル（実際にはGPT-3.5シリーズ）
・GPT-3.5シリーズのベースはcode-davinci-002（Codex）
・人間の書いた出力で教師あり学習をかけたバーションがdavinci-instruct-betaやtext-davinci-002
・それに人間のフィードバックを強化学習でかけたものが
text-davinci-003（InstructGPT）。ChatGPTも同じ系統の対話データ版のものらしい。
・ChatGPT以外は既にAPIが公開されていたので、エンジニ
アリングの努力による対話に対する洗練以外は、本質的な
驚きはほとんどないのでは。
・生成モデルブームに乗ってブラウザ版を公開し、驚くべき勢いでユーザーを獲得。ビジネスインパクト大。Bingへ？

InstructGPTとRLHF
人間のフィードバックによる強化学習（RLHF）も用いる。
① プロンプトデータに、40人程の作業者が望ましい出力を実演。その出力で、GPT-3を教師あり ne-tuning（SFT）。
→ davinci-instruct-beta② モデルの入出力データをサンプリングし、最悪から最高までのラベルをアノテータがつける。このデータで報酬モデル（RM、①の最終層を外したモデルベース）を訓練。
③ この報酬モデルを使いPPO（方策勾配法の代わりに、代理目的関数を最大化）によって、①の方策を強化学習させる。
→ helpful, honest, and harmless（13B IGPT > 175B GPT-3）

fi

詳細：https://platform.openai.com/docs/model-index-for-researchers

6. 様々なライブラリについて

1. GPU (Graphics Processing Unit)への対応

ディープラーニングライブラリ
Python

cuDNN
CUDA

GPU

2. テンソルへの対応

c

値

@c
@a

c

値

b

@c

@c

@a

=1

@b

Tensor@ba

Ndarray

a

=1

c
@c
+
=1

=1

b

テンソルには、自動微分のために、ノードの値以外にも微分に関連する情報や、それらへの操作手続きも実装されている。

3. 深層学習ライブラリ小史：牧歌的な時代
2002

Torch

アカデミア・個人により開発
・メンテナンス

20

Theano2007
2011
ディープラーニング革命

2012
2013

Caffe

PyLearn2

https://www.edge-ai-vision.com/2016/01/the-caffe-deep-learning-framework-an-interview-with-the-core-developers/

3. 深層学習ライブラリ小史：戦国時代
2014
2015

Chainer

20162017

sklearn

発展・覇権争い

Keras

PyTorchCaffe2

2018
統一へ
2019

＊全ての間に強い影響関係

TensorFlow

4. PyTorch・Facebook AI Research labが開発。TorchのPython化として始まったプロジェクトが起源→自動微分部分が主に・シンプルなデザインのため、Pythonに習熟していれば簡単に（Pythonicに）使用できる（低レベルAPI）。
・豊富な情報とデバッグが容易なため、研究者・開発者の間で大人気。

5. TensorFlow2

・Google Brainにより開発。グーグル内の非公開ライブラ
リDistBeliefを置き換える形で開発され公開。
・初心者から専門家、特に製品レベルにまで対応(TFX etc)
・最近になり素晴らしいデモ・exampleが拡充
・深層学習専用ではなく、広く科学技術計算用途に使用できる柔軟性 (例：量子計算 https://www.tensor ow.org/quantum)
・勉強・使用しにくさが最近著しく改善

fl・大規模モデルをデプロイするなら多分TF

6. Keras
multibackend Keras (リファレンス実装)
・F.Cholletにより研究プロジェクトの一環として開発。
Theano、TensorFlowなどの計算をバックエンドに使い、エレガントなインターフェースを提供するため開発。

tf.Keras・TensorFlowの公式高レベルAPIとして組み込まれたKeras。
TensorFlowを利用する際にはtf.Kerasを使うことが推奨。
TensorFlowの低レベルAPIとシームレスに組み合わせることができ、自由度がさらに向上した。

おすすめ（？）
PyTorchPythonに慣れている・機械学習側にも突っ込んだ研究目
的なら一番おすすめ。たくさんの実装済みモデルが利用可。

Keras API
膨大なボイラープレートコードを毎回書くのが馬鹿馬鹿しい人向け。機械学習はたくさん回すけれども、そこが本質じゃない時は特におすすめ。抽象化度高め。

おすすめ（？）
TensorFlow２
デプロイまで考えているなら特に！推論高速化や量子化など。Kerasとシームレスに使得るので、自在な粒度も魅力。
JAX/Flax
関数型風、モデルとデータ（パラメータ）を切り分ける思想（Flax）。GPU/TPU向けに関数をJITコンパイル（実行時に、ハード固有のXLAコンパイル）。JIT後は訓練が早い。vampでバッチ化も容易。などなど魅力がいろ
いろ。これからの若者向け？

その他
HuggingFace Transformers
Transformerモデルを多量に集めたライブラリ。必須。
PyTorch/TensorFlow/JAX対応。

計算処理の観点からの層

(1)

u
~
~
z

(1)

(2)

u
~

y
~ˆ =

(1)
~
+b

=~
xA

(1)

=

(1)

(~
u

)

=~
z

(1)

(2)

(~
u

(2)

A

)

A(1)
~b(1)

(2)
~
+b

A(2)
~b(2)

特徴量ベクトル単位での線形変換（アフィン変換）と活性化関数での変換処理（層）に分けられる。

PyTorch①：モデルの作成
Torch.nn.Moduleクラスを継承し、自身のモデルをクラスとして実装するPyTorch①：モデルの作成
Torch.nn.Moduleクラスを継承し、自身のモデルをクラスとして実装するclass MyNet(torch.nn.Module):
def __init__(self):
super(MyNet, self).__init__()
順伝播に使用する層を用意
def forward(self, x):順伝播計算の式
return x

PyTorch①：モデルの作成
Torch.nn.Moduleクラスを継承し、自身のモデルをクラスとして実装する
sigmoid

10

Dense

ReLU

Dense

input
2

1

PyTorch①：モデルの作成
Torch.nn.Moduleクラスを継承し、自身のモデルをクラスとして実装する
そのクラスのインスタンスとして、一個のモデルを実際に作成する：PyTorch②モデルの訓練
以下の自動微分計算をiteration回数だけ繰り返す

PyTorch②モデルの訓練
以下の自動微分計算をiteration回数だけ繰り返す

学習モード

順伝播、計算グラフ構築
誤差関数の計算
計算グラフにおいて、勾配をゼロ初期化
自動微分
パラメータ更新