SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Python機械学習プログラミング
読み会
第2章
分類問題—単純な機械学習のアルゴリズムのトレーニング
1
[第2版]
基盤 江口春紀
目次
● 人工ニューロン — 機械学習の前史
● パーセプトロンの学習アルゴリズムをPythonで実装する
● Irisデータセットでのパーセプトロンモデルのトレーニング
● ADALINEと学習の収束
● 勾配降下法によるコスト関数の最小化
● 大規模な機械学習と確率的勾配降下法
2
3
人工ニューロン — 機械学習の前史
人工ニューロン — 機械学習の前史
● MCPニューロン
● ニューロンは脳内の神経細胞で化学信号や電気信号の処理・伝達に関わっている。
● 1943年にWarren McCullochとWalter Pittsが発表した、簡略化した脳細胞の概念。
● Frank RosenblattがMCPニューロンモデルに基づくパーセプトロンの学習規則に
関する概念を発表
4
人工ニューロンの正式な定義
5
決定関数φ(z)の出力 クラス判別の使用例
パーセプトロンの学習規則
● パーセプトロンモデル
● 脳内の1つのニューロンの働きを模倣していて、要素還元主義的なアプローチである。
6
● Rosenblattのパーセプトロンの初期の学習規則
1. 重みを0または値の小さい乱数で初期化する。
2. トレーニングサンプル ごとに次の手順を実行する。
1. 出力値 を計算する。
2. 重みを更新する。
パーセプトロンの学習規則
7
正解クラス 予測クラス● パーセプトロンモデルがクラスラベルを
正しく予測した場合
● パーセプトロンモデルがクラスラベルを
間違えて予測した場合
目的とするクラスの方向に
重みが向かうように調整される
パーセプトロンの学習規則
8
パーセプトロンの収束は
必ず保証されるわけではない
パーセプトロンの学習規則
● パーセプトロンの基本概念
9
10
パーセプトロンの学習アルゴリズムを
Pythonで実装する
パーセプトロンの学習アルゴリズムをPythonで実装する
● この節でやること
● 前節で説明した、Rosenblattのパーセプトロンの学習規則を Pythonで
実装しIrisデータセットに適用する。
● オブジェクト指向のパーセプトロンAPIの概要
● パーセプトロンのインターフェイスを Pythonのクラスとして定義する。
fitメソッドで学習を行い、 predictメソッドで予測を行う。
11
パーセプトロンの学習アルゴリズムをPythonで実装する
● 重みの乱数初期化
● 平均0.0、標準偏差0.01の正規分布を使用
● 重みが0で初期化されていると学習率の影響を受けるのは、
重みベクトルの大きさだけ となる。(ベクトルの向きは変わらない)
12
13
Irisデータセットでの
パーセプトロンモデルのトレーニング
Irisデータセットでのパーセプトロンモデルのトレーニング
● 実装内容
● Irisデータセットから、SetosaとVersicolorの2クラスを使用。
多クラス分類の場合は一対全 (One-versus-All)の手法がある。
● 「がく片の長さ」と「花びらの長さ」の 2つの特徴量を使用。
14
UCI Machine Learning Repository: https://archive.ics.uci.edu/ml/index.php
Irisデータセットでのパーセプトロンモデルのトレーニング
● 結果
● SetosaとVersicolorを完全に分類することができた。
● 6Epochsで学習が収束した。
15
16
ADALINEと学習の収束
ADALINEと学習の収束
● ADALINE
● Bernard Widrowと学生のTedd Hoffが、
パーセプトロンアルゴリズムの発表された数年後に発表した。
● 連続値のコスト関数を定義して、最小化していくもので、
機械学習アルゴリズムの土台となっている。
17
18
勾配降下法によるコスト関数の最小化
勾配降下法によるコスト関数の最小化
● 目的関数(最小化したいコスト関数)
● ADALINEでは、重みの学習に用いるコスト関数 Jを定義する。
それらの重みは、活性化関数の出力と正解ラベルとの誤差平方和 (Sum-ofSquared Error)
として学習される。
● 連続値の線形活性化関数
● 単位ステップ関数とは違い、コスト関数が微分可能である。
● 凸関数なので、勾配降下法を用いてコスト関数を最小化する重みを見つけることができる。
19
勾配降下法によるコスト関数の最小化
● 重みの更新
20
勾配降下法によるコスト関数の最小化
21
重みの更新にステップ関数の
出力を使っている
何もしていない
ADALINE パーセプトロン
勾配降下法によるコスト関数の最小化
● 結果(2つの学習率を使って比較)
● 学習率が大きい左は 発散してしまっている。
● 学習率が小さいと収束に向かっているが、収束するためには Epoch数が足りていない。
22
特徴量のスケーリングを通じて勾配降下法を改善する
● 標準化(Standardization)
● このスケーリング手法はデータに標準正規分布の特性を与える。
● 各特徴量の平均をずらし、中心が 0になるようにして、標準偏差を 1にする。
23
特徴量のスケーリングを通じて勾配降下法を改善する
● 標準化適応後の結果
● 全てのサンプルが正しく分類された。
● 誤差平方根が0になるわけではない。
24
25
大規模な機械学習と確率的勾配降下法
大規模な機械学習と確率的勾配降下法
● バッチ勾配降下法
● トレーニングデータセット全体から計算されたコスト勾配を使って、
コスト関数を最小化する。
● 1ステップごとにトレーニングデータ全体を再評価する必要があるので、
計算コストが高くなる可能性がある。
● 確率的勾配降下法
● トレーニングサンプルごとに重みの更新を行う。
● 重みの更新頻度が高いので収束が速くなる。
● Epochごとにデータをランダムに並び替えて循環を避ける必要がある。
● オンライン学習ができる。
26
大規模な機械学習と確率的勾配降下法
27
AdalineSGD AdalineBGD
大規模な機械学習と確率的勾配降下法
● AdalineSGDの結果
● 平均コストの減少が速い。
28
まとめ
● パーセプトロンの実装
● 二値分類
● ADALINEの実装
● 勾配降下法(バッチ勾配降下法・確率的勾配降下法 )
● 特徴量のスケーリング
29

