【ゼロから作るDeap Learning】4.5~4.6

>100 Views

May 26, 25

スライド概要

profile-image

AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

2025年度前期輪読会 ゼロから作るDeepLearning #4 (5/26) 学習アルゴリズム 京都大学理学部数理科学系 3回 千葉 一世 0

2.

アジェンダ ◼ 学習の手順 ◼ TwoLayerNet ◼ 学習の実装 1

3.

学習の手順 ⚫ 学習の手順 1. データを学習用とテスト用に分割 2. ネットワークの初期化 3. 学習用データからミニバッチをランダムに選ぶ 4. ミニバッチの各重みに対する損失関数の勾配を数値微分で計算 5. パラメータを勾配方向に学習率分更新する 6. 3~5を繰り返す 7. 定期的にテストデータで評価 確率的勾配降下法 (SGD) データ数が多いと、データ全体の勾配を計算することが難しくなるため、 データ全体ではなくランダムに取ったミニバッチ毎に勾配を取り、更新していく手法 計算効率が良く、期待値として全体の勾配に一致する。 2

4.

アジェンダ ◼ 学習の手順 ◼ TwoLayerNet ◼ 学習の実装 実装コード (GoogleColab) Pytorch版 (ChatGPT作) 3

5.

TwoLayerNet ネットワークのパラメータ・推論・損失計算・勾配計算・評価などをクラスで管理 変数 詳細 params パラメータを保持するdictionary型の変数 (インスタンス変数) params = {“W1” : ~, “b1” : ~, “W2” : ~, “b2” : ~} grads paramsと同じ形状で勾配を保持するdictionary型の変数 (メソッドの返り値) メソッド 詳細 __init__ パラメータの初期化を行う predict 推論を行う 入力は画像データで、各ラベルの確率値を返す loss 損失を計算 accuracy 認識精度を計算 numetrical_gradient 数値微分によって勾配を計算し、gradsを返す gradient 誤差逆伝播法による高速な勾配計算 4

6.

TwoLayerNet • __init__(self, input_size, hidden_size, output_size, weight_init_std) 5

7.

TwoLayerNet • predict(self, x, t) 6

8.

TwoLayerNet • loss(self, x, t) • accuracy(self, x, t) 7

9.

TwoLayerNet • numerical_gradient(self, x, t) 8

10.

アジェンダ ◼ 学習の手順 ◼ TwoLayerNet ◼ 学習の実装 9

11.

学習の実装 10

12.

学習の実装 11

13.

モデルの評価 • 学習時のlossと、学習データ・テストデータでの精度の推移を確認する iterと共にlossが下がっていき、 学習は順調に進んでいることが分かる epochと共に両データとも精度は上がる しかし、学習しすぎると過学習につながる 学習データで99.3%, テストデータで97.3% 12