SlideShare uma empresa Scribd logo
1 de 20
ハトでもわかる
単純パーセプトロン
「サルでもわかる」 →えてして難しい
「猫でもわかる」 →媚びてる感が出る
「鶏でもわかる」 →3歩で忘れるとダメ
時代はハト
はじめに
• 機械学習の最も基礎の部分(たぶん)なので頑張りましょう
• 目次
• パーセプトロンとは
• パーセプトロンの構成
• 重みと線形結合
• 活性化関数
• 重みの更新
• 損失関数
• 最適化問題
• シミュレーションしてみる
2
パーセプトロンとは
• 視覚や脳神経細胞の機能をモデル化したもの
• 神経細胞の動き
• 感覚器官から無数の電気信号を受け取る
• 現在の状況と信号の情報から物事を学習する
• 以下を繰り返すことでモデルを作成
• 複数の入力から単一の出力を行う
• 出力結果と、ほしい結果(教師データ)からモデルを更新(学習)
元の発想は脳神経
構造はシンプル
入力を統合して出力へ 出力結果から学習 3
パーセプトロンとは
• 応用するといろいろできる
• ニューラルネット(多層パーセプトロン)
• ディープラーニング
• SVM
• ・・・
⇒よく聞く手法の基礎になるものです
• で、結局何ができるものなの?
• という問には答えづらいよ、最後にまとめます
• とりあえず「単純な分類ができるもの」と考えて、続きをどうぞ
4
ニューラルネット
1個1個がパーセプトロン
なぜ重要なの?
よく聞かれるけど
パーセプトロンの構成
• 入力データを
• 重要な構成要素
• 各入力に対する重み
• 出力の調整
• 重みの更新
入力
全長 X[1]
体重 X[2]
… X[3]
重み
W[1]
W[2]
W[3]
鳥データ
全長500mm
体重700g
…
出力
1:ハトである
0:ハトではない
? ? ?
5
ハトかどうかを判定するモデルを作ろう
入力に対する重み
• 定数項と各入力に対して重みwを設定
• (この時点での)出力は単純な線形結合になる
• 全長、体重、定数を入力とし、それぞれX[1]、X[2]、X[3]とする
• X[1]W[1]+X[2]W[2]+X[3]W[3] の計算になる
• 重みを適当にW = [0.5, -1, 10] とすると
入力
全長 X[1] W[1]
体重 X[2] W[2]
定数 X[3] W[3]
鳥データ
全長:500mm
体重:700g
定数項:1
…
500×0.5 + 700×-1+1×10 = -440
= -440
6
計算例をみてみましょう
出力の調整
• 出力の形をほしい形に変換する
• そのまま
• ステップ関数
• シグモイド関数
• ソフトマックス関数
• ランプ関数(ReLU)
• などなどいろいろ
• 活性化関数と呼ばれる
• 今回はハトかどうかを0or1で判定しましょう
ΣXW 〇? ×?
7
重みの更新(概要)
• 現在の出力が正しいかどうかを定量化する
• ⇒損失関数の定義
• 損失関数から重みの増減の方向を決定する
• 増減の幅を決定する
• ⇒最適化問題
計算あってた
計算間違ってた
8
Step1
Step2
重みの更新(損失関数の定義)
• 現在の結果が正しいのか、どの程度間違っているのかを数値で
表すことで重み補正の有無を判断します
• 現在の結果と正解(教師データ)の差を定義する
• 損失関数(=誤差関数=目的関数)と呼ばれる
• 損失関数E = max(0, -twx) t:ハトなら1 違えば-1
• つまり
• 出力と正解が同じなら 損失0
• 同じでなく、正解がハトなら 損失-1
• 同じでなく、正解がハト以外なら 損失1
• 回帰したい場合、判別したい場合、データによって定義します
• 回帰や判別の例はwikipediaをどうぞ。。。
• https://ja.wikipedia.org/wiki/活性化関数
#.E5.87.BA.E5.8A.9B.E5.B1.A4.E3.81.AE.E6.B4.BB.E6.80.A7.E5.8C.96.E9.96.A2.E6.95.B0.E3.81.A8.E8.AA.A4.E5.B7.AE.E9.96.
A2.E6.95.B0
9
ハト判定の例だと
参考:重みの更新(最適化問題)
• 損失関数(=最小にすべき数式)を多数の条件下で最小となる
パラメータを探す
• これが最適化問題
• 関数の性質や条件の有無で様々な最適化手法がある
• http://www.slideshare.net/tkm2261/ss-42149384
非常にきれいにまとまっていて
わかりやすい!
(簡単とは言っていない)
今回はここ
10
重みの更新(最適化)
• 重みを変更することで損失関数を小さくすることが目的
• 損失関数の出力結果から重みを減らすか増やすかを決める
• 損失関数の傾きをみて、低くなる方に動かそう
• 偏微分だ!
• -twxの微分値-txから変更方向が決まる
• 正解がハトなら-tx 正解がハト以外ならtx
• 大きく動かしても小さすぎても効率悪い
• 一定の係数ηをかけておこう
• -tx ⇒-ηtx
• 学習率と呼ばれる
• 最適化手法によっては学習率をどんどん変えたり、方向をたまに逆にしたりす
ることもある
重み
損失関数
傾きを参考にする
11
ハト判定の例だと
プログラムの時間です
• なかなかピンときにくい場合は動かしてみるのが一番
• プログラムのポイントは以下の点
• 重みと学習率を初期化する
• 入力されたデータと現在の重みから出力結果を出す
• 線形結合
• 活性化関数
• 出力結果が教師データと異なる場合に重みの更新をする
12
なるほど、わからん
プログラムの時間です|問題
• プログラムしましょう
• 問題:2種類のデータを分類するための境界線を引く
• サンプルソースコード:Gistに置いてみた↓
https://gist.github.com/stkdev/e40705a6a05dbdd58355c24f1b0e52c7
この辺に線が引ければ、
未知のデータも分類できるかも
13
プログラムの時間です|データ
• データ
• バイアス項は全データが1の列を作ることで実現できる
• 体重、全長、分類の関係を以下のように置く
• 分類(Label) = W[1] * 全長 + W[2] * 体重 + W[3] * バイアス項(定数
項)
• この式が成り立つWを求めればよい
14
プログラムの時間です|初期化と分類
• 重み・学習率の初期化
• 重みWを初期化する W = [-1, -1, -1]
• 学習率 eta = 0.2 (0~1)で定義
• 分類を実施
• W[1] * 全長 + W[2] * 体重 + W[3] を計算
• 活性化関数
結果が誤ったデータの
情報でWを更新する
15
プログラムの時間です|更新式
• 損失関数
• E = max(0, -Label * W * x)
• 更新式
• EをW1~3で偏微分
• -Label * x となる
• 学習率etaを0~1で設定する
Xと逆方向に動かす
というだけの式になる
16
プログラム内では不要
プログラムの時間です|学習ループ
• ループの終了判定は、Wの更新
があったか否か
• 更新アルゴリズムは
• まず現在のWで分類する
• 分類結果がLabelと異なった場合
更新規則に従って更新
• 全長と体重の2次元グラフに線を
引く場合
• 傾き:-W[1]/W[2]
• 切片:-W[3]/W[2]
17
プログラムの時間です|結果
• 徐々に境界線がうごいてい
くのがわかります
• 今回は(バイアス項含め)
3変数なので、実際は3次
元空間に境界面を作ってい
るイメージです
• 変数増やせばN次元のデータ
も分割できます
18
まとまらないまとめ
• パーセプトロンで線形分離可能なデータの分割ができた
• 線形分離不可の問題は収束しなくなるので注意
• ロジスティック回帰や線形判別分析と同じこともできるよ
• でもロジックを自分で作ることで気づきもあるよね
• 中の計算を紐解くと案外簡単
• みんな書いてみよう
• で、結局パーセプトロンって何ができるの?
• まじめに答える
⇒最小値探索に帰着できる問題をデータからパラメータ更新によって導けるよ。
パーセプトロンで何かできるというより、直面している問題をこうモデル化した
らパーセプトロンで最適化できるね、みたいな感じ。
• ふわっと例だけ答える場合:分割基準や回帰線をデータから導けるよ
• さらにふわっと答える:データから自動的に基準が作れるよ
19
参考
• ハトのイラスト
• http://01.gatag.net
• 高卒でもわかる機械学習 (2) 単純パーセプトロン
• http://hokuts.com/2015/11/25/ml2_perceptron/
• 物理のかぎしっぽ Perceptron
• http://hooktail.org/computer/index.php?Perceptron
• 機械学習超入門III ~機械学習の基礎、パーセプトロンを30分
で作って学ぶ~
• http://d.hatena.ne.jp/echizen_tm/20110606/1307378609
20