Weitere ähnliche Inhalte

Was ist angesagt?

Deep Learning による視覚×言語融合の最前線
Deep Learning による視覚×言語融合の最前線Deep Learning による視覚×言語融合の最前線
Deep Learning による視覚×言語融合の最前線Yoshitaka Ushiku
 
第15回 配信講義 計算科学技術特論A(2021)
第15回 配信講義 計算科学技術特論A(2021)第15回 配信講義 計算科学技術特論A(2021)
第15回 配信講義 計算科学技術特論A(2021)RCCSRENKEI
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理Taiji Suzuki
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編Fixstars Corporation
 
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAttentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAGIRobots
 
最適輸送入門
最適輸送入門最適輸送入門
最適輸送入門joisino
 
感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...
感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...
感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...Masatoshi Yoshida
 
幾何を使った統計のはなし
幾何を使った統計のはなし幾何を使った統計のはなし
幾何を使った統計のはなしToru Imai
 
数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理Taiji Suzuki
 
[DL輪読会]Focal Loss for Dense Object Detection
[DL輪読会]Focal Loss for Dense Object Detection[DL輪読会]Focal Loss for Dense Object Detection
[DL輪読会]Focal Loss for Dense Object DetectionDeep Learning JP
 
ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定Akira Masuda
 
クラシックな機械学習の入門  11.評価方法
クラシックな機械学習の入門  11.評価方法クラシックな機械学習の入門  11.評価方法
クラシックな機械学習の入門  11.評価方法Hiroshi Nakagawa
 
統計的学習の基礎 第2章後半
統計的学習の基礎 第2章後半統計的学習の基礎 第2章後半
統計的学習の基礎 第2章後半Prunus 1350
 
スパースモデリング入門
スパースモデリング入門スパースモデリング入門
スパースモデリング入門Hideo Terada
 
金融情報における時系列分析
金融情報における時系列分析金融情報における時系列分析
金融情報における時系列分析Fujio Toriumi
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化Miyoshi Yuya
 
FeUdal Networks for Hierarchical Reinforcement Learning
FeUdal Networks for Hierarchical Reinforcement LearningFeUdal Networks for Hierarchical Reinforcement Learning
FeUdal Networks for Hierarchical Reinforcement Learning佑 甲野
 
数式を使わずイメージで理解するEMアルゴリズム
数式を使わずイメージで理解するEMアルゴリズム数式を使わずイメージで理解するEMアルゴリズム
数式を使わずイメージで理解するEMアルゴリズム裕樹 奥田
 

Was ist angesagt? (20)

Deep Learning による視覚×言語融合の最前線
Deep Learning による視覚×言語融合の最前線Deep Learning による視覚×言語融合の最前線
Deep Learning による視覚×言語融合の最前線
 
第15回 配信講義 計算科学技術特論A(2021)
第15回 配信講義 計算科学技術特論A(2021)第15回 配信講義 計算科学技術特論A(2021)
第15回 配信講義 計算科学技術特論A(2021)
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
 
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAttentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
 
最適輸送入門
最適輸送入門最適輸送入門
最適輸送入門
 
画像処理の高性能計算
画像処理の高性能計算画像処理の高性能計算
画像処理の高性能計算
 
感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...
感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...
感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...
 
幾何を使った統計のはなし
幾何を使った統計のはなし幾何を使った統計のはなし
幾何を使った統計のはなし
 
数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理
 
[DL輪読会]Focal Loss for Dense Object Detection
[DL輪読会]Focal Loss for Dense Object Detection[DL輪読会]Focal Loss for Dense Object Detection
[DL輪読会]Focal Loss for Dense Object Detection
 
ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定
 
クラシックな機械学習の入門  11.評価方法
クラシックな機械学習の入門  11.評価方法クラシックな機械学習の入門  11.評価方法
クラシックな機械学習の入門  11.評価方法
 
統計的学習の基礎 第2章後半
統計的学習の基礎 第2章後半統計的学習の基礎 第2章後半
統計的学習の基礎 第2章後半
 
スパースモデリング入門
スパースモデリング入門スパースモデリング入門
スパースモデリング入門
 
金融情報における時系列分析
金融情報における時系列分析金融情報における時系列分析
金融情報における時系列分析
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
 
FeUdal Networks for Hierarchical Reinforcement Learning
FeUdal Networks for Hierarchical Reinforcement LearningFeUdal Networks for Hierarchical Reinforcement Learning
FeUdal Networks for Hierarchical Reinforcement Learning
 
数式を使わずイメージで理解するEMアルゴリズム
数式を使わずイメージで理解するEMアルゴリズム数式を使わずイメージで理解するEMアルゴリズム
数式を使わずイメージで理解するEMアルゴリズム
 
Rで学ぶロバスト推定
Rで学ぶロバスト推定Rで学ぶロバスト推定
Rで学ぶロバスト推定
 

Mehr von Haruki Eguchi

[第2版]Python機械学習プログラミング 第16章
[第2版]Python機械学習プログラミング 第16章[第2版]Python機械学習プログラミング 第16章
[第2版]Python機械学習プログラミング 第16章Haruki Eguchi
 
[第2版]Python機械学習プログラミング 第15章
[第2版]Python機械学習プログラミング 第15章[第2版]Python機械学習プログラミング 第15章
[第2版]Python機械学習プログラミング 第15章Haruki Eguchi
 
[第2版]Python機械学習プログラミング 第14章
[第2版]Python機械学習プログラミング 第14章[第2版]Python機械学習プログラミング 第14章
[第2版]Python機械学習プログラミング 第14章Haruki Eguchi
 
[第2版]Python機械学習プログラミング 第13章
[第2版]Python機械学習プログラミング 第13章[第2版]Python機械学習プログラミング 第13章
[第2版]Python機械学習プログラミング 第13章Haruki Eguchi
 
[第2版]Python機械学習プログラミング 第12章
[第2版]Python機械学習プログラミング 第12章[第2版]Python機械学習プログラミング 第12章
[第2版]Python機械学習プログラミング 第12章Haruki Eguchi
 
[第2版]Python機械学習プログラミング 第11章
[第2版]Python機械学習プログラミング 第11章[第2版]Python機械学習プログラミング 第11章
[第2版]Python機械学習プログラミング 第11章Haruki Eguchi
 
[第2版]Python機械学習プログラミング 第12章
[第2版]Python機械学習プログラミング 第12章[第2版]Python機械学習プログラミング 第12章
[第2版]Python機械学習プログラミング 第12章Haruki Eguchi
 
[第2版]Python機械学習プログラミング 第10章
[第2版]Python機械学習プログラミング 第10章[第2版]Python機械学習プログラミング 第10章
[第2版]Python機械学習プログラミング 第10章Haruki Eguchi
 
[第2版]Python機械学習プログラミング 第9章
[第2版]Python機械学習プログラミング 第9章[第2版]Python機械学習プログラミング 第9章
[第2版]Python機械学習プログラミング 第9章Haruki Eguchi
 
