こんにちは。よっしーです。
これまでの記事:
ディープラーニングを体感しよう:第1章(まずは環境構築)
ディープラーニングを体感しよう:第2章(Python環境を構築する)
ディープラーニングを体感しよう:第3章(プログラムを動かしてみよう)
前回は、プログラムコードの内容を見ていきました。
・ライブラリのインポート処理
・手書き数字のデータセット取得
・学習用データ、テスト用データの整形
について解説しましたので、
今回も、前回に引き続き、プログラムコードを見ていきたいと思います。
・ライブラリのインポート処理
・手書き数字のデータセット取得
・学習用データ、テスト用データの整形
について解説しましたので、
今回も、前回に引き続き、プログラムコードを見ていきたいと思います。
model = Sequential() model.add(Dense(256, input_dim=784)) model.add(Activation("sigmoid")) model.add(Dense(128)) model.add(Activation("sigmoid")) model.add(Dropout(rate=0.5)) model.add(Dense(10)) model.add(Activation("softmax"))
ここの処理で、ニューラルネットワークを作成しています。
正直、このコードだけ見ても、なかなかイメージが沸きません。
1行目の Sequential() は、
Sequentialモデルというニューラルネットワークの層を積み重ねたモデルを使用することを表しています。
その後の add() で、ニューラルネットワーク層を構築しています。
ここでは3層の作られており、
784(入力層) → 256(隠れ層) → 128(隠れ層) → 10(出力層)
という形でが形成されます。(※入力層はカウントされないため3層となります。)
で、この数値はノードを表しています。
文字だけで書くと「チンプンカンプン」なので絵にしてみましょう。
イメージとしてはこのような構成となります。
実際に入力と出力を紐付けると、以下のような形となります。
層を進むにつれて、ノード間で情報を渡し、出力内容を導き出すといった形となります。
ここでは、「シグモイド」と「ソフトマックス」いう活性化関数を利用して、パターン検出しています。
これらの活性化関数については、数学の難しい公式を利用して結果を得ています。
正直、数学好きでないと内容についていけないレベルです。
なので、私は深追いせず、そういった名前のロジックを使っているんだな。
という程度で理解しています。
今日はこのあたりで。ではまた~。
0 件のコメント:
コメントを投稿