タグ

ブックマーク / blog.yusugomori.com (2)

  • 数式で書き下す Convolutional Neural Networks (CNN) - Yusuke Sugomori's Blog

    CNNは画像認識の分野で驚異的な精度を誇るディープラーニングのアルゴリズムのひとつであるものの、ぱっと見がとても複雑な構造をしているため、実装するのも大変そうです。 実際、ネットや文献上で見られる多くのCNNの実装は、Theano (pythonのライブラリ)の自動微分機能を使っていたり、MATLABの組み込み関数を使っているものがほとんどです。 そのためか、きちんと forward propagation & backpropagation を数式で書き下している文献はないように思いました。(もちろん、楽に実装できるならばそれはそれで素晴らしいことです。) そこで、どうすれば CNN を実装するための数式を書き下せるのか、レイヤーごとに分けて導出していきたいと思います。 まず、CNN がどんな層に分解できるのかについて。これは、下記の3つで表せるでしょう。 Convolution Lay

    数式で書き下す Convolutional Neural Networks (CNN) - Yusuke Sugomori's Blog
    masatoi
    masatoi 2016/12/04
  • 数式で書き下す Maxout Networks - Yusuke Sugomori's Blog

    Maxoutは、他のディープラーニングの手法とは異なり、活性化関数自体を学習するという、少し特殊な手法です。論文にも示されている通り、実験による精度は人気の活性化関数である rectifier (ReLU) よりも高い結果が得られていますが、そのとっつきにくさからか、敬遠されがちな気がしています。そこで、前回のCNN記事と同様、数式で Maxout function を書き下してみたいと思います。 (ちなみに、CNNpythonで実装したものの、これまでのコードをかなり変える必要があったり、python向けに最適化できていなかったりするため、devブランチに置いています。ソースコードはこちらからご覧ください。) さて、Maxout を数式で表すために、以下の graphical model に沿って説明したいと思います。Maxoutは図の真ん中の部分で、図の左端は入力層、右端はもしdee

    数式で書き下す Maxout Networks - Yusuke Sugomori's Blog
    masatoi
    masatoi 2016/12/04
  • 1