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

A.I.lab(エー・アイ・ラボ)- 人間の、人間による、人間のための人工知能メディア

人工知能の考察、ディープラーニング、機械学習、各種アルゴリズムなど。

Webフレームワークと人工知能の秘密の関係

多くのWebアプリケーションはRuby on RailsPlay Framework、小規模なものであればWordpressなど、効率的に開発を行うためのフレームワークを使用しているのではないでしょうか。

f:id:ailab:20160907074215j:plain
人工知能フレームワークPythonC++が多い

例えば、ディープラーニングの手法を既存のWebサービスに組み込む場合にはどのようにしたらよいのでしょうか?

ディープラーニングのライブラリはC系の言語で書かれていることが多く、今までPHPRubyなど、メジャーフレームワークの選定にもとづいて選択した言語しか触ってこなかったエンジニアにとっては、なかなかとっつきづらいというのが本音ではないでしょうか

これから人工知能機能の開発に本腰を入れていこうと考えている方や、触りだけでも試験導入してみたいという方へ向けて、複数の言語の受け渡しが必要なケースについてどのように連携していくのかを俯瞰してとらえていくことにしましょう。

1. PHPとC 言語の連携

d.hatena.ne.jp

2. PHPPythonの連携

PHP から Python プログラムを実行させる方法について

3. RubyC言語の連携

qiita.com

4. RubyPythonの連携

www.tsugihagi.net

C言語C++をイチから勉強するのは難しいという方でも、MVC系のフレームワークディープラーニング系のフレームワークを組み合わせて、プロトタイピングすることもできる時代です。

より柔軟に拡張したり、パフォーマンスを最大化したいなど、特定の目的が明確に見えている場合はゼロから開発することが必要だと思いますが、とりあえず触ってみたいという方は、便利な仕組みを利用して開発をおこなってみてはいかがでしょうか。

f:id:ailab:20160907074212j:plain
人工知能フレームワークMVCフレームワーク

人工知能系のライブラリはある程度充分に揃っているため、これからは既存のサービスなどといかにして組み合わせるか、という課題を具現化していくという動きが予測されます。

Linux環境でディープラーニングフレームワークを試すというところから一歩踏み出して、ご自身のブログにチャットボットを埋め込んでみたり、独自の商品紹介レコメンドなどを実装してみたり、実用的な人工知能の発展が進むと盛り上がっていきそうですね。

人工知能のプログラムの障壁は、ある種言語の障壁でもあり、理解した上でフレームワークを使用できる方というのはまだまだ多くない印象ですが、Ruby on Railsが人気になったように、ChainerTensorFlowなどのフレームワーク側もより簡単に使用できるように進化していくと人工知能のプログラムの発展も加速するのかもしれません。