Mais conteúdo relacionado

Mais procurados

(文献紹介) 画像復元:Plug-and-Play ADMM
(文献紹介) 画像復元:Plug-and-Play ADMM(文献紹介) 画像復元:Plug-and-Play ADMM
(文献紹介) 画像復元:Plug-and-Play ADMMMorpho, Inc.
 
東京都市大学 データ解析入門 5 スパース性と圧縮センシング 2
東京都市大学 データ解析入門 5 スパース性と圧縮センシング 2東京都市大学 データ解析入門 5 スパース性と圧縮センシング 2
東京都市大学 データ解析入門 5 スパース性と圧縮センシング 2hirokazutanaka
 
ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用nishio
 
みんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extrasみんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extrasTakuji Tahara
 
10分でわかる主成分分析(PCA)
10分でわかる主成分分析(PCA)10分でわかる主成分分析(PCA)
10分でわかる主成分分析(PCA)Takanori Ogata
 
強化学習アルゴリズムPPOの解説と実験
強化学習アルゴリズムPPOの解説と実験強化学習アルゴリズムPPOの解説と実験
強化学習アルゴリズムPPOの解説と実験克海 納谷
 
Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)Shohei Taniguchi
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門Retrieva inc.
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシンShinya Shimizu
 
PRML第6章「カーネル法」
PRML第6章「カーネル法」PRML第6章「カーネル法」
PRML第6章「カーネル法」Keisuke Sugawara
 
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編Daiyu Hatakeyama
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)Takao Yamanaka
 
