Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
わかりやすいパターン認識2章 / Pattern Recognition Manual Eas...
Search
masso
December 07, 2020
Science
0
780
わかりやすいパターン認識2章 / Pattern Recognition Manual Easy to understand SS 02
masso
December 07, 2020
Tweet
Share
More Decks by masso
See All by masso
Stacktrace for rs/zerolog users
masso
0
170
データ解釈学入門 第一部 / Data hermeneutics Part 1
masso
8
2.1k
時系列分析と状態空間モデリングの基礎 / Foundations of Time Series Analysis and State Space Models 0
masso
0
520
分析環境紹介LT / the introduction of as my analysis env is
masso
0
100
わかりやすいパターン認識1章 / Pattern Recognition Manual Easy to understand SS 01
masso
0
140
データ解析のための統計モデリング入門6章 / Handbook-of-statistical-modeling-for-data-analysis-section6
masso
0
490
DLGが目指すコミュニティの形 / DLG Community Objective
masso
0
2.4k
PowerAutomateによる社員健康状態集計システム / Employee health status tabulation system with Power Automate
masso
0
1.4k
Other Decks in Science
See All in Science
プロダクト開発を通して学んだナレッジマネジメントの哲学
sonod
0
150
私たちのプロダクトにとってのよいテスト/good test for our products
camel_404
0
180
統計的因果探索の方法
sshimizu2006
1
1.2k
ICRA2024 速報
rpc
3
5.2k
Machine Learning for Materials (Lecture 6)
aronwalsh
0
510
小杉考司(専修大学)
kosugitti
2
560
山形とさくらんぼに関するレクチャー(YG-900)
07jp27
1
220
非同期コミュニケーションの構造 -チャットツールを用いた組織における情報の流れの設計について-
koisono
0
140
『データ可視化学入門』を PythonからRに翻訳した話
bob3bob3
1
500
いまAI組織が求める企画開発エンジニアとは?
roadroller
2
1.3k
拡散モデルの原理紹介
brainpadpr
3
4.8k
2024-06-16-pydata_london
sofievl
0
530
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Scaling GitHub
holman
458
140k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
For a Future-Friendly Web
brad_frost
175
9.4k
What's new in Ruby 2.0
geeforr
343
31k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Transcript
わかりやすいパターン認識 第⼆章 学習と識別関数
⽬次 1. 学習の必要性 2. 最近傍決定則と線形識別関数 3. パーセプトロンの学習規則 4. 区分的線形識別関数
1. 学習の必要性 • 今回の例は、以下の点において、前 章の例のようには⾏かない – プロトタイプを各クラスの重⼼に設定では、 適切にクラス間分離できない – 2次元じゃないので、プロトタイプを直感
的に設定できない • 図(b)のように、プロトタイプを重⼼ からずらした妥当な結果を導き出す ために、学習が必要である
その前に⽤語の定義を… • 前章で述べた識別部設計⽤に収集したパターン(⼿書き⽂字認識の ために、実際の⼿書き⽂字画像を集めよう…という⽂脈で登場した 話)を⼀般に「学習パターン(learning pattern)」、「訓練パ ターン(training pattern)」、「設計パターン(designing pattern)」などと呼ばれる •
本書では、学習パターン(learning pattern)と呼ぶことにする
学習とは︖ 統計的パターン認識において、学習とは 学習パターンをすべて正しく識別できるようなクラス間分離⾯を⾒出 すことと⾔える。
2. 最近傍決定則と線形識別関数 この節の結論 1クラスあたり1プロトタイプのNN法(最近傍決定則) は、線形識別関数による識別法である。 このとき認識系では、 識別辞書に「重み係数」が格納されており、 識別演算部では、重みベクトルと特徴ベクトルの内積計算 と最⼤値選択処理を⾏う
結論までの流れ 1. 1クラスあたり1プロトタイプのNN法を定式化しましょ 2. 識別関数法というものが現れる(識別関数というのを使う) 3. ⼊⼒パターンに対して、クラスごとに識別関数 g(x)を実⾏し、そ の結果に対して最⼤値を選択する(←最⼤値選択とか最⼩値選択 とかが典型的)
4. ⼊⼒のパターンに対して線形演算を施す識別関数を線形識別関数 と呼び、今回の例はまさにそれらしい。(後述のパーセプトロン もそう)
数式とか図とか • 図22 – 識別関数法のイメージ図 – ⼊⼒値xに対して、各クラスごと に識別関数をかまして、結果の最 ⼤値などを選択する •
図23 – 線形識別関数法のイメージ図 – d次元の⼊⼒値xについて、d次元 の重みベクトルwと内積をとる 図2-2 図2-3
3. パーセプトロンの学習規則 この節の⼩⾒出し 1. 重み空間と解領域 2. パーセプトロンの収束定理 3. 学習とプロトタイプの移動
3. パーセプトロンの学習規則 この節の流れ 1. 重み空間と解領域 – 学習の流れを数式で表現する(重み空間、線形分離可能、解領域 などの⾔葉が登場する)、また特徴空間だけでなく、重み空間も 考える –
識別するということを数式と平⾯図で考える 2. パーセプトロンの収束定理 – 線形識別関数の重み学習⽅法として有名な「パーセプトロンの学 習規則」というものがあるが、それは「パーセプトロンの収束定 理」に基づいているものだ 3. 学習とプロトタイプの移動 – 学習とは重みを修正すること、であると同時にプロトタイプを設 定すること(前述)と述べた。それらが等しい(というか関連が ある)ことを数式を添えて説明している
3.1. 重み空間と解領域 識別関数法の数式表現 • クラス数︓c • 特徴空間の次元数︓d 識別関数 識別関数(ベクトル表現) d+1次元の
・拡張特徴ベクトル ・拡張重みベクトル 同次座標系っぽい 雰囲気を感じる 拡張特徴ベクトル、 拡張重みベクトルの定義より 導かれる
3.1. 重み空間と解領域 • クラス︓ωi (i=1, 2, 3...c) • 学習パターンの全体集合︓X •
学習パターンのうちクラスωi に属する集合︓Xi (i= 1, 2, 3, … c) • クラスiの識別関数︓gi () とするとき、線形識別関数の学習とは… Xi に属するすべてのxに対して、 が成り⽴つような重みを決定すること 線形分離可能とは、上記条件を満たす 重みベクトルが少なくとも1組 存在することを⾔う 線形識別関数の学習の数式表現
3.1. 重み空間と解領域 • d+1次元の拡張重みベクトルwが張る空間を重み空間という • 例えば、1次元特徴空間の例であれば • 識別関数の出⼒結果=拡張重みベクトルと拡張特徴ベクトルの内積 • =2次元空間における超平⾯=直線を表す↓↓
• 具体的に計算すると • w=(w0, w1) • x=(1, 2)とすると • g(x) = w0 + 2w1 • となり、 • 直線であることがわかる • g(x)=wTx=0となるとき • そのwは決定境界を表す d+1次元の重み空間の導⼊
3.1. 重み空間と解領域 解領域 • なんか説明が回りくどいし、事例も分かりづらいので、書いてあることを正確に理 解するのは難しい。 • たぶん、以下のようなことを⾔いたいとみなした • 重み空間上の⼀つの点を定めることは、識別関数を⼀つ定めることに等し
い • したがって、重み空間上の領域は、識別関数のとりうる範囲を⽰すといえ る • 線形分離可能であるための条件式 • =重み空間上で領域を⽰す式の集合体 • 上記領域内の点(=識別関数)によって、 • 線形分離を実現できる • が、上記領域内に点が存在し得ない場合は、 • 線形分離不可能である。(0.1より⼤&0.05より⼩みたいなケース)
3.1. 重み空間と解領域 たぶん、この節で⾔いたかったのは 線形分離可能な重みベクトルが存在する条件 (=解の存在条件)は、 拡張重みベクトルが張る空間である重み空間上の領域とい う表現ができる。 ということかなと思う。
3.2. パーセプトロンの収束定理 この節の正しいタイトルは、 「パーセプトロンの学習規則(別名︓誤り訂正 法)と呼ばれる線形識別関数の重みを学習によっ て求める⽅法の解説」であろう
パーセプトロンの学習規則とは︖ このやり⽅で、なんで上⼿く⾏くのか︖ 上記(3)の部分の調整は、 解領域を⽰す超平⾯に直⾏な移動を表す なので、有限回繰り返すことで 解領域に到達できる︕ これをパーセプトロンの収束定理という
学習過程図化 on 重み空間 学習過程図化 on 特徴空間 (決定境界の移動≒プロトタイプの移動) 3.3. 学習とプロトタイプの移動
4. 区分的線形識別関数 この節の⼩⾒出し 1. 区分的線形識別関数の機能 2. ニューラルネットワークとの関係
4. 区分的線形識別関数 この節の流れ • 線形分離不可能な問題では、1クラス1プロトタイプだと学習パターンすべ てを適切に識別する識別関数は作れない • 1クラスL個のプロトタイプの場合の識別関数を区分的線形識別関数と呼び、 NN法はL=1の特別な場合の話だった •
区分的線形識別関数を使えば、有限個の学習パターンを完全にクラス間分 離することができるが、NN法などのような学習アルゴリズムを適⽤できな い、という問題がある。収束条件が詳しくわかっていない。 • ⼀⽅、ニューラルネットワークは、⾮線形識別関数を実現する⼿段である。 区分的線形識別関数と⾮線形識別関数は、極限において等価である。した がって、両者は「決定境界を任意の精度で近似できる」という点は同じ • ニューラルネットワークの表現⼒がすごいのではなく、「誤差逆伝播法」 という学習アルゴリズムがすごいのだ。勘違いしないようにね • 学習法は誤差逆伝播法以外にも、学習ベクトル量⼦化や全数記憶式もある ので、適宜選択するようにしましょう(平成10年の書籍…)
4.1. 区分的線形識別関数の機能 ここでは、線形分離不可能な問題を扱う。 線形分離不可能な場合は、1クラス1プロトタイプでは駄⽬で、複数 個必要になる。その極端な場合(プロトタイプ数=学習パターン数) が全数記憶⽅式といえる。
4.1. 区分的線形識別関数の機能
4.2. ニューラルネットワークとの関係 「この節の流れ」の後半を参照
参考 • わかりやすいパターン認識_2章 | SlideShare