【アルゴリズム】パターン認識について

 ■ はじめに

パターン認識(Pattern recognition)について扱う

 ■ 段階

* パターン認識は、以下のような段階を踏む。 

【A】 学習(訓練)段階

* 訓練データを処理してクラスの特徴を抽出する段階

【B】 分類段階

* 新しい分類ラベルのついていないデータを分類(Classify)する段階

 ■ 論理

* パターン認識は、以下の理論が関係する 

【1】 最近傍法(さいきんぼうほう, nearest neighbour algorithm)
【2】 決定木(decision tree) / ランダムフォレスト
【3】 ニューラルネットワーク(Neural network)

【1】 最近傍法(さいきんぼうほう)

 * パターン認識のアルゴリズムの内の一つ。
 * ざっくり言うと、「近いデータに合わせる」
 * 一般的に、「ユークリッド距離」で計算する

http://www5.ocn.ne.jp/~shinya91/csm/332csm_knn.html

 【2】 決定木 / ランダムフォレスト

決定木 (decision tree)

* 条件分岐を木構造のように繰り返しデータを分類する手法
 ⇒ 言葉で説明するより、以下の図見たほうが理解は早い

https://www.randpy.tokyo/entry/decision_tree_theory
https://dev.classmethod.jp/articles/2017ad_20171211_dt-2/

ランダムフォレスト (random forests)

* 決定木をたくさん生成し、多数決する(または平均を取る)ような手法
 ⇒ 決定"木を集めたから、ランダム"フォレスト(森)"。

例)「傘を持っていくべきか?」という命題を考えた場合

「既に雨が降っているか? (Yes or No)」
「雲っているか? (Yes or No)」
「湿度は高いか? (Yes or No)」
など、複数の質問により、その命題を解決する。

不純度 (impurity)

* 分類をする際に、どれだけ他のクラスのデータが混ざっているかの度合い
cf. impurity イムピュリティ = 不純、不道徳、不純物、混入物
 ⇒ 決定木は、不純度が一番小さくなるような条件を分岐する

【不純度の指標】
1)ノードにおける誤り率
2)ジニ係数(GINI coefficient、イタリアの統計学者、GINI さんが考案)
3)交差エントロピー(entropy)

関連用語

* 目的変数(objective variable) 
 ⇒ 予測したい変数

* 説明変数(explanatory variable)
 ⇒ 目的変数の因果関係における原因を表す変数

e.g. y = 2x (yが目的変数で、xが説明変数) 

https://future-chem.com/ames-decision-tree/

【3】 ニューラルネットワーク

 実際の脳の動きは
 * 脳の中には多数のニューロン(神経細胞)が存在している。
 各ニューロンは、多数の他のニューロンから信号を受け取り、
 他の多数のニューロンへ信号を受け渡している。
 脳は、この信号の流れによって、様々な情報処理を行っている。

ニューラルネットワークとは

 * 上の仕組みをコンピュータ内に実現しようとしたものが
 ニューラルネットワーク

畳み込みニューラルネットワーク

CNN;Convolutional Neural Network)

https://screwandsilver.com/cnn_convolutional_net/
https://www.hellocybernetics.tech/entry/2016/12/23/000557