AI分野は共創の軸として盛況が続いている
コンピュータ言語を詳しく知らなくても、その役割や位置づけを知っておくことは、AI企業との共創で力になるだろう。ここではPython言語(以下、Python)を通じて現在のAI分野の全体像を大まかに整理してみよう。
オープンイノベーションの取り組みとして注目を集めるAI分野
平成から令和へ、時代の区切りが新しくなっても引き続き人工知能(AI:Artificial Intelligence)の分野は盛況が続いている。一方、昨年のガートナージャパンの発表によれば、AIは技術用語として黎明期から「過度な期待」のピーク期を過ぎ、幻滅期に入ったとされる。しかし、これはAIが技術の特別なトレンドではなく、逆に企業が取り組むべき通常の課題になったことを示すともいえるだろう。実際、TRI-AD/Maxarテクノロジーズ/NTTデータによる自動運転車用の地図生成、ファナックとPrefferred Networksによる工作機械分野へのAI応用、ABEJAと日立物流との共同開発によるサービスの提供など、今年になってからも、特に企業間での共創を軸とした話題には事欠かない。AI分野は、オープンイノベーションの取り組みとして、今もなお注目を集めているのだ。

機械学習の「教材」を提供するのは?
日本のAI分野でこうした共創の話題が多い理由は、第3世代AIの特徴であるディープラーニングが「勝手にものを考えてくれる」ものではなく、与えられた情報を「学習」するシステムだという点にある。機械学習という言葉が注目されるように、学習には「教材」が必要であり、企業がAIに与えるデータの質が事業成功の鍵となるわけだ。AI系ベンダーがいくら高い技術力を持っていても、与えるデータの質で結果は大きく異なる。だからこそデータを持っているそれぞれの分野の企業が、AIベンダーと共創を行なっているのだ。多量のデータを自社で独占するGAFAとは異なり、日本におけるAIは技術とデータの提供者が異なるというケースが多いだろう。
また、こうした共創のケースは、ベンダーが専用のAIをゼロから開発しているわけではないことも知っておきたい。各ベンダーは多数の事案に対応できるよう、それぞれの技術力で作ったフレームワーク(システムの基本的な機能を集約した基盤)をもっており、それらは無償で提供されているものが多いのだ。
たとえば、Preferred Networksが提供するChainerは、Pythonから利用することができ、しかもオープンソース(無償公開)で提供されているのでフレームワーク自体に費用はかからない。
また、米Googleから提供されているTensorFlowもここ数年極めて高い注目を集めている。これは、Googleが実際にデータの分析で使っているAI基盤を、オープンソースで提供できるようにしたものだ。TensorFlowの実用例としては、古代エジプト象形文字の解析、国内では医学論文の評価などが報告されている。
TensorFlowは無償で提供されており、これも主にPythonで利用することができる。

