「ゼロから作る Deep Learning ―Python で学ぶディープラーニングの理論と実装」は以前途中まで読んでいたけれども復習もかねて。
- (参考)サンプルコード
1 章 Python 入門 🔗
Python 環境は docker-compose で構築。ローカルの work フォルダを同期。
|
|
2 章 パーセプトロン 🔗
- ニューラルネットワークの起源
- $x_1, x_2$ : 入力信号
- $y$ : 出力信号
- $w_1, w_2$ : 重み(weight)
- 入力信号に固有の重みが乗算( $w_1x_1$, w_2x_2$ )
- 総和がある限界値を超えた場合のみ 1 を出力。その閾値を $\theta$ という記号で表す
$$ y=\begin{cases} 0 & (w_1 x_1 +w_2 x_2 \leq \theta )\\ 1 & ( w_1 x_1 +w_2 x_2 >\theta )\end{cases}$$
- 重み = その入力信号の重要性をコントロールする要素
- 学習とは、適切なパラメエータを決める作業であり、人が行う仕事は、パーセプトロンの構造(モデル)を考え、コンピュータに学習データを与えることになる
論理回路(AND) 🔗
|
|
- $\theta$ -> $-b$ (バイアス)と置くと
$$ y=\begin{cases} 0 & (w_1 x_1 +w_2 x_2 + b \leq 0 )\\ 1 & ( w_1 x_1 +w_2 x_2 + b > 0)\end{cases}$$
|
|
論理回路(NAND) 🔗
NAND は重みとバイアスだけ符号を変える
|
|
論理回路(OR) 🔗
バイアスのみ変更
|
|
- パーセプトロンで XOR は表現不可。図で考えた場合直線で 0,1 を分けることができない
- パーセプトロンは、層を重ねること(そうを深くすること)ができ、柔軟な表現が可能となる(多層パーセプトロン)