低ランク性および平滑性を用いたテンソル補完 (Tensor Completion based on Low-rank and Smooth Structu...
低ランク性および平滑性を用いたテンソル補完 (Tensor Completion based on Low-rank and Smooth Structu...低ランク性および平滑性を用いたテンソル補完 (Tensor Completion based on Low-rank and Smooth Structu...
低ランク性および平滑性を用いたテンソル補完 (Tensor Completion based on Low-rank and Smooth Structu...Tatsuya Yokota
 
PRML輪読#11
PRML輪読#11PRML輪読#11
PRML輪読#11matsuolab
 
実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだことnishio
 
モンテカルロサンプリング
モンテカルロサンプリングモンテカルロサンプリング
モンテカルロサンプリングKosei ABE
 
20221226_TITECH_lecture_ishizaki_public.pdf
20221226_TITECH_lecture_ishizaki_public.pdf20221226_TITECH_lecture_ishizaki_public.pdf
20221226_TITECH_lecture_ishizaki_public.pdfKazuaki Ishizaki
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化Miyoshi Yuya
 

Mais procurados (20)

(文献紹介) 画像復元:Plug-and-Play ADMM
(文献紹介) 画像復元:Plug-and-Play ADMM(文献紹介) 画像復元:Plug-and-Play ADMM
(文献紹介) 画像復元:Plug-and-Play ADMM
 
東京都市大学 データ解析入門 5 スパース性と圧縮センシング 2
東京都市大学 データ解析入門 5 スパース性と圧縮センシング 2東京都市大学 データ解析入門 5 スパース性と圧縮センシング 2
東京都市大学 データ解析入門 5 スパース性と圧縮センシング 2
 
ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用ルールベースから機械学習への道 公開用
ルールベースから機械学習への道 公開用
 
TVM の紹介
TVM の紹介TVM の紹介
TVM の紹介
 
みんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extrasみんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extras
 
10分でわかる主成分分析(PCA)
10分でわかる主成分分析(PCA)10分でわかる主成分分析(PCA)
10分でわかる主成分分析(PCA)
 
強化学習アルゴリズムPPOの解説と実験
強化学習アルゴリズムPPOの解説と実験強化学習アルゴリズムPPOの解説と実験
強化学習アルゴリズムPPOの解説と実験
 
Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
 
PRML第6章「カーネル法」
PRML第6章「カーネル法」PRML第6章「カーネル法」
PRML第6章「カーネル法」
 
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
 
低ランク性および平滑性を用いたテンソル補完 (Tensor Completion based on Low-rank and Smooth Structu...
低ランク性および平滑性を用いたテンソル補完 (Tensor Completion based on Low-rank and Smooth Structu...低ランク性および平滑性を用いたテンソル補完 (Tensor Completion based on Low-rank and Smooth Structu...
低ランク性および平滑性を用いたテンソル補完 (Tensor Completion based on Low-rank and Smooth Structu...
 
PRML輪読#11
PRML輪読#11PRML輪読#11
PRML輪読#11
 
実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと
 
モンテカルロサンプリング
モンテカルロサンプリングモンテカルロサンプリング
モンテカルロサンプリング
 
20221226_TITECH_lecture_ishizaki_public.pdf
20221226_TITECH_lecture_ishizaki_public.pdf20221226_TITECH_lecture_ishizaki_public.pdf
20221226_TITECH_lecture_ishizaki_public.pdf
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
 

Destaque

Androidアプリ開発ことはじめ
Androidアプリ開発ことはじめAndroidアプリ開発ことはじめ
Androidアプリ開発ことはじめtakosumipasta
 
単純パーセプトロン
単純パーセプトロン単純パーセプトロン
単純パーセプトロンT2C_
 
エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版
エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版
エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版Manabu YONEYA
 
【アップロードテスト】データマイニング入門編_201501
【アップロードテスト】データマイニング入門編_201501【アップロードテスト】データマイニング入門編_201501
【アップロードテスト】データマイニング入門編_201501takosumipasta
 
データマイニング入門編 その2
データマイニング入門編 その2データマイニング入門編 その2
データマイニング入門編 その2takosumipasta
 
わかパタ 1章
わかパタ 1章わかパタ 1章
わかパタ 1章weda654
 
わかりやすいパターン認識_2章
わかりやすいパターン認識_2章わかりやすいパターン認識_2章
わかりやすいパターン認識_2章weda654
 
最適化超入門
最適化超入門最適化超入門
最適化超入門Takami Sato
 
Ensembles of example dependent cost-sensitive decision trees slides
Ensembles of example dependent cost-sensitive decision trees slidesEnsembles of example dependent cost-sensitive decision trees slides
Ensembles of example dependent cost-sensitive decision trees slidesAlejandro Correa Bahnsen, PhD
 
Simple perceptron by TJO
Simple perceptron by TJOSimple perceptron by TJO
Simple perceptron by TJOTakashi J OZAKI
 
機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレストTeppei Baba
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京Koichi Hamada
 

Destaque (13)

Androidアプリ開発ことはじめ
Androidアプリ開発ことはじめAndroidアプリ開発ことはじめ
Androidアプリ開発ことはじめ
 
単純パーセプトロン
単純パーセプトロン単純パーセプトロン
単純パーセプトロン
 
エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版
エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版
エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版
 
【アップロードテスト】データマイニング入門編_201501
【アップロードテスト】データマイニング入門編_201501【アップロードテスト】データマイニング入門編_201501
【アップロードテスト】データマイニング入門編_201501
 
データマイニング入門編 その2
データマイニング入門編 その2データマイニング入門編 その2
データマイニング入門編 その2
 
わかパタ 1章
わかパタ 1章わかパタ 1章
わかパタ 1章
 
わかりやすいパターン認識_2章
わかりやすいパターン認識_2章わかりやすいパターン認識_2章
わかりやすいパターン認識_2章
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
Ensembles of example dependent cost-sensitive decision trees slides
Ensembles of example dependent cost-sensitive decision trees slidesEnsembles of example dependent cost-sensitive decision trees slides
Ensembles of example dependent cost-sensitive decision trees slides
 
Simple perceptron by TJO
Simple perceptron by TJOSimple perceptron by TJO
Simple perceptron by TJO
 
決定木学習
決定木学習決定木学習
決定木学習
 
機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
 

ハトでもわかる単純パーセプトロン