---
title: 【ゼロから作るDeap Learning】4.5~4.6
tags:  #sgd  
author: [京都大学人工知能研究会KaiRA](https://convert.docswell.com/user/kyoto-kaira)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/V7P4X2N2E8.jpg?width=480
description: 【ゼロから作るDeap Learning】4.5~4.6 by 京都大学人工知能研究会KaiRA
published: May 26, 25
canonical: https://convert.docswell.com/s/kyoto-kaira/522PE7-2025-05-26-195423
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/V7P4X2N2E8.jpg)

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


# Page. 2

![Page Image](https://bcdn.docswell.com/page/2JVXLDKX7Q.jpg)

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


# Page. 3

![Page Image](https://bcdn.docswell.com/page/5EGVXYQREL.jpg)

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


# Page. 4

![Page Image](https://bcdn.docswell.com/page/4JQ68MKYJP.jpg)

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


# Page. 5

![Page Image](https://bcdn.docswell.com/page/K7442VPZ71.jpg)

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


# Page. 6

![Page Image](https://bcdn.docswell.com/page/LJ14M39DJG.jpg)

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


# Page. 7

![Page Image](https://bcdn.docswell.com/page/GJWX3PQ8E2.jpg)

TwoLayerNet
• predict(self, x, t)
6


# Page. 8

![Page Image](https://bcdn.docswell.com/page/4EZ6VKW9E3.jpg)

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


# Page. 9

![Page Image](https://bcdn.docswell.com/page/Y7625QGDEV.jpg)

TwoLayerNet
• numerical_gradient(self, x, t)
8


# Page. 10

![Page Image](https://bcdn.docswell.com/page/G752YRV874.jpg)

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


# Page. 11

![Page Image](https://bcdn.docswell.com/page/9J24GD3V7R.jpg)

学習の実装
10


# Page. 12

![Page Image](https://bcdn.docswell.com/page/DEYMV21QEM.jpg)

学習の実装
11


# Page. 13

![Page Image](https://bcdn.docswell.com/page/VJNWM822J8.jpg)

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


