【機械学習】パーセプトロン(Perceptron)について。

公開日: : 最終更新日:2018/05/13 機械学習 , , ,

パーセプトロンは、教師あり学習の中でも、入出力モデルベース(eager learning:働き者の学習)に分類され、その中で最も単純なモデルとなります。

パーセプトロンの特徴

パーセプトロンには、以下の特徴があります。

  • 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かを出力するために用いられます。

重みベクトルを以下のアルゴリズムで学習していきます。

パーセプトロンの学習アルゴリズム

パーセプトロンの学習アルゴリズムは単純な作業の繰り返しとなります。

  1. 重みベクトルを \(w=(0,0,0,…)\) で初期化する。
  2. 学習データからランダムに事例を選択する。
  3. 分類が間違っていたら以下の式で重みベクトルを更新する。
    • 正例が正解なのに間違っていた場合:\( w ← w + \phi(x) \)
    • 負例が正解なのに間違っていた場合:\( w ← w - \phi(x) \)
  4. 2に戻る。(※全ての事例が正しく分類できるまで繰り返す。)

平均化パーセプトロン(Averaged Perceptron)

通常のパーセプトロンでは、ノイズが含まれる場合、振動して不安定となります。また、学習の最後の方で選んだサンプルに引きずられやすいというデメリットがあります。

それらのデメリットを補うなために、パーセプトロンの学習アルゴリズムを少しだけ変形したものが平均化パーセプトロンです。分類が間違っていたときの重みベクトル更新部分で、重みベクトルをそのまま使うのではなく、全ステップの重みベクトルを平均したものを使います。

そうすることによって、ロバストな挙動を示す、実用的で高性能な機械学習アルゴリズムになります。

関連記事

機械学習の手法のまとめ。

機械学習は、「与えられた入出力事例をモデル化する行為」のことで、ディープラーニングなどで注目を集めて

記事を読む

【探索】縦型・横型・反復深化法の探索手法の比較。

探索とは、チェスや将棋や囲碁などのゲームをコンピュータがプレイするときに、どの手を指すかを決定するの

記事を読む

【Weka】アソシエーション・ルール(association rule)【機械学習】

フリーの機械学習ツール Weka でアソシエーション・ルール(association rule)を使

記事を読む

【機械学習・手法比較】決定木とナイーブベイズを比較してみた。

同じデータを使って、教師有り機械学習手法の 決定木(Decision Tree)とナイーブベイズ(N

記事を読む

【Weka】CSVファイルを読み込んで決定木を実行。

フリーの機械学習ソフト Weka を使って、CSVファイルを読み込んで決定木(Decision Tr

記事を読む

【機械学習】決定木(decision tree)について。

教師あり学習の一つである決定木(desicion tree)について勉強したことを書いていきます。

記事を読む

【Weka】フリーの機械学習ソフトをインストールする方法。

Weka は、GUIで使えるフリーの機械学習ソフトです。 https://ja.wikiped

記事を読む

【Weka】ARFF 形式から CSV 形式に簡単に変換する方法。

フリーのデータマイニングツールである WEKA では、ARFF 形式と CSV 形式のデータを読み込

記事を読む

【探索】ダイクストラ法・最良優先探索・Aアルゴリズムの比較。

縦型探索や横型探索では、機械的に順序を付け、最小ステップでゴールを目指します。 つまり、

記事を読む

【Weka】欠損データを自動的に補完するフィルタを使ってみた。

機械学習で用いるデータについてです。データは完璧なことに越したことはないが、通常は、ある属性の値が入

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

【Python】pip3 で「cannot import name ‘main’」エラーが出たときの対処法。

Python でライブラリをインストールする際に、pipを使います。

【mecab-python3】parseToNode で surface が正しく取得できないときの対処法。

python3 で mecab-python3 を使うと、parseT

【Python】形態素解析器 Mecab を Linux(Ubuntu)で使ってみた。

Linux の Ubuntu OS に、形態素解析器 Mecab をイ

【Python】NLTK(自然言語処理ライブラリ)を使ってみた。

Python の自然言語処理ライブラリである NLTK を Linux

【Python】OpenCV を使って顔画像を検出してみた。

OpenCV のインストール Numpy のインストール [c

→もっと見る

PAGE TOP ↑