人工知能の開発と相性の良いプログラミング言語3選 | SiTest (サイテスト) ブログ

メニューボタン閉じるボタン

人工知能の開発と相性の良いプログラミング言語3選

こんにちは、プロダクト開発チーム エンジニアの森永です。

このところ人工知能を採用した製品が相次いでリリースされており、弊社のSiTestでも人工知能を用いたアルゴリズムの採用が進んでおります。人工知能のプログラムングを究めている人もいれば、これから人工知能のプログラミングを始めるという方もおられるかと思います。

そこで今回は、人工知能の開発に相性が良いと言われているプログラミング言語のうちから(独断で)3つを選びご紹介いたします。

LISP

LISP
最初のバージョンが開発されたのが1958年とプログラミング言語としては歴史の長いLISP。人工知能の研究、開発で長年使われ続けています。

開発者のジョン・マッカーシーは「人工知能」という言葉を最初に提唱した研究者です。当初から「人工知能用の言語」というコンセプトがあったのかもしれません。

LISPはスペースで区切られた要素を括弧で囲むという独特の記法で書かれます。大きな特徴としては次の4つが挙げられます。
参考:https://blog.codecamp.jp/lisp

  • 変数に型がない
  • 全てはリストである
  • 関数は値でもある
  • 関数定義は関数呼び出しで行う

これらの特徴をみると実行時にどんどん新たな関数を作り出していき記録することが人工知能での研究、開発で使われ続けている大きな理由と言えるでしょう。

なお、LISPには系列の言語が多数存在していますが、現在は主にCommon LispSchemeが使われております。

Python

Python
現在人工知能関連で最もよく使われている言語となるとPythonを挙げる人も多いかと思います。グイド・ヴァンロッサムが1994年に最初の正式バージョンをリリースしました。名称はイギリスのコメディ番組「空飛ぶモンティ・パイソン」に由来しています。

LISPに比べると歴史は浅いですが、グイド・ヴァンロッサムが2005〜2012年にGoogleに在籍していることや、Googleでの様々なサービスやアプリケーションがPythonで開発されていることもあり欧米を中心にいろいろな企業で採用されています。

他にも

  • 動的な片付けが可能
  • インデントでブロックを表現する
  • 極力余分な記述を排除しており少ない行数完結にでコードを書くことが出来る

といった特徴があり、初心者にも扱いやすいことも人気の要因の一つといえます。

Pythonは「LISPに影響された」「LISPの方言の一つ」という説もあり、かつ数値計算やデータを扱うライブラリが豊富なため人工知能の開発に向いていると言われているのではないかと考えられます。

最近ではソフトバンクのPepperにおいて各機能の開発に使用されていることでも知られています。

プログラマーの言語別平均年収ではPythonが最も年収が高いという調査結果もあり、これから人工知能のプログラミングを始めるには最適な言語と言えるかもしれません。

LiveScript

LiveScript
最後は(手前味噌ですが)弊社で採用されているAltJSのLiveScriptを紹介します。

すでに本ブログでも何度も取り上げられているため詳細は省略しますが、関数型のように記述を行うことが出来ます。

特に再帰、高階関数などの扱いがし易い点は上記のLISP、Pythonに通じるものがあります。さらにAltJSなので当然コンパイルすることでJavaScriptを生成できるため、Web、人工知能の両方に相性が良いと言っても過言ではありません。

もちろん、SiTestの人工知能を用いた機能(AIレポートAI自動テスト)でも採用されています。

最後に

他にも人工知能のプログラミングでは様々なプログラミング言語が使用されております。

上記の3つであれ、その他の言語であれ、人工知能の用途によって適した言語は異なりますが、これから人工知能の開発を行う方の参考になれば幸いです。