ディープラーニングを通じて見る、構え撃て狙え、あるいはDRY原則

Eiji Ienaga
時を超えたプログラミングの道
4 min readNov 10, 2016

--

Photo credit: sinkdd via Visual Hunt / CC BY-NC-ND

今日は、最近、私が学習中の書籍の紹介です。

PyCon JP 2016 に参加したときに購入した本です。機械学習やディープラーニングのキーワードを耳にする機会が増えて、いくつかの本やサイトを試して学習を続けてきたのですが、この本に出会ってとても驚きました。

この本の特徴は、ディープラーニングを学ぶ上で重要な内部要素(パーセプトロン、ニューラルネットワーク、ニューラルネットワーク学習、誤差伝搬法etc..)をゆっくりとステップバイステップで積み上げて解説している構成です。とくに、5章の誤差伝搬法の丁寧な解説は数式だけの説明では振り切られがちな私にはとてもありがたい内容になっています。TensorFlow等の外部ライブラリは使っていませんので、そちらを知りたい人は、別の本やサイトをおすすめします。

写経中

私は、途中まで本を読み進めたのち、 Docker を使って、AnacondaJupyterの環境を整えて、本に記載されたPythonのコードを書き写して学んでいる途中です。本のコードを書き写してプログラミングを学ぶ方法を、一部では「写経」と呼んでいます。実際に手を動かして学ぶことで読むだけよりも身につくことが期待できます。新しい言語やライブラリーやTDDを学ぶ際に「写経」はオススメです。

写経に似た学習方法は、『アプレンティスシップ・パターン』では「練習、練習、練習」として知られています。こちらも参考にして下さい。

ビジネスゴールに近づく構え撃て狙えの試行錯誤はアジャイルな開発のコンテキストでは、個人やチームで行うものです。一方、ディープラーニングのコンテキストでは、ゴールに近づくように機械が自動で学習します。もしかしたら、近未来では、ソフトウェア開発における試行錯誤は、機械によって、どんどん置き換わっているかもしれませんね。

DRY原則では、プログラマが複雑な対象ドメインを整理し簡潔明瞭なコードに変換して、コードや作業や知識の重複を取り除きます。一方、ディープラーニングでは、人ではなく機械が対象のドメインを数式モデルを使って自動で整理します。

現在は、機械学習やディープラーニングのが得意としている対象ドメインは、異常検知、故障予測、商品のリコメンド、画像や文書の分類などなど限定的ですが、今後どこまで広がっていくかは(あるいは過剰な期待で広がらないのか)は注目です。

機械学習、ディープラーニングによって、どんな開発の未来がやってくるかまだわかりませんが、これからもキャッチアップを続けていきたいです。

--

--