読者です 読者をやめる 読者になる 読者になる

外資系マネージャーの独り言

日本で外資系企業のソフトウェアエンジニアマネージャーをやってる人のブログです

KerasとDeep Learning

ソフトウェアエンジニア 人工知能

とある個人プロジェクトで機械学習を使いたいなーと思いつつも、自前で下回りから組むわけにもいかないし…と悩んでいたところで、TensorflowやTheanoをバックエンドとして透過的に扱える、Deep Learningに特化したラッパーライブラリであるところのKerasを使えばよさそうということでやってみた。

f:id:jpsdm:20170226075524p:plain

既存の仕組みを使って解析したデータをシンプルなNNに流し込んで計算させたところ、あっけなく誤差2,3%未満での予想に成功。これまでは、独自に考えた数式をネチネチといじくって、パラメーターをどうしてこうして…とマニュアルな手続きを繰り返してようやく誤差10%を切ってという次元だったので、ちょっとしたブレイクスルーと言える。

数学的により高度なことができるわけだから、当たり前といえば当たり前だけど、仮説を立てて、モデルを考えて、データを集めて、モデルにフィットするかを検証して...ということを人間様が繰り返すよりも、はるかに高速にコンピューターが独自に計算モデルを確立してくれる…というプロセスがあっけなく完成したしまうことに本当に驚いた。

こりゃー世界中でDeep Learningが流行るわけだよねと思うと同時に、パラダイムシフトと言うにふさわしい変化はまだまだこれから起きてくるのだろうなという印象を受ける。データ解析やデータをもとにしたロジックを組み立てる際に、人間がそのデータをどうコンピューターに料理させるかを考えるのではなしに、そもそも初めから「いかにコンピューターが処理しやすいデータに整形して、あとはコンピューターに任せて、効率的にアウトプットを出していけるか」を考える、という意味でコンピューターやデータとの付き合い方に質的な変化が生まれつつあるのかなと感じる。

www.coursera.org

実は、昨年に興味本位でCourseraで提供されているStanfordのMachine Learning(ML)のコース(講師はCourseraの創始者の一人Andrew Ngさんで、とてもよくできているコース)を受講していて、一通りMLについては慣れ親しんでいたつもりだったし、仕事で近隣のチームがMLを活用している様を見ていたので、近いうちに何かMLかDeep Learningの技術を仕事に活用したいなーとは思っていたのだけど、今回Deep Learningの力を目の当たりにしてその思いがより強くなった。

巷ではData Scientistという職業が興隆していて、イメージとしてはアカデミックなバックグラウンドを持っててRとかHadoopとかが得意そうな人種が巨大なデータを処理してる印象だけど、Kerasみたいな(比較的)とっつきやすい仕組みができてくると、ソフトウェアエンジニアが現実的な問題に対してMLやDeep Learningのテクニックを手軽に適用して色々と面白いことができるんでないかなーと感じた。