【機械学習】パーセプトロン(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)
通常のパーセプトロンでは、ノイズが含まれる場合、振動して不安定となります。また、学習の最後の方で選んだサンプルに引きずられやすいというデメリットがあります。
それらのデメリットを補うなために、パーセプトロンの学習アルゴリズムを少しだけ変形したものが平均化パーセプトロンです。分類が間違っていたときの重みベクトル更新部分で、重みベクトルをそのまま使うのではなく、全ステップの重みベクトルを平均したものを使います。
そうすることによって、ロバストな挙動を示す、実用的で高性能な機械学習アルゴリズムになります。
関連記事
-
【Chainer】手書き数字認識をしてみた【Deep Learning】
Chainerを用いて、ニューラルネットワークを構築し、手書き数字認識を行ったときのメモです。
-
【転移学習】学習済みVGG16 による転移学習を行う方法【PyTorch】
今回は、PyTorch を使って、学習済みのモデル VGG16 を用いて転移学習をしてみました。
-
【機械学習】決定木(decision tree)について。
教師あり学習の一つである決定木(desicion tree)について勉強したことを書いていきます。
-
【機械学習】 scikit-learn で不正解データを抽出する方法【Python】
Python の scikit-learn ライブラリを使って機械学習でテストデータを識別(2クラス
-
【探索】縦型・横型・反復深化法の探索手法の比較。
探索とは、チェスや将棋や囲碁などのゲームをコンピュータがプレイするときに、どの手を指すかを決定するの
-
【探索】ダイクストラ法・最良優先探索・Aアルゴリズムの比較。
縦型探索や横型探索では、機械的に順序を付け、最小ステップでゴールを目指します。 つまり、
-
【TensorFlow】GPUを認識しない時の対処方法【Python】
TensorFlow で GPU を認識させようとしたときにハマってしまったので、その対処方法のメモ
-
【Fashion-MNIST】ファッションアイテムのデータセットを使ってみた【TensorFlow】
今回は、機械学習用に公開されているデータセットの1つである「Fashion-MNIST」について紹介
-
機械学習の手法のまとめ。
機械学習は、「与えられた入出力事例をモデル化する行為」のことで、ディープラーニングなどで注目を集めて
-
【画像認識】 Google画像検索結果を取得する方法 【google image download】
今回は、深層学習(DeepLearning)で画像認識をするための画像データの収集を、Google画