Update 2023.11.25

TwoMoons 2DNN(Dense2層ニューラルネットワーク) フロムスクラッチ
機械学習ディープラーニング・シャローラーニング ベストプラクティス
TensorFlow, Keras, LightGBM の教科書

斎藤 康毅著『』ゼロから作るDeepLearning』をきちんと動作するようにしました

左の図はTwoMoons 2DNN(Dense2層ニューラルネットワーク)(中間層1層)の出力図です。

分類問題はシャローラーニングでもできますが,ニューラルネットワークの出力図はそれらに比べて圧倒的に滑らかです。

かなり高次の曲線のようにも見えますが,ノード数は,2-3-2 でありパラメータ数は,17です。

この図は,TensorFlow, Kerasで作ったものとまったく同じ図になっています。


(2023-11-25 Python3.10.9(GPUマシン)で動作確認済み)


筆者も2DNN(中間層は1層)をフロムスクラッチで作ったことがあります。テーマは同じTwoMoonsです。下に添付の計算グラフはその時に書いたものです。

行列演算をコードにするには,すべて2次元配列にする必要があります。リストは縦ベクトルか横ベクトルにする必要があります。 行列のドット積は,shapeを次のように読み取ればマチガイはしないです。

(a, b)・(b, c) = (a, c)

まず,前の行列の列数と後の行列の行数が一致しなければならないです。そして,それを除けば,結果の行数と列数になります。

誤差逆伝播バックプロパゲーションの計算グラフもつくりました。これも行列の演算になりますが,比較的簡単な演算式になります。


下の枠に添付のhtmlファイルは「Jupyter Notebook」の.ipynbファイルをhtml化したものでそれぞれのファイルは左上隅からダウンロードできます。

Python3 on Jupyter Notebook(拡張子.ipynb)on GPU


トップページに戻る
inserted by FC2 system