ここにリストされた項目
クラウド
AI用の処理装置(CPU,GPU等)
AI開発に向いたプログラム言語
AIの簡単な歴史
クラウド
クラウドとは英語のcloud のことで「雲」を意味する語であるが、最近新聞などでよく目にするクラウドとは、もちろん「雲」のことではなく、クラウドコンピューティング(cloud computing)の略である。インターネットなどのネットワークを経由して、コンピュータ資源をサービスの形で提供する利用形態であり、多くの人がネットワークを通して各種のコンピューティングサービスを受けることができる。これを図に示す時は、このネットワークをあたかも雲のように描き、種々のコンピュータがその雲につながっている、あるいは雲の中に散在しているように表現することが一般的なので、クラウドコンピューティングと呼ばれる。
AI用の処理装置(CPU,GPU等)
これまでは汎用計算向けのコンピュータの心臓部あるいは頭脳部と呼ばれてきたのは、CPU(Central Processing Unit、中央演算処理装置)であった。ところがAIの利用が広まる中で、世の中のデータ利用が爆発的に増え、この計算処理の主役が代わりつつある。AIの普及で、世界のAI計算量は5年で30万倍に拡大したそうだ。このペースでは、毎年およそ2倍の割合で増大していくという「ムーアの法則」によるCPUの性能向上だけでは到底支えられない。そこで注目されてきているのは、分野ごとに特化した演算処理装置である。利用範囲を限定することにより、そこでの効率を格段に上げていこうというものである。このような特定の用途向けに複数機能の回路を一つにまとめた集積回路はASIC(Application Specific Integrated Circuit、エイシック)と呼ばれる。このASICは種別として多様であるばかりでなく、開発の歴史も長い。しかしながら特定の用途向けに開発されるものであるため、一つの種類のASICが多量に出まわることは少なかった。しかしAI導入による爆発的な需要の増大によって、そのいくつかが特に注目されてきた。
その代表が「GPU(Graphics Processing Unit:画像処理演算装置)」と呼ばれる、画像の処理用に作られた専用チップである。画像処理を高速化するために一つの半導体の中に演算回路が数千個入っているものもある。前の項で「画像認識機能を使うものはAIと言ってよい」と述べたように、現在利用されているAIの多くが画像認識機能を使っているので、GPUが注目されるのは当然の流れといえる。しかしながら、AIに関する技術革新のうねりはあまりに大きく、汎用のGPUだけではもはやその進化に追いつかなくなりつつあり、さらに限定された特定の機能に特化したAIチップの開発も進められている。
さらに、AIの中で主流になっているのは学習機能を活用するAIであり、AIが大量のデータを「学習」するのに適した処理装置も開発されている。その代表が、グーグルが開発した機械学習に特化したASICであるTPU(Tensor Processing Unit)である。
また、AIが普及するとあらゆるモノがネットにつながるIoT(Internet of Things)の活用が進むと考えられている。そうなると「あらゆるモノ」に対応するために、利用環境に応じて電子機器の仕様を変える必要がある。そのため、演算回路を自由に書き換えられるFPGA(Field-Programmable Gate Array)と呼ばれる専用半導体の需要も高まると期待される。このFPGAも30年以上の歴史があり、特定の用途向けである点ではASICに似ているが、その違いはFPGAは英語が示すように、出荷後に現場(フィールド)で機能を設定・更新(プログラム)できる点にある。
このようにAI処理用の半導体を巡っては、巨大テック企業を中心に、相次ぎ自社開発に力が注がれている。自社の半導体があれば処理速度を上げるのか、セキュリティーを高めるのか、消費電力を減らすのか、自由に優先順位を決められる。サービスをより柔軟に進化させるには半導体も一体で開発するのが欠かせなくなってきている。
さらに電子回路の素材の開発も注目されている。現在の電子回路は半導体で構成されているが、これを低消費電力と高速処理に優れた光回路で塗り替える技術も開発されている。
AI開発に向いたプログラム言語
プログラム言語はコンピュータ用のプログラムを記述するための言語で、そこで用いられる単語、従うべき文法、種々のルールなどが定められている。コンピュータを使う目的によって用いる命令、演算や処理の種類や回数が異なるので、それぞれに適した種々の言語が開発されてきている。当然AIも用いる演算や処理の種類や回数に特徴があり、それらに向いたプログラム言語がいくつかある。その中でLISP(リスプ)やProlog(プロログ)などが早くから利用されてきた。最近のAIは、機械学習を利用することが多くなったので、それに適したPython(パイソン)というプログラム言語がシェアを高めてきている。このPythonは最近AIでの利用が強調されているが、もとはAI専用に開発されたものではなく汎用のプログラミング言語の一つである。コードがシンプルで扱いやすく設計されており、さまざまなプログラムを分かりやすく、少ないコード行数で書けるといった特徴がある。金融関係の大企業で全社員を対象にこのPythonの資格取得にかかる費用を補助する制度を導入しているところがあるくらいである。
AIでは統計解析や行列計算を行う場合も多く、そのような場合は、それぞれ統計解析向けのプログラミング言語であるR言語(アールげんご)、行列計算が得意なMatlab(マトラボ)などが多く使われている。また、JavaScript(ジャバスクリプト)やJava(ジャバ)、C++(シープラスプラス)もAIに適したプログラム言語といわれている。これらのプログラム言語はAIが注目されるかなり前から広く利用されてきている。
AIの簡単な歴史
AIの開発の歴史には、これまで大きく三つの山がある。
AIという言葉が初めて現れたのは1956年に米国で開催された「ダートマス会議」である。主として論理学で用いられるような記号を使って、推論によって目的を達するという枠組みが議論された。当時の専門家たちは、これで人間の知能をコンピュータで再現できるのではないかと、かなり興奮した。しかし残念ながら、当時のコンピュータの性能ではごく小規模な探索しかできず、現実世界の問題にはほとんど適用できなかった。その現実の前に、多くの人が開発に見切りをつけてしまった。これが「第1次AIブーム」と言われる山である。
その後、80年代にAIブームが復活した。その内容は、特定の専門家の知識をデータベースに蓄え、専門家の仕事をコンピュータで再現しようという試みだった。これは専門家、すなわちエキスパートの知識をシステム化すると言う意味で、当時「エキスパートシステム」と言われた。多くの「エキスパートシステム」が開発されたが、満足のいくものがほとんどできなかった。これはいざやって見ると、専門家はデータベースに明確に定義するのが難しい要素も使って仕事をしているためで、結局このアプローチも失敗に終わってしまった。これが第2次AIブームと言われる山である。
例えば囲碁の例をとれば、囲碁の名人はたくさんの「手」を覚えていて、これを適用して勝つ。従ってこれらの「手」をたくさんデータベースに入れて、コンピュータがよい「手」を選べば勝つ、という理屈である。しかしながら、囲碁の名人が強いのは単にたくさんの「手」を知っているからだけでなく、他にもいろいろな要素を考えながら戦いを進めるからである。それらはデータベースに入れることが難しいことが分かってきて、結局頓挫したわけである。
現在は第3次AIブームである。この第3次AIブームの中心は深層学習(ディープラーニング)と言われる技術である。実はこの考え方自体は第1次AIブームの頃からあったが、当時のコンピュータの性能では、とても実用の領域に至らなかった。それがコンピュータの進化とAI研究の発展が重なって、機械による学習機能が目覚まし進歩を遂げるようになってきて、第3次AIブームが起きて現在もなお続いている。
ここでのポイントは、機械が自ら学習することによって、人間がプログラムとして事前に全てのやり方を示さなくても、うまく仕事をこなすというところに到達したという点である。これは先ほど議論した、従来のコンピュータとAIの違いを示す一面でもある。
果たしてこの第3次AIブームは当分のあいだ続くのか。これまでのところ機械学習を取り入れたAIは注目され、多くのものが開発されてきている。それを見ると、少なくともこれまでの第1次、第2次のブームの時のようにあっけなく頓挫することはなさそうである。
コメントを残す