AI分野はPythonでつながっている

 他にもKerasPyTorchCaffeなど、フレームワークは百花繚乱の様相を呈しているが、これらもほとんどは主にPythonを使うものだ。というのも、Pythonは非常に記述性が高く、AI分野ではユーザーサイドでも使いやすい主流の言語となっているためである。AIの基本的な部分は高度なフレームワークを活用し、データを解析する本当のノウハウ部分だけを書きやすいPythonで構築することが可能だ。

 また、Pythonの影響は「教材」であるデータを用意する側にも及んでいる。前処理としてデータを加工するscikit-learnpandasなどのライブラリも、Pythonの利用が前提となっている。さらに、これらの仕組みを利用する実行環境の部分でもPythonが使われており、AIに関するそれぞれの技術要素をつなぐ糊のような役割を果たしている。

Pythonの特徴と弱点とは

 PythonはもともとAIのために開発されたわけではないのだが、AI分野での利用が多いのは、次のような特徴を持っているからだろう。

●インタプリタ型言語
●ライブラリの充実
●書きやすさと読みやすさ

「インタプリタ型言語」というのは、作成したプログラムをすぐにその場で実行できる言語のこと。プログラムの実行ファイルを作る「コンパイル」と呼ばれる手順が不要で、インタプリタ(「翻訳者」の意)がコードをその場で翻訳してくれる。そのため、試行錯誤に強く、仮説と検証を繰り返すAI分野に向いている。

 また、数学や統計に強いことも特徴。この部分に関しては、数理計算のためのたくさんのライブラリ(NumPyやSciPyなど多数)が用意されており、自分でコードを書く以上に複雑な計算を効率よくできる。

 加えて、書きやすさと読みやすさもPythonの強みである。簡潔な記述でプログラムを書くことができ、後からコードを読んでもプログラムが読みやすい。初心者にとってプログラム言語は書くことも読むことも一苦労なのだが、Pythonは書きやすく読みやすい言語ということで、多人数で開発するときにも向いている。

 Pythonの弱点を挙げるとすればまさに「インタプリタ型言語」であるという点。インタプリタ型言語(他にもRuby、Perl、PHPなどがある)は、コンパイル型言語と比べてプログラムの実行速度が遅いといわれている。しかし、近年はハードウェアの進歩などでその点もあまり問題にならなくなっている。

 世界的なレベルでも「Pythonで大規模な開発をした」という事例の報告も多く、オンラインストレージサービスのDropboxが全面的にPythonで開発されていることはよく知られている。他にも、SNSのInstagramはPythonで開発を行い、システムはAWSのクラウドサービスを使って作られている。クラウド時代になったことで、システムのパワーが足りない時に必要とされる演算力をいつでも容易に調達できるようになったことも、AI分野でインタプリタ型言語が普及した背景になっているのかもしれない。