畳み込みニューラルネットワーク (CNN:Convolutional Neural Network)

例の書籍「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装」を一通り読み終わりました。



ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

「あえてPythonを使わずにUnity C#で実装しながら勉強する」とか言っておきながら、結局途中でコーディングを断念。意外と面倒だったので。。。

書籍のPythonコードをUnity C#で再現しようとしてMNISTデータセットをUnityのテクスチャとして読み込むコードとかも書いたりしたんだけど、lambda式や抽象クラス、インターフェイスあたりで混乱して躓いた。改めてPythonとNumPyの記述の手軽さを理解しましたとさ。抽象度が高い代わりに読みづらくもあるんだけど。

2018年7月 追記:CNNではないけど、mattatzさんがUnity上で動くニューラルネットワークの実装を公開している。


https://github.com/mattatz/UNN

MINISTデータセットをC#で読み込むやり方のサンプルあるのね↓
https://jamesmccaffrey.wordpress.com/2013/11/23/reading-the-mnist-data-set-with-c/

2019年 追記:C#で使えるNumPyライクな数値計算ライブラリを知ったので、今ならコレを使う↓




スポンサーリンク


さて、書籍でCNNの仕組みまでは分かったところで、ちょっとYouTubeで調べてみたら、CNNの動作の様子を可視化してくれてる人がチラホラいる。

畳み込み層 (Convolution Layer)

こちらは畳み込み層の動作を可視化した動画↓

The Convolution Layer (CNN Visualization)

Convolutional Neural Network Visualization by Otavio Good

プーリング層 (Pooling Layer)

こちらはプーリング層の動作を可視化した動画。(最大値を取るMax-Poolingの例)

Max-Pooling Layer (CNN Visualization)

追記:こちらの記事のgifがとても分かりやすい↓
http://pynote.hatenablog.com/entry/dl-convolutional-neural-network

3D Visualization of a Convolutional Neural Network

こちらはWeb上でインタラクティブにCNNの動作を見れるデモ。定番のMNISTデータセットを使った手書き数字認識。
http://scs.ryerson.ca/~aharley/vis/conv/

What a Convolution Neural Network sees in the image? – Visualizing a classic CNN

3D Multilayer Neural Network Simulation

Deep Neural Network 3D Simulation – Computer vision – Digit Recognition | Unity 3D & C#

https://tutorials.retopall.com/index.php/2019/02/17/neural-networks/
https://tutorials.retopall.com/index.php/2019/02/24/convolutional-neural-networks/
https://tutorials.retopall.com/index.php/2019/03/01/aieditor-neural-network-editor/


スポンサーリンク

3Blue1Brown

そして、数学をアニメーションで視覚的に解説するYouTubeチャンネルを発見。
https://www.youtube.com/3blue1brown

今月ちょうどニューラルネットワーク(畳み込みではないけど)の動画が公開されたところ。

But what is a Neural Network? | Deep learning, chapter 1

Gradient descent, how neural networks learn | Deep learning, chapter 2

What is backpropagation really doing? | Deep learning, chapter 3

Backpropagation calculus | Deep learning, chapter 4

仕組みを理解してからだとネット上の記事も読めるようになるけど、初見だとなかなか。
https://deepage.net/deep_learning/2016/11/07/convolutional_neural_network.html

ところで、探してみると、ニューラルネットワークを可視化している人が結構いることに気づいた↓
http://hhok777.hatenablog.com/entry/2016/11/08/184233

Animation for Neural Network Intuition (720p)

https://www.youtube.com/user/munimunibekkan/

機械式パーセプトロンでガリデブ判定【最終版】/NN#4【むにむに】

アルゴリズムを物理的な機械構造へ落とし込むスキルがすごい。。。

機械式ニューラルネットワークで論理演算/NN#5【むにむに】

3D Neural Network Simulator 2019 | C++ UE4

最近知ったDrawNetというやつ↓
http://people.csail.mit.edu/torralba/research/drawCNN/drawNet.html

追記:こういうのもある↓



以前見つけたお勉強ツールのMLDemosは、各機械学習手法による処理結果の違いを可視化するツールだったけど、動作の仕組みそのものを可視化して眺めるともう一段踏み込んで理解ができるね。(MLDemosにDeepLearningは入ってなかったけど)
機械学習について理解するための可視化ツール『MLDemos』
たまたま面白いツールを見つけた。機械学習のパラメータをいじるとインタラクティブに学習結果が可視化して見れるお勉強アプリ。MLDemos - A visualization tool for machine learningMLDe...

読書再開

ということで、再びこちらの書籍に戻る。

イラストで学ぶ ディープラーニング (KS情報科学専門書)

階層型ネットワークである畳み込みニューラルネットワークまでは分かったので、グラフィカルモデル系の相互結合型ネットワークから読書再開。
ホップフィールドネットワークの可視化動画も見つけたけど、ちょっと理解できない。。。

3D Hopfield network visualisation


スポンサーリンク

関連記事

UnityプロジェクトをGitHubで管理する
3Dデータ処理ライブラリ『Open3D』
OpenCV 3.1のsfmモジュールのビルド再び
ベイズ推定とグラフィカルモデル
全脳アーキテクチャ勉強会
UnityのTransformクラスについて調べてみた
コンピュータビジョンの技術マップ
Multi-View Stereoによる3次元復元ライブラリ『OpenMVS』
Unityの新しいGUI作成システム『uGUI』
Kinect for Windows v2の日本価格決定
Point Cloud Consortiumのセミナー「3D点群の未来」に行ってきたよ
映画から想像するVR・AR時代のGUIデザイン
写真に3Dオブジェクトを違和感無く合成する『3DPhotoMagic』
今年もSSII
3DCG Meetup #4に行ってきた
GANs (Generative Adversarial Networks):敵対的生成ネットワーク
Deep Learningとその他の機械学習手法の性能比較
写真から3Dメッシュの生成・編集ができる無料ツール『Autodesk Memento』
3Dスキャンしたテクスチャから照明を除去するUnityツール『De Lighting tool』
BlenderでPhotogrammetryできるアドオン
OpenCVの三角測量関数『cv::triangulatepoints』
Houdiniのライセンスの種類
PCA (主成分分析)
Unityで画面タッチ・ジェスチャ入力を扱う無料Asset『TouchScript』
ポイントクラウドコンソーシアム
書籍『ゼロから作るDeep Learning』で自分なりに学ぶ
FCN (Fully Convolutional Network):ディープラーニングによるSema...
RefineNet (Multi-Path Refinement Network):ディープラーニン...
機械学習手法『SVM(Support Vector Machine)』
C#で使える可読性重視のディープラーニングライブラリ『KelpNet』
機械学習での「回帰」とは?
OpenCV 3.3.0-RCでsfmモジュールをビルド
OpenCV 3.1から追加されたSfMモジュール
映像ビジネスの未来
統計的な顔モデル
C#で使えるNumPyライクな数値計算ライブラリ『NumSharp』
Unityで学ぶC#
Unityからkonashiをコントロールする
書籍『イラストで学ぶ ディープラーニング』
コンピュータビジョン研究のためのUnreal Engineプラグイン『UnrealCV』
オープンソースのSfM・MVSツール『COLMAP』
Unity ARKitプラグインサンプルのドキュメントを読む

コメント