【入門】非線形分類【数値計算】

【入門】非線形分類【数値計算】 数値計算
【入門】非線形分類【数値計算】

非線形分類を実現

非線形分類を実現方法だが、多層パーセプトロンを使用する。
名前的には単純パーセプトロンを複数にした感じではあるが、まさにその通り。
「複数にする」という考え方には、並列にするか直列にするかという話があるが、
結論としては両方となる。

多層パーセプトロン

とりあえず、単純パーセプトロンと多層パーセプトロンの構造的な違いを確認しておこう。
(差分を知るのが一番手っ取り早いので。)

まずは単純パーセプトロン

単純パーセプトロンの構成図、入力層、出力層、1、x1、x2、b、w1、w2、σ、y

そして、これをベクトル演算で表現するとこんな感じ。

\(
y=\sigma\bigg(
\begin{bmatrix}
w_1&w_2&b
\end{bmatrix}
\begin{bmatrix}
x_1\\x_2\\1
\end{bmatrix}
\bigg)
\)

活性化関数の話はあるけど、基本的には単なる内積になる。

そして、多層パーセプトロン

多層パーセプトロンの構成図、入力層、隠れ層、出力層、1、x1、x2、b1、w111、w112、w121、w122、w211、w212、b2、h1、h2、σ、y

これも行列演算で表現してみよう。

\(
y=
\sigma\Bigg(
\begin{bmatrix}
w_{211}&w_{212}&b_2
\end{bmatrix}
\begin{bmatrix}
\sigma\bigg(
\begin{bmatrix}
w_{111}&w_{112}&b_1\\
w_{121}&w_{122}&b_1
\end{bmatrix}
\bigg)
\begin{bmatrix}
x_1\\
x_2\\
1
\end{bmatrix}\\
1
\end{bmatrix}
\Bigg)
\)

なんかやべぇことになってる気もするが、ホントにこんな感じ。
ただし、一般的にはこういう数式を書くことは無い。
無理やり書くとこんな感じって程度と思っておいてOK。

ちなみに多層パーセプトロンはニューラルネットワークとも言う。
当然、最も原始的なニューラルネットワークとなる。

まとめ

  • 単純パーセプトロンでは分類できないものがある。
  • 決定境界直線を求めるというより決定領域を特定するというイメージになる。
  • 非線形分類するにはパーセプトロンを複数使う。
  • 単純パーセプトロン、多層パーセプトロンの構造と数式を説明。

MATLAB、Python、Scilab、Julia比較ページはこちら

Pythonで動かして学ぶ!あたらしい線形代数の教科書

Amazon.co.jp

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

Amazon.co.jp

ゼロからはじめるPID制御

https://amzn.to/3SvzuyR

OpenCVによる画像処理入門

https://amzn.to/498ZUgK

恋する統計学[回帰分析入門(多変量解析1)] 恋する統計学[記述統計入門]

Amazon.co.jp

Pythonによる制御工学入門

Amazon.co.jp

理工系のための数学入門 ―微分方程式・ラプラス変換・フーリエ解析

https://amzn.to/3UAunQK

コメント

タイトルとURLをコピーしました