【機械学習】パーセプトロン(Perceptron)について。
パーセプトロンは、教師あり学習の中でも、入出力モデルベース(eager learning:働き者の学習)に分類され、その中で最も単純なモデルとなります。
Contents
パーセプトロンの特徴
パーセプトロンには、以下の特徴があります。
- 2値クラス分類のみに対応している(多クラス分類には適応できない)。
- 学習データが線形分離可能(linearly separable)であれば、それらを正しく2値クラスに分離する平面をみつけることができます。線形分離なので、例えば2次元の場合は、直線で分離可能だということになる。
- 重みベクトルから重要な特徴量(識別に効いている)が推測できる。
- 線形分離可能でないと性能が落ちる。そのため、パーセプトロンを組み合わせて使うとニューラルネットワークになる。
パーセプトロンで用いる定義について
パーセプトロンで用いる記号をここで定義しておきます。
パーセプトロンは2値クラス分類なので、出力 \(y(x)\) は正例(+1)もしくは負例(-1)の2種類となります。
$$出力 y(x)=f(w^T\phi(x))$$
$$\phi(x):特徴ベクトル$$
$$w:重みベクトル$$
$$階段関数 f(a)=\{+1, a\geq0\\-1,a<0\}$$
事例 X の 特徴ベクトルを \(\phi(x)\) とします。ただし、特徴ベクトルの要素の1番最初にバイアス要素である \(\phi_0(x)=1\) を追加したものを \(\phi(x)\) とします。ちなみに「\(\phi\)」は Phi と読みます。
出力 \(y(x)\) は、重みベクトル \(w\) と特徴ベクトル \(\phi(x)\) の内積が0以上か0未満かで判定されます。
階段関数は、+1か-1かを出力するために用いられます。
重みベクトルを以下のアルゴリズムで学習していきます。
パーセプトロンの学習アルゴリズム
パーセプトロンの学習アルゴリズムは単純な作業の繰り返しとなります。
- 重みベクトルを \(w=(0,0,0,…)\) で初期化する。
- 学習データからランダムに事例を選択する。
- 分類が間違っていたら以下の式で重みベクトルを更新する。
- 正例が正解なのに間違っていた場合:\( w ← w + \phi(x) \)
- 負例が正解なのに間違っていた場合:\( w ← w - \phi(x) \)
- 2に戻る。(※全ての事例が正しく分類できるまで繰り返す。)
平均化パーセプトロン(Averaged Perceptron)
通常のパーセプトロンでは、ノイズが含まれる場合、振動して不安定となります。また、学習の最後の方で選んだサンプルに引きずられやすいというデメリットがあります。
それらのデメリットを補うなために、パーセプトロンの学習アルゴリズムを少しだけ変形したものが平均化パーセプトロンです。分類が間違っていたときの重みベクトル更新部分で、重みベクトルをそのまま使うのではなく、全ステップの重みベクトルを平均したものを使います。
そうすることによって、ロバストな挙動を示す、実用的で高性能な機械学習アルゴリズムになります。
関連記事
-
【Weka】欠損データを自動的に補完するフィルタを使ってみた。
機械学習で用いるデータについてです。データは完璧なことに越したことはないが、通常は、ある属性の値が入
-
【深層学習】 TensorFlow と Keras をインストールする【Python】
今回は、Google Colaboratory 上で、深層学習(DeepLearning)フレームワ
-
【機械学習・手法比較】決定木とナイーブベイズを比較してみた。
同じデータを使って、教師有り機械学習手法の 決定木(Decision Tree)とナイーブベイズ(N
-
【Fashion-MNIST】ファッションアイテムのデータセットを使ってみた【TensorFlow】
今回は、機械学習用に公開されているデータセットの1つである「Fashion-MNIST」について紹介
-
【Weka】CSVファイルを読み込んで決定木を実行。
フリーの機械学習ソフト Weka を使って、CSVファイルを読み込んで決定木(Decision Tr
-
【機械学習】モンテカルロ法(Monte Carlo method)について。
モンテカルロ法(Monte Carlo method)とは、シュミレーションや数値計算を乱数を用いて
-
【探索】縦型・横型・反復深化法の探索手法の比較。
探索とは、チェスや将棋や囲碁などのゲームをコンピュータがプレイするときに、どの手を指すかを決定するの
-
【機械学習】 scikit-learn で精度・再現率・F値を算出する方法【Python】
今回は、2クラス分類で Python の scikit-learn を使った評価指標である、精度(P
-
【Weka】ARFF 形式から CSV 形式に簡単に変換する方法。
フリーのデータマイニングツールである WEKA では、ARFF 形式と CSV 形式のデータを読み込
-
【機械学習】 scikit-learn で不正解データを抽出する方法【Python】
Python の scikit-learn ライブラリを使って機械学習でテストデータを識別(2クラス