LoginSignup
0
0

パーセプトロンからニュートラルネットワーク

Posted at

AI系のプロジェクトに入るので、ニュートラルネットワークくらいは勉強する。

まずは、ゼロから作るDeep Learning
の勉強から始める。

今日の話はパーセプロトンとニュートラルネットワーク。

パーセプロトン

複数の信号を入力として受け取り、一つの信号を出力する。

\begin{equation}
 y= \left \{
 \begin{array}{l}
 0 (w_1x_1 + w_2x_2 \leq θ) \\
 1 (w_1x_1 + w_2x_2 \gt  θ)
 \end{array}
 \right.
 \end{equation} 

で表現される。θは限界値の閾値と呼ばれる。

(w1, w2, θ)の組み合わせを下記とすると、それぞれの論理演算を表現できる。
AND : (0.5, 0.5, 0.7)
NAND : (-0.5, -0.5, -0.7)
OR : (0.5, 0.5, 0.2)
※ 表現は無限に存在することに注意する。

上記を組み合わせれば、XORも表現できる。
ちなみにXOR = AND(NAND, OR)で表現できる。
パーセプロトンの強みは、「複雑な関数であっても、それを表現できるだけの可能性がある」ことである。
しかし、「重み」を決める作業は「人間」であるということはAIとしてかなり弱みになる。

ここで出てきたのが、ニュートラルネットワークである。
ニュートラルネットワークはパーセプトロンの課題を解決することを目指す。
具体的には、「適切な重みパラメータ」をデータから自動で学習できるということを目指す。

共通点

ニューロンのつながり方に関しては、パーせプロトンとニュートラルネットワークは同じである。
違いは、この後説明する「活性化関数」の選択肢である。

パーセプロトン:ステップ関数を選択
ニュートラルネットワーク:その他の関数を選択 (ex : シグモイド関数、ReLU関数)

この活性化関数がパーセプトロンとニュートラルネットワークの架け橋となる。

活性化関数とは

入力信号の総和を出力信号に変換する関数(h(x)のことを指す)

$$
y = h(b + w_1x_1 + w_2x_2)\label{a}\tag{1}
$$

\begin{equation} \label{b}\tag{2}
 h(x)= \left \{
 \begin{array}{l}
 0 (x \leq 0のとき) \\
 1 (x \gt  0のとき)
 \end{array}
 \right.
 \end{equation} 

上記 (式 2) で表される活性化関数は、閾値を境にして出力が切り替わる関数である。
それは「ステップ関数」や「段階関数」と呼ばれる。
そのため、「パーせプロトンでは、活性化関数にステップ関数を利用している」と言える。
つまり、活性化関数の候補としてたくさんある関数の中で、パーせプロトンは「ステップ関数」を採用している。

ニュートラルネットワークはこの活性化関数において、別の関数を利用する。

シグモイド関数

ニュートラルネットワークでよく用いられる活性化関数の一つは**シグモイド関数(sigmoid function)**である。

h(x) = \frac{1}{1 + e^{-x}}

スクリーンショット 2023-12-17 15.02.34.png

シグモイド関数は活性化関数として古くから利用されていた。
最近は次に紹介するReLU (Rectified Linear Unit)という関数が利用される。

ReLU関数

\begin{equation} \label{c}\tag{3}
 h(x)= \left \{
 \begin{array}{l}
 x (x \gt 0のとき) \\
 0 (x \leq  0のとき)
 \end{array}
 \right.
 \end{equation} 

スクリーンショット 2023-12-17 15.07.47.png

この関数を使ったものもニュートラルネットワークの一部である。

この関数の重みを変えながら、多重層にして出力を出していくのが次のステップである。
まずは、「パーセプトロンからニュートラルネットワーク」をまとめた。
次の記事では、ニュートラルネットワークをどう実装していくかを見ていくことにする。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0