---
title: 【ゼロから作るDeap Learning】3.1~3.4
tags:  #ニューラルネットワーク #活性化関数  
author: [京都大学人工知能研究会KaiRA](https://convert.docswell.com/user/kyoto-kaira)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/8ED39MR87G.jpg?width=480
description: 【ゼロから作るDeap Learning】3.1~3.4 by 京都大学人工知能研究会KaiRA
published: May 12, 25
canonical: https://convert.docswell.com/s/kyoto-kaira/K1RN8G-2025-05-12-200607
---
# Page. 1

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

2025年度前期輪読会 #3 (2025/5/12)
第3章 ニューラルネットワーク(~3.4節まで)
京都大学文学部倫理学研究室 B3
竹田 章汰
0


# Page. 2

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

アジェンダ
◼ パーセプトロンからニューラルネットワークへ
◼ 活性化関数
◼ 多次元配列の計算
◼ 3層ニューラルネットワークの実装
◼ 出力層の設計
◼ 手書き数字認識
1


# Page. 3

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

パーセプトロンからニューラルネットワークへ
ニューラルネットワークの基本形を図示し、パーセプトロンとの共通点・相違点を掴む
ニューラルネットワークの例
中間層
入力層
出力層
パーセプトロンとの
共通点
相違点
⚫ ニューロンのつなが ⚫ 適切な重みパラメー
り方
タをデータから自動
で学習できる
⚫ 複雑な関数・処理も、
(理論上)表現できる ↑機械学習のキモ！
2


# Page. 4

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

パーセプトロンからニューラルネットワークへ
パーセプトロンの信号伝達方法を振り返り、ニューラルネットワークへの導入をする
パーセプトロンの復習
1
𝑥1
𝑏
𝑤1
𝑦
𝑥2
𝑥1
𝑦
𝑤2
𝑥2
3.1
𝑤1
0 𝑏 + 𝑤1 𝑥1 + 𝑤2 𝑥2 ≤ 0
𝑦=ቊ
1 𝑏 + 𝑤1 𝑥1 + 𝑤2 𝑥2 &gt; 0
𝑤2
3.2
𝑦 = ℎ 𝑏 + 𝑤1 𝑥1 + 𝑤2 𝑥2
3.3
0 (𝑥 ≤ 0)
ℎ 𝑥 =ቊ
1 (𝑥 &gt; 0)
3


# Page. 5

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

パーセプトロンからニューラルネットワークへ
活性化関数を導入する
活性化関数
入力信号の総和を出力信号に変換する関数
→前項のℎ 𝑥
3.3
0 (𝑥 ≤ 0)
ℎ 𝑥 =ቊ
1 (𝑥 &gt; 0)
→右の図のように活性化関数によるプロセスは
明示化できる
1
𝑏
𝑥1
𝑥2
𝑤1
𝑎
ℎ( )
y
𝑤2
→式(3.3)で表される活性化関数は「ステップ関数」
→パーセプトロンでは、活性化関数にステップ関数を
使用している！！
3.4
𝑎 = 𝑏 + 𝑤1 𝑥1 + 𝑤2 𝑥2
3.5
𝑦=ℎ 𝑎
4


# Page. 6

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

活性化関数
ニューラルネットワークで使用される活性化関数「シグモイド関数」を導入する
シグモイド関数
シグモイド関数(sigmoid function)
3.6
1
ℎ 𝑥 =
1 + exp(−𝑥)
→ニューラルネットワークとパーセプトロンの
主な違いは、この活性化関数のみ
→ニューロンが多層につながる構造や、信号の
伝達方法は基本的に同じ
シグモイド関数(sigmoid function)のグラフ
5


# Page. 7

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

活性化関数
ステップ関数とシグモイド関数を比較する
ステップ関数とシグモイド関数の比較
ステップ関数との
共通点
⚫ 入力が小さいときに
は0に近く、入力が
大きいときには1に
近い(0と1の間の値
しかとらない)
相違点
⚫ 「滑らかさ」
⚫ 連続な実数値をとる
⚫ 非線形関数
→ニューラルネットワークには必ず、非線形関数
を活性化関数に用いる必要がある
ステップ関数とシグモイド関数を重ねて描画
(破線はステップ関数)
→線形関数を用いると、どれだけ層を深くしても、
「隠れ層のないネットワーク」と同じ働きしかで
きない
6


# Page. 8

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

活性化関数
ReLU関数を紹介する
ReLu関数
ReLu関数(ReLU function)
→最近のニューラルネットワークで主に用いら
れている活性化関数
𝑥 (𝑥 &gt; 0)
ℎ 𝑥 =ቊ
0 (𝑥 ≤ 0)
→入力が0を超えていれば、その入力をそのまま
出力し、0以下ならば0を出力する関数
7


# Page. 9

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

多次元配列の計算
NumPyによる多次元配列の計算を学び、ニューラルネットワークの実装に備える
多次元配列と行列の積
行列の積の直観的な計算方法
→行列とは2次元配列のこと
8


# Page. 10

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

3層ニューラルネットワークの実装
ニューラルネットワークの処理の説明のため、新たに記号を導入する
記号の定義
(1)
𝑎1
𝑥1
左図は入力層𝑥2 のニューロンから、次層の
(1)
ニューロン𝑎1 への重みだけを取り上げたもの
重みや隠れ層のニューロンの右上にある(1)は第一層
であることを示している
(1)
𝑤12
(1)
𝑎2
𝑥2
(1)
𝑤12
←第一層の重み
← 「1」は次層の1番目のニューロン
「2」は前層の2番目のニューロン
(1)
𝑎3
9


# Page. 11

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

3層ニューラルネットワークの実装
3層ニューラルネットワークの実装を、段階を追って行う
3層ニューラルネットワーク
左図のような3層ニューラルネットワークを
実装していく
𝑥1
𝑦1
𝑥2
𝑦2
→ 各層における信号伝達を、順に実装する
10


# Page. 12

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

3層ニューラルネットワークの実装
入力層から第一層目への信号伝達を行列の積で表す
入力層から第一層目
左図より
(1)
1
(1)
𝑏1
(1)
𝑎1
(1)
𝑤11
𝑥1
(1)
𝑎2
𝑥2
(1)
(1)
(1)
𝑎1 = 𝑤11 𝑥1 + 𝑤12 𝑥2 + 𝑏1
また、行列の積を用いて第1層目の重み付き和を
𝐀(1) = 𝐗𝐖 (1) + 𝐁 (1)
と表せる
但し、
(1)
(1)
(1)
(1)
(1)
(1)
𝐗 = 𝑥1 𝑥2 𝐁 (1) = 𝑏1 𝑏2 𝑏3
𝐀(1) = 𝑎1 𝑎2 ここに数式を入力します。
𝑎3
(1)
𝑤12
(1)
𝑎3
𝐖 (1) =
(1)
(1)
(1)
(1)
(1)
(1)
𝑤11 𝑤21 𝑤31
𝑤12 𝑤22 𝑤32
11


# Page. 13

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

3層ニューラルネットワークの実装
活性化関数によるプロセスを図示する
第一層目の活性化関数
左図に示す通り、隠れ層での重み付き和を𝑎
で表し、活性化関数で変換された信号をzで
表す
(1)
𝑏1
1
(1)
𝑎1
ℎ( )
(1)
𝑧1
(1)
図中のh()は活性化関数であり、ここではシ
グモイド関数を用いる
𝑤11
𝑥1
(1)
𝑎2
ℎ( )
(1)
𝑤12
𝑥2
(1)
𝑎3
ℎ( )
(1)
𝑧2
(1)
𝑧3
→前項と本項のプロセスと全く同じように、
第一層目から第二層目、第二層目から出力
層への信号伝達も表せる
→ただし、出力層の活性化関数だけ、シグ
モイド関数ではなく恒等関数σ()を用いる
12


# Page. 14

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

3層ニューラルネットワークの実装
実装のまとめ
実装の概略図
1
1
ℎ( )
ℎ( )
σ( )
𝑦1
𝑥1
左図の出力層にあるσ()が前
項で述べた恒等関数
→ 入力をそのまま出力する
関数
ℎ( )
ℎ( )
σ( )
𝑦2
𝑥2
→実際にコードを書いて実
装してみよう
ℎ( )
13


