CNNは画像認識の分野で驚異的な精度を誇るディープラーニングのアルゴリズムのひとつであるものの、ぱっと見がとても複雑な構造をしているため、実装するのも大変そうです。 実際、ネットや文献上で見られる多くのCNNの実装は、Theano (pythonのライブラリ)の自動微分機能を使っていたり、MATLABの組み込み関数を使っているものがほとんどです。 そのためか、きちんと forward propagation & backpropagation を数式で書き下している文献はないように思いました。(もちろん、楽に実装できるならばそれはそれで素晴らしいことです。) そこで、どうすれば CNN を実装するための数式を書き下せるのか、レイヤーごとに分けて導出していきたいと思います。 まず、CNN がどんな層に分解できるのかについて。これは、下記の3つで表せるでしょう。 Convolution Lay
![数式で書き下す Convolutional Neural Networks (CNN) - Yusuke Sugomori's Blog](https://cdn-ak-scissors.b.st-hatena.com/image/square/912e9e10f77f370b663f9f3de04a046bae1f96c7/height=288;version=1;width=512/http%3A%2F%2Fyusugomori.com%2Fassets%2Fogp.png%3F20140224)