機械学習(人工知能)向けのプログラミング言語

記事公開日:
最終更新日:

Sponsored Links

本記事は機械学習(人工知能)やってみようかな…という方向けに、機械学習(人工知能)向けのプログラミング言語を紹介しています。
基本的に、記事を修正している2018年現在でPythonが優勢です。
将来、プロジェクトで使う予定のフレームワークなどにも影響されるかと思うので、利用するフレームワークから絞っていくのもアリかなと思います。

機械学習(人工知能)におすすめのプログラミング言語

機械学習(人工知能)を使おうかなと思う時に、おすすめのプログラミング言語は個人的には R言語 か Python です。

理由としては、機械学習(人工知能)の処理は統計学や数学を多用するのですが、けっこう数学とかに詳しくない限りは既存のライブラリに頼ることになります。
その点、R言語 と Python は機械学習(人工知能)向けのライブラリが充実しているので、非常に便利です。

R言語

R言語 はプログラミング言語と統計解析用の開発環境が一緒になっているようなオープンソース・フリーソフトウェアです。

教育機関や研究機関など本格的な統計分析を行う場合にはメジャーな言語で、一般的なプログラミング言語よりかは統計分析に特化されている分、統計分析用にロジックを書く必要がない(高度な分析をする時には自作する必要がありますが)ので使いやすいです。

他の凡用言語(Perl,Python,Ruby)などで実装する前に、統計分析の基本モデルを作ったりするのによく使われるようです。

Rによるやさしい統計学

Python

R言語対してPython は汎用言語と呼ばれる色々なアプリケーション(webアプリやデスクトップアプリ)を作るのに適したプログラミング言語です。統計分析用に書いたプログラミングコードは自作ライブラリとして、簡単にWEBアプリケーションなどの製品に組み込むことが可能です。スマートフォン向けならWEBのAPIとして使う場合が多いかと思います。

過去の記事 集合知プログラミング:遺伝的プログラミングのツリー構造のソースコードを読み解く にて、機械学習のアルゴリズムの一種である遺伝的プログラミングを読み解いている記事がありますので、Pythonってなにそれ?という方は参考にしてみてください。

また、Pythonは他の汎用的なプログラミング言語と比べても機械学習(人工知能)のライブラリがひととおり揃っていています。
なので、R言語 は本格的な統計分析を行いたい場合(もしくはプログラミング言語を学びたくないが、統計分析をプログラミングで処理しなければならない場合)、Python はWEBサービスなどのアプリに機械学習を利用したいという場合に使い分けるのが良いと思います。
弊社的にはPythonのみで十分な状態ですが。

特に、Googleの「Tensorflow」やPreferred Networksの「Chainer」など、PythonにはDeep Learningの有名どころのフレームワークがありますので、機械学習(人工知能)ちょっとやってみようかな…という場合には良いと思います。
Deep Learning以外の機械学習(人工知能)ライブラリとしては「scikit-learn」というライブラリがあり、メジャーな機械学習の手法のライブラリが揃っています。
また、Python の機械学習(人工知能)のライブラリについては過去の記事「pythonで機械学習系のライブラリをインストールして環境構築する手順(windows7-32bit)」で触れているので参考にしてみてください。

その他のプログラミング言語

JAVA

JAVAだと、「Deeplearning4j」とか「H2O.ai」などのフレームワークを使っているとよく聞いたりします。
どちらかというと、JAVAの性質上、大規模開発で分散処理が必要だったりするプロジェクトが相性良いのではないでしょうか。

C++

C++だと、「TensorFlow」「Caffe」「Deeplearning4j」などが使われる機械学習フレームワークみたいです。
プログラミングするチームが C++ が好きだったり、速度をストイックに求めるならば C++ を採用することがあるようです。

個人的にPython推しなので擁護しておくと、Pythonライブラリでは高レベルAPIにおいてはPythonで動いていても、低レベルAPIにおいては最適化されたC言語で処理されているので、とくかく早い方がいい!というのでなければPythonでもストレスは感じないかなと思います。

About
Amelt.net,LLCの創業者で、費用対効果の高い統合webマーケティングによりビジネスパートナーとして継続的にサポート。詳しいより。ブログの更新情報facebookページGoogle+そしてTwitter、またRSSfeedlyLINE@にてお知らせしていますのでフォローよろしくお願い致します。


Sponsored Links