---
title: フリーソフトでつくる音声認識システム(第2版) 第5章
tags:  #パターン認識 #勾配降下法 #誤差最小化法  
author: [荒木 雅弘](https://www.docswell.com/user/MasahiroAraki)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/47MVYZD37W.jpg?width=480
description: フリーソフトでつくる音声認識システム(第2版) 第5章 by 荒木 雅弘
published: August 09, 23
canonical: https://www.docswell.com/s/MasahiroAraki/5Q8X63-2023-08-09-095029
---
# Page. 1

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

5. 誤差をできるだけ小さくしよう
5.1 誤差評価に基づく学習とは
5.2 解析的な解法
5.3 勾配降下法
5.4 パーセプトロンの学習規則との比較
荒木雅弘: 『フリーソフトでつくる
音声認識システム（第2版）』（森北
出版，2017年）
スライドとJupyter notebook
サポートページ


# Page. 2

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

5. 誤差をできるだけ小さくしよう
パーセプトロンの学習規則の欠点
学習データが線形分離不可能である場合には適用できない
学習データが高次元である場合、線形分離可能性を事前に確認するのは一般には困難
誤差最小化法
評価関数で定義される「識別器の出力」と「正解」との誤差を最小化する
学習データが線形分離不可能な場合にも適用可能


# Page. 3

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

5.1 誤差評価に基づく学習とは (1/3)
χ = {x1 , … , xn }
あるデータ xp ∈ χ に対する線形識別関数 gi (xp ) = w Ti xp (i
学習データ:
​
​
​
​
​
​
​
= 1, … , c) の出力
(g1 (xp ), … , gc (xp ))T
​
​
​
​
xp に対する教師ベクトル（教師信号）
​
(b1p , … , bcp )T
​
​
正解クラスの要素が 1、他は 0
入力
xp に対する「識別関数の出力」と「教師信号」との差が最小となるように、識別
関数の重みベクトル w i を定める
​
​


# Page. 4

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

5.1 誤差評価に基づく学習とは (2/3)
i に関する誤差 : ϵip = gi (xp ) − bip
ϵip の全クラス (i = 1, … , c) に対する二乗和を評価関数 Jp とする
クラス
​
​
​
​
​
c
1
Jp = ∑ ϵ2ip
2 i=1
​
​
​
​
c
1
= ∑{gi (xp ) − bip }2
2
​
​
​
​
​
​
i=1
c
=
1
∑(wTi xp − bip )2
2
​
​
i=1
​
​
​
​


# Page. 5

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

5.1 誤差評価に基づく学習とは (3/3)
全データに対する二乗誤差
J
n
J = ∑ Jp
​
​
p=1
n
c
1
= ∑ ∑{gi (xp ) − bip }2
2 p=1 i=1
​
​
​
n
​
​
​
​
​
c
1
= ∑ ∑(wTi xp − bip )2
2
​
​
​
​
​
​
p=1 i=1
w1 , … , wc を求める
以後2クラス問題として、g(x) = g1 (x) − g2 (x) = w T x とする
この値を最小にする
​
​
​
教師信号
b : クラス1は1、クラス2は-1
​


# Page. 6

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

5.2 解析的な解法 (1/2)
n × d 行列） : X = (x1 , … , xn )T
教師信号ベクトル（全教師信号をまとめた n 次元ベクトル） : b = (b1 , … , bn )T
パターン行列（全特徴ベクトルをまとめた
​
​
​
二乗誤差を評価関数とする
1
J = ∥Xw − b∥2
2
​
評価関数の勾配が 0（極小値）となる
w を求める
∂J
= X T (Xw − b) = 0
∂w
​
​


# Page. 7

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

5.2 解析的な解法 (2/2)
解くべき式 :
X T Xw = X T b
最小二乗法
X T X が正則であるとき、以下のように解（識別関数の重み）が求まる
w = (X T X)−1 X T b
解が求まらない可能性
X T X が正則であるとは限らない
n, d が大きい場合は逆行列を求める計算が大変


# Page. 8

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

5.3 勾配降下法
5.3.1 勾配降下法による最適化
w を J の傾き（微分係数）の逆方向に、学習系数 ρ で徐々に修正する
∂J
w =w−ρ
∂w
′
勾配降下法のイメージ
​


# Page. 9

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

5.3.2 Widrow-Hoffの学習規則 (1/2)
勾配ベクトルの定義
重みベクトル
w = (w0 , … , wd ) の関数 J(w) に対して、勾配ベクトルを以下のように
​
​
定義
∂J
∂J
∂J T
=(
,…,
)
∇J =
∂w
∂w0
∂wd
​
​
​
​
​


# Page. 10

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

5.3.2 Widrow-Hoffの学習規則 (2/2)
修正式の導出
n
∂J
∂Jp
=∑
∂w
∂w
p=1
​
​
​
​
n
​
= ∑(wT xp − bp )xp
​
​
​
​
p=1
w′ = w − ρ
∂J
∂w
​
n
​
= w − ρ ∑ ( w xp − b p ) xp
​
T
​
​
​
​
p=1
全データを用いた重みの修正を1エポックとよぶ
Widrow-Hoff の学習規則は1エポックで1回の重み修正が行われる


# Page. 11

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

5.3.3 確率的勾配降下法 (1/3)
勾配降下法の問題点
データ数やパラメータ数が多いと、1回の重み更新（=1エポック）に時間がかかる
誤差最小に収束するには、多くのエポックが必要
確率的勾配降下法
個々のデータの識別結果に基づき重みを更新
1エポックで
n 回重み修正が行われる
データは1エポック毎に順番をシャッフルし、出現順序をランダム化する
データが来る毎に学習するオンライン学習に適用が可能
更新式
w′ = w − ρ(wT xp − bp )xp
​
​
​


# Page. 12

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

5.3.3 確率的勾配降下法 (2/3)
ミニバッチ法
全データの誤差を用いて修正方向を決める方法をバッチ法とよぶ
これに対して確率的勾配降下法は、1つのデータだけで修正方向を決める
解への収束が安定しない
これらの中間的手法として、数十～数百個のデータで誤差を計算し、修正方向を決める方法
をミニバッチ法とよぶ
データは1エポック毎に順番をシャッフルし、エポック毎にミニバッチを構成するデータが異なるよ
うにする
バッチサイズを
s とすると、1エポックで n/s 回重み修正が行われる
確率的勾配降下法よりも収束が安定する
GPU (graphics processing unit) を用いた行列の一括演算と相性がよい


# Page. 13

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

5.3.3 確率的勾配降下法 (3/3)
デモ： https://playground.tensorflow.org/
HIDDEM LAYERS:0, Activation:Linear, DATA:Gaussian, Noise:25, Batch
size:10


# Page. 14

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

5.4 パーセプトロンの学習規則との比較
5.4.1 パーセプトロンの学習規則を導く
更新式の導出
確率的勾配降下法において
教師信号
b を正解のときは1、不正解は0とする
識別関数
g(x) = wT x の後ろに閾値論理ユニットを置き、出力を0または1に制限する
誤識別のパターン
重みの更新規則
→ 誤差評価に基づく学習は、パーセプトロンの学習規則を特別な場合として含む


# Page. 15

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

5.4.2 着目するデータの違い
パーセプトロンの学習規則
識別関数、教師信号ともに２値
全学習データに対して、識別関数の出力と教師信号が一致するまで重みの修正を繰り返す
学習データが線形分離不可能な場合は収束しない
誤識別を起こすデータに着目している
誤差評価に基づく学習
識別関数の出力を連続値とし、教師信号との二乗誤差の総和を最小化
学習データが線形分離不可能な場合でも収束が保証されている
学習データが線形分離可能な場合でも誤識別が 0 になるとは限らない
全学習データに着目している


# Page. 16

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

まとめ
誤差評価に基づく学習
識別関数の出力と教師信号の二乗誤差の総和を最小化
解析的な解法
データ数が多くなると、計算量が膨大になる
勾配降下法
さまざまな工夫により、解析的な解法と同等の精度で短時間で解を求めることができる
Jupyter notebook


