やみとものプログラミング日記 やみとものプログラミング日記
TOP 「詳解 ディープラーニング」 3章 まとめ
「詳解 ディープラーニング」 3章 まとめ

「詳解 ディープラーニング」 3章 まとめ

ディープラーニング Python プログラミング 機械学習 独学 勉強
作成日時: 2019年7月27日
更新日時: 2019年7月29日
RNNを理解・実装したいと思い、「詳解 ディープラーニング TensorFlow・Kerasによる時系列データ処理」という本で勉強しています。
この記事はその勉強記録です。今回は第3章「ニューラルネットワーク」を読んでいきます。
Amazonリンク

ニューラルネットワークとは

人間の脳の構造をヒントにした人工知能アルゴリズムの一つ。
ニューロンと呼ばれる脳の神経細胞のネットワークを模したアルゴリズム。

ディープラーニングとは

人間の脳のニューロンネットワークは階層構造を成していて、より入力に近い層は具体的な概念(点や線など)を認識し、より高位の層(入力から遠い層)では猫や車などの一般的な概念を認識する。
ディープラーニングとはこのような一般概念まで認識できる層の深いニューラルネットワークを使ったアルゴリズムのことをさす。

ニューラルネットワークのモデル化

ニューラルネットワークをモデル化するためには、まずその構成要素のニューロンをモデル化しなければならない。

上の図の4つの丸はニューロンを表す。真ん中のニューロンに注目してほしい。
左側にある3つ(3つでなくても良い)のニューロンの出力$ x_1, x_2, x_3 $を受け取り、それぞれに重み$ w_1, w_2, w_3 $を掛けた(前のニューロンの重要度を考慮していることになる)上で総和を取り、一定の閾値$ \theta $を超えた場合、右側のニューロンに1を出力する。
この数式が以下のようになり、これがニューロンのモデルである。
\begin{eqnarray}
y
=
\begin{cases}
1 & ( w_1x_1+w_2x_2+w_3x_3 \geqq \theta ) \\
0 & ( w_1x_1+w_2x_2+w_3x_3 \lt \theta )
\end{cases}
\end{eqnarray}
ここで次のような関数を考える。
\begin{eqnarray}
f(x) =
\begin{cases}
1 & ( x \geqq 0 ) \\
0 & ( x \lt 0 )
\end{cases}
\end{eqnarray}
この関数を使うとニューロンのモデルは次のように表せる。
\[ y = f(w_1x_1 + w_2x_2 + w_3x_3 - \theta) \]
この関数$f$をステップ関数(step function)という。

ニューラルネットワークの学習

上で説明したニューロンのモデルのパラメータ$ w_1, w_2, w_3, \theta $を適切な値に修正していくことが学習である。
どの入力を重要と見るか($ w_1, w_2, w_3 $の調整)、どの程度入力の信号(の総和)が大きくなれば信号を発する(発火する)か($ \theta $の調整)、を学習する。
具体的なアルゴリズムとしては誤り訂正学習法がある。

ロジスティック回帰(logistic regression)

これまで説明してきたニューラルネットワークのステップ関数をシグモイド関数に置き換えたもの。
ディープラーニング』カテゴリの記事 Python』カテゴリの記事 プログラミング』カテゴリの記事 機械学習』カテゴリの記事 独学』カテゴリの記事 勉強』カテゴリの記事