[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章Haruki Eguchi
 
[第2版]Python機械学習プログラミング 第7章
[第2版]Python機械学習プログラミング 第7章[第2版]Python機械学習プログラミング 第7章
[第2版]Python機械学習プログラミング 第7章Haruki Eguchi
 
[第2版]Python機械学習プログラミング 第6章
[第2版]Python機械学習プログラミング 第6章[第2版]Python機械学習プログラミング 第6章
[第2版]Python機械学習プログラミング 第6章Haruki Eguchi
 
[第2版] Python機械学習プログラミング 第5章
[第2版] Python機械学習プログラミング 第5章[第2版] Python機械学習プログラミング 第5章
[第2版] Python機械学習プログラミング 第5章Haruki Eguchi
 
[第2版] Python機械学習プログラミング 第4章
[第2版] Python機械学習プログラミング 第4章[第2版] Python機械学習プログラミング 第4章
[第2版] Python機械学習プログラミング 第4章Haruki Eguchi
 
[第2版] Python機械学習プログラミング 第3章(5節~)
[第2版] Python機械学習プログラミング 第3章(5節~)[第2版] Python機械学習プログラミング 第3章(5節~)
[第2版] Python機械学習プログラミング 第3章(5節~)Haruki Eguchi
 
[第2版] Python機械学習プログラミング 第3章(~4節)
[第2版] Python機械学習プログラミング 第3章(~4節)[第2版] Python機械学習プログラミング 第3章(~4節)
[第2版] Python機械学習プログラミング 第3章(~4節)Haruki Eguchi
 
[第2版] Python機械学習プログラミング 第1章
[第2版] Python機械学習プログラミング 第1章[第2版] Python機械学習プログラミング 第1章
[第2版] Python機械学習プログラミング 第1章Haruki Eguchi
 

Mehr von Haruki Eguchi (17)

[第2版]Python機械学習プログラミング 第16章
[第2版]Python機械学習プログラミング 第16章[第2版]Python機械学習プログラミング 第16章
[第2版]Python機械学習プログラミング 第16章
 
[第2版]Python機械学習プログラミング 第15章
[第2版]Python機械学習プログラミング 第15章[第2版]Python機械学習プログラミング 第15章
[第2版]Python機械学習プログラミング 第15章
 
[第2版]Python機械学習プログラミング 第14章
[第2版]Python機械学習プログラミング 第14章[第2版]Python機械学習プログラミング 第14章
[第2版]Python機械学習プログラミング 第14章
 
[第2版]Python機械学習プログラミング 第13章
[第2版]Python機械学習プログラミング 第13章[第2版]Python機械学習プログラミング 第13章
[第2版]Python機械学習プログラミング 第13章
 
[第2版]Python機械学習プログラミング 第12章
[第2版]Python機械学習プログラミング 第12章[第2版]Python機械学習プログラミング 第12章
[第2版]Python機械学習プログラミング 第12章
 
[第2版]Python機械学習プログラミング 第11章
[第2版]Python機械学習プログラミング 第11章[第2版]Python機械学習プログラミング 第11章
[第2版]Python機械学習プログラミング 第11章
 
[第2版]Python機械学習プログラミング 第12章
[第2版]Python機械学習プログラミング 第12章[第2版]Python機械学習プログラミング 第12章
[第2版]Python機械学習プログラミング 第12章
 
[第2版]Python機械学習プログラミング 第10章
[第2版]Python機械学習プログラミング 第10章[第2版]Python機械学習プログラミング 第10章
[第2版]Python機械学習プログラミング 第10章
 
[第2版]Python機械学習プログラミング 第9章
[第2版]Python機械学習プログラミング 第9章[第2版]Python機械学習プログラミング 第9章
[第2版]Python機械学習プログラミング 第9章
 
[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章
 
[第2版]Python機械学習プログラミング 第7章
[第2版]Python機械学習プログラミング 第7章[第2版]Python機械学習プログラミング 第7章
[第2版]Python機械学習プログラミング 第7章
 
[第2版]Python機械学習プログラミング 第6章
[第2版]Python機械学習プログラミング 第6章[第2版]Python機械学習プログラミング 第6章
[第2版]Python機械学習プログラミング 第6章
 
[第2版] Python機械学習プログラミング 第5章
[第2版] Python機械学習プログラミング 第5章[第2版] Python機械学習プログラミング 第5章
[第2版] Python機械学習プログラミング 第5章
 
[第2版] Python機械学習プログラミング 第4章
[第2版] Python機械学習プログラミング 第4章[第2版] Python機械学習プログラミング 第4章
[第2版] Python機械学習プログラミング 第4章
 
[第2版] Python機械学習プログラミング 第3章(5節~)
[第2版] Python機械学習プログラミング 第3章(5節~)[第2版] Python機械学習プログラミング 第3章(5節~)
[第2版] Python機械学習プログラミング 第3章(5節~)
 
[第2版] Python機械学習プログラミング 第3章(~4節)
[第2版] Python機械学習プログラミング 第3章(~4節)[第2版] Python機械学習プログラミング 第3章(~4節)
[第2版] Python機械学習プログラミング 第3章(~4節)
 
[第2版] Python機械学習プログラミング 第1章
[第2版] Python機械学習プログラミング 第1章[第2版] Python機械学習プログラミング 第1章
[第2版] Python機械学習プログラミング 第1章
 

[第2版] Python機械学習プログラミング 第2章