AI分野はPythonでつながっている
他にもKeras、PyTorch、Caffeなど、フレームワークは百花繚乱の様相を呈しているが、これらもほとんどは主にPythonを使うものだ。というのも、Pythonは非常に記述性が高く、AI分野ではユーザーサイドでも使いやすい主流の言語となっているためである。AIの基本的な部分は高度なフレームワークを活用し、データを解析する本当のノウハウ部分だけを書きやすいPythonで構築することが可能だ。
また、Pythonの影響は「教材」であるデータを用意する側にも及んでいる。前処理としてデータを加工するscikit-learnやpandasなどのライブラリも、Pythonの利用が前提となっている。さらに、これらの仕組みを利用する実行環境の部分でもPythonが使われており、AIに関するそれぞれの技術要素をつなぐ糊のような役割を果たしている。
Pythonの特徴と弱点とは
PythonはもともとAIのために開発されたわけではないのだが、AI分野での利用が多いのは、次のような特徴を持っているからだろう。
●インタプリタ型言語
●ライブラリの充実
●書きやすさと読みやすさ
「インタプリタ型言語」というのは、作成したプログラムをすぐにその場で実行できる言語のこと。プログラムの実行ファイルを作る「コンパイル」と呼ばれる手順が不要で、インタプリタ(「翻訳者」の意)がコードをその場で翻訳してくれる。そのため、試行錯誤に強く、仮説と検証を繰り返すAI分野に向いている。
また、数学や統計に強いことも特徴。この部分に関しては、数理計算のためのたくさんのライブラリ(NumPyやSciPyなど多数)が用意されており、自分でコードを書く以上に複雑な計算を効率よくできる。
加えて、書きやすさと読みやすさもPythonの強みである。簡潔な記述でプログラムを書くことができ、後からコードを読んでもプログラムが読みやすい。初心者にとってプログラム言語は書くことも読むことも一苦労なのだが、Pythonは書きやすく読みやすい言語ということで、多人数で開発するときにも向いている。
Pythonの弱点を挙げるとすればまさに「インタプリタ型言語」であるという点。インタプリタ型言語(他にもRuby、Perl、PHPなどがある)は、コンパイル型言語と比べてプログラムの実行速度が遅いといわれている。しかし、近年はハードウェアの進歩などでその点もあまり問題にならなくなっている。
世界的なレベルでも「Pythonで大規模な開発をした」という事例の報告も多く、オンラインストレージサービスのDropboxが全面的にPythonで開発されていることはよく知られている。他にも、SNSのInstagramはPythonで開発を行い、システムはAWSのクラウドサービスを使って作られている。クラウド時代になったことで、システムのパワーが足りない時に必要とされる演算力をいつでも容易に調達できるようになったことも、AI分野でインタプリタ型言語が普及した背景になっているのかもしれない。

Pythonの役割を理解することが大切
オランダのTIOBE Software社が主要な検索サイトの検索統計に基づいて発表した人気プログラミング言語ランキング(2019年6月期)では、Pythonは3位にランクイン。ITのプロフェッショナルではない一般ユーザーサイドでも、Pythonの認知度は高まり始めているが、これはPythonがとても学びやすい言語だからだろう。実際、先のTensorFlowを医学論文の解析に使った事例は、医学分野の専門家がPythonを使って成果を挙げたケースであることを見ても、言語使用者が過去にハードウェアやコンピュータサイエンスの特殊な訓練を積んだ専門家だけでなく、ユーザーレベルにまで敷居が下がってきていることがうかがえる。
Pythonの習得は容易で、簡単な入門書と10日ほどの期間があれば基本的なところはマスターが可能といわれている。Pythonはプログラミング初心者が最も学ぶべき言語としても、よく推奨されているのだ。
では、実際にAI活用を検討し、ベンダーとのコラボレーションを企画するプロジェクトオーナーや担当者の立場でPythonを学んでおくのが必須かというと、そうではない。ただし、本稿で説明したようなAIにおける役割の抽象的な理解はとても大切だ。
AIの純技術的な世界は大変高度で、本格的なAIの開発と運用に必要なスキルは専門家のものだ。しかし、それらはプロフェッショナルに任せるとしても、システムについての概略の知識が有ると無いとでは、プロジェクトの成功確率は確実に変わるはずだ。少なくとも、有力な機械学習ライブラリが無償で提供されていることを知っていて、損をすることはないだろう。
データの所有がイノベーションの鍵に
ところで、GoogleがなぜTensorFlowといったコア技術を無償で提供しているかといえば、それは彼らが所有しているデータが膨大でしかも質が高いからだ。分析技術をオープンにするのは技術的戦略であったとしても、莫大な量の高品質なデータを持っている限り、同社の優位性はまったく揺らがない。
反対に日本では自社のデータの優位性に気付かず、AIの導入それ自体が目的になっているケースが多いという。AI開発の決め手は学習技術ではなくデータの質だとすると、これはもったいないことだ。特定分野で強いノウハウを持つ企業の多い日本の現場には、有用なデータが埋蔵されている可能性は極めて高い。そのデータの価値に気付いたとき、混沌としているデータが例えばPythonの技術ひとつで貴重な資源となる可能性を知っていれば、イノベーションのチャンスをものにできる確率も高まってくるだろう。





