1.は じ め に
第五世代コンピュータシステムプロジェクト(5G プ ロジェクト)は,1982 ∼ 92 年の 11 年間にわたり,国 家予算約 500 億円を投じて遂行された.本稿では,その 実態をプロジェクト運営とその後の我が国ひいては世界 の情報処理あるいは人工知能の研究への影響の観点から 明らかにしたい. 詳細に入る前に,見過ごされがちな研究成果,およ び,評価のポイントとなっている人材育成について,そ の概要を述べよう.最も重要な研究成果は,並行論理 プログラミング言語 GHC(Guarded Horn Clauses),GHCを中核とした実用言語 KL1 による並列マシンのた めのオペレーティングシステム,並列推論マシン,およ びその上で走る定理証明器 MGTP(Model Generation Theorem Prover)である.実際,1992 年 6 月に開催さ れた国際会議 FGCS’92 において,256 台の並列推論マ シン上で MGTP が実行され,驚くべきことに約 200 倍 の並列効果が観測された.MGTP は一階述語論理のフ ルセットを対象とした定理証明器であり,このレベルの 複雑さを有するプログラムの並列化の記録は,おそらく 20年を経過した今でも破られてはいないと思われる. 人材育成の面では,新世代コンピュータ技術開発機 構 ICOT の研究者を取り上げると,150 名程度の研究者 の中からその後大学に移動した研究者数は 60 名弱に達 している.その大部分がメーカからの出向者であるが, ICOTでの経験は彼らのもてるポテンシャルを最大限に 加速して,ついにはスピンオフに足るエネルギーを獲得 したものと思われる. 以下,2 章ではプロジェクトの立案・テーマの設定, 3章では研究環境,4 章では研究ポリシー,5 章では研 究成果,6 章では人工知能研究の未来につながる研究お よび展望について述べる.
2.プロジェクトの立案・テーマの設定
プロジェクトの立案は,1979 年から 3 年間をかけて 行われた.そのために社会環境,基礎理論,アーキテク チャの三つの調査委員会が設置され,電子技術総合研究第五世代コンピュータの
プロジェクト運営と人工知能の未来
Project Management of the FGCS Project and Its Suggestion to the Future
of AI
古川 康一
嘉悦大学大学院ビジネス創造研究科Koichi Furukawa Graduate School of Business Innovation, Kaetsu University. [email protected]
Keywords:
the Fifth Generation Computer Systems Project, project management, future of AI. 「第五世代コンピュータと人工知能の未来」所(現 産業技術総合研究所)の研究者を中心に検討が 進められた.その結果,10 年後の第五世代コンピュー タの目標像として浮かび上がったのが「知識情報処理技 術」である.さらに,基礎理論分科会では,「論理プロ グラミング」がソフトウェアの中核技術として議論さ れ,アーキテクチャ分科会では「並列マシン」が有望技 術として取り上げられた.それらの二つがやがて統合さ れ,「論理プログラミング言語」および「並列推論マシン」 が 5G プロジェクトの中心テーマとして策定された.そ のときに作成されたプロジェクト全体の概念図を図 1 に 示す.この図に示すように,プロジェクトがターゲット とした範囲は,計算機科学の広い分野をカバーした膨大 なものである. 1981年 10 月に,第 1 回の国際会議 FGCS’81 が開催 され,本プロジェクトの計画が広く世界に向けて発表さ れた.当時の日本を取り巻くコンピュータ技術の動向は, IBMという巨人がいて,通商産業省内部には,それに 立ち向かわなければ日本の未来はない,という強い危機 感があって,我が国のオリジナリティの追求を目指した 5Gプロジェクトが成立を見たということができるであ ろう.事実,本プロジェクトは米国,イギリス,ヨーロッ パに衝撃を与え,類似のプロジェクトが次々と設立され た.その強い影響力の源泉は,プロジェクト理念の斬新 さ,および研究内容の豊富さにあったと思われる.
3.研 究 環 境
1982年 6 月に ICOT 研究所がオープンし,実際の研 究活動が始まった.最初の 3 年間は前期期間と位置付け られ,35 名の研究者が,電総研,電電公社(現 NTT), および富士通,日立,NEC,東芝,三菱,沖,松下,シ ャープの民間 8 社から集められた.研究成果の成否は, 人,予算,テーマの三つで決まるが,中でも人は最も重 要である.研究者の選定にあたり,研究所長の渕 一博 氏の定めたポリシーは,35 歳以下という年齢制限であ る.ICOT のテーマの斬新性から,この年齢制限は不可 欠であったと考えられる.さらに,主だった研究者につ いては,事前にコンタクトを取り,「一本釣り」によっ て人材を得た.研究環境としては,Prolog を走らせるコ ンピュータとして,DEC 2060 という外国製の計算機を 導入し,個々の研究者が端末から利用が可能な環境を整 備した.研究所は当初,3 研究室制が敷かれ,第 1 研究 室が並列推論マシンおよびデータベースマシンのハード ウェア設計,第 2 研究室がソフトウェアの基礎,第 3 研 究室が逐次型推論マシンの設計・開発を担当した.研究 所はオープンスペースで,研究所長,および 3 研究室長 と各研究員が同一の広いスペース上に展開された.本方 式は,コミュニケーションを密に取れる点で優れている と考えられたからである.4.研 究 ポ リ シ ー
4・1 研究目標とモラル 5Gプロジェクトは,その研究目標が高かったため, 研究員にとってプレッシャーになったが,それと同時に 高い目標に突き進むエネルギーを生むことになった.す なわち,研究に対する高いモラルの維持がなされた.特 に,国際会議 FGCS’81 が研究目標を国際公約とする形 となり,計画どおりの研究成果を上げることが最優先さ れるべき課題となった.そのようなプレッシャーの中 で,独創性の追求を進めるための方策が練られた.しか しながら,今では考えられないかもしれないが,メーカ からの出向者からは,行うべきテーマを問う質問が多く 発せられた.もちろん,アーキテクチャやハードウェア などの研究は分担して細部を詰めていく研究がなされな ければならないが,ソフトウェアの基礎研究では,解決 すべき困難な問題自身を自ら探し出していくことこそが なされなければならない.ICOT では,そのような研究 所に本来あるべき姿勢を打ち出した.もちろん,選定さ れるべきテーマには,ICOT が作業仮説として採用した 「論理プログラミング」の枠内での研究テーマという制 約が課された.その選択に関しては,国際会議での Ed Feigenbaumの発言に見られるように,なぜ Lisp では いけないのか,といったプロジェクトの根幹に関わる問 題提起もあってしかるべきだが,ICOT での研究テーマ の選定に関しては,その種の哲学論争は排除した. 4・2 良質な技術の取込み 論理プログラミングは,当時若い学問領域であり,さ まざまなアイディアが生かされる場でもあった.その中 で,ほかの分野も含めて注目を集めていた良質な技術 を取り上げて,それらの可能性を追求することが積極的 になされた.それらの良質な技術には,部分計算,メタ インタプリタ,マジックセット,並行論理プログラミン グ,ボトムアップ定理証明器,制約論理プログラミング などがあげられる.それらの技術から展開された研究は, ICOTにとって重要な成果を生むことになる. 4・3 研究の方向性の転換 ICOTは,前期から中期に進む過程で,Prolog から並 行論理プログラミングへの大きな方向転換を行った.そ の転換は,ICOT および関連メーカの研究従事者間で大 きな論争を生んだが,著者を中心とする核言語グループ は,反対意見を抑えて,その方針転換を遂行した.その 根幹にあるのが,Prolog と並行プログラミングとの相性 の悪さである.Prolog の重要な機能に,バックトラック による探索機能があるが,並行プログラミングでは現実 世界とのインタラクションが必要であり,後戻りできな い並行現象を制御しなければならない.これらは相容れないので,我々は Prolog の探索機能を捨てて並行機能 を取った.この方針転換は,後述する海外研究者を含め た並行論理プログラミングの開発競争の中での ICOT の 独創技術の確立を促した.一方,この方針転換は探索機 能を見掛け上犠牲にしたことになるが,この点も後に述 べるように,画期的な技術により取り戻した. 4・4 国内研究者との連携 ICOTの研究開発の進展のためには,ICOT 内の研究 者および関連メーカの研究者だけでは十分ではなく,国 内外の研究者との連携が不可欠であった. 特に,国内においては,大学関係者の協力を得るため の工夫がなされた.省庁間の縦割り行政の影響で,大学 関係者に本プロジェクトに直接参加していただくことが 困難であったが,間接的な協力関係を築くために,いく つかのワーキンググループと称する研究協議会が設置さ れた.それらは,自然言語処理ワーキンググループ,基 礎理論ワーキンググループなどである.基礎理論グルー プを例とすると,その活動テーマは,以下のとおりであ る.1.新しい論理学構築,2.新しいアルゴリズム論, 計算モデル論の構築.このように,ワーキンググループ の目標も非常に高度である.正確な数字は把握できてい ないが,おそらく 100 名を超える研究者がワーキンググ ループのメンバに加わっていたであろう. 4・5 海外研究者との連携 海外研究者との連携は,国内におけるそれに比べて一 層緊密であった.それは,いくつかの形態でなされた. 第 1 は一連の FGCS 国際会議での招待講演,第 2 は特 定のテーマについての研究討論のための招聘,第 3 は各 国の研究機関との国際共同研究・ワークショップの開催 である.第 1 の FGCS 国際会議における招待講演者には, 前出の Ed Feigenbaum のほか,Herbert Simon,Robin Milner,C. A. R. Hoare らの名前があげられる.
第 2 の招聘研究者には,並行論理プログラミングの Ehud Shapiro,Keith Clark,Steve Gregory らが,高 次推論では Randy Goebel,Reymond Reiter,Stephen
Muggletonらが,論理プログラミングの基礎では J. A.
Robinson,Alain Colmerauer,Robert Kowalski らがあ げられる.全部で 80 名以上の研究者が招聘された.招 聘研究者の受入れに当たり,必ず接待のために研究者を 一人割り当てて,コミュニケーションを図ることとした. このシステムは,担当者の英語力の増強に貢献した. 一方,彼らとの共同研究は,ICOT の研究の進展に対 して計り知れない効果をもたらした.5・1 節で述べる核 言語の開発における研究協力は,その代表例である.ま た,別の例では,著者自身,Randy Goebel との共同研 究で,診断ルールと Prolog プログラムの関連付けをメ タインタプリタと部分計算によって実現する方式の研究 を行った. 第 3 の国際共同研究・ワークショップとしては,フ ランスの INRIA,スウェーデンの SICS,アメリカの Argonne国立研究所などとの共同研究,国際ワーク ショップの開催などを行った.
5.研 究 成 果
ICOTにおける研究成果は,テクニカルレポート(TR) およびテクニカルメモ(TM)の形で刊行されている. その数は,TR が 911 件,TM が 1 322 件に及んでいる. その中には,海外招聘研究者による論文も含まれている ので,すべてが ICOT の成果というわけではないが,11 年という短期間での 2 000 件以上の論文は,成果として は十分であろう.その中で,以下では特筆すべき研究成 果として,上田による GHC 言語の開発,長谷川らによ る並列定理証明器 MGTP,および竹内らによるメタプ ログラムの部分計算の三つを取り上げて,その開発概要 を紹介する. 5・1 並行論理プログラミング言語 GHC 前述したように,ICOT では並行論理プログラミング 言語を中核言語として取り上げ,その開発を手掛けた. 並行論理プログラミング言語の元は Keith Clark らの Relational Language [Clark 81]とPARLOG [Clark 83], および Ehud Shapiro の Concurrent Prolog [Shapiro 83] の三つである.論理プログラミング言語と並列性は元々 相性が悪く,Prolog の延長上にそのような言語ができ るとは誰しもが思っていなかったが,Keith Clark らに よる Relational Language はそのような固定観念を打ち 破った.その論文中に,図 2 に示すような簡単な OS 機 能の実現の模様が示されている.この論理に基づく並行 OS(Relational Operating System)は,二つのユーザ ターミナルからの要求を受け取って monitor プロセスで それぞれの処理を行い,その処理結果をそれぞれのスク リーンに戻すことを行う.ここで,tagmerge が二つのユー ザからの要求を到着順に並べ,あるいは,処理結果をそ れぞれのターミナルに分配する役割を果たしている.Clarkらは,二つの keyboard,二つの screen,二つ の tagmerge および monitor を同時に実行する AND ゴー
図 2 二つのターミナルに対する入出力を行う簡単な Relatonal Operating System
ルとして表し,それらのゴール間にコマンド系列,ある いは処理結果の列が流れるような実行規則を定めた.対 応する Prolog プログラムを考えると,
?- keyboard(K1), keyboard(K2), append(K1,K2, K), monitor(K,S), append(S1,S2,S),screen(S1), screen(S2). となるが,これでは monitor プロセスはまず K1 のコマ ンド列をすべて処理し,その次に K2 に進む,といった 処理しかできない.すなわち,上記並行 OS にとって基 本となるのは,append に代わる tagmerge プログラムで ある.その基本的な考えは,tagmerge への入力列が一部 でも決まった段階でそのプログラムが実行され,しかも その入力としては,ターミナル 1 からの入力,あるいは ターミナル 2 からの入力を問わない,という点である. このような並行プロセス機能を実現するためには, ゴールの実行規則を新たに定めなければならない.それ らの実行規則の相違が,上述したいくつかの並行言語を 生んだ.上田は,それらの言語を詳細に検討して,より 単純な実行規則をもつ言語 GHC [Ueda 85] を開発した. GHC(Guarded Horn Clauses)は,ガード付き Horn 節の集合で定義されるが,その特徴はガード部の実行を 可能とするのに十分なデータが到着した時点でガードを 通過できる,というものである.論理型言語の基本演算 はユニフィケーションであるが,ガード部のゴールの実 行に伴うユニフィケーション処理では呼出し側の変数を 具体化してはならない,という条件が課せられる.これ は,計算の中断条件である.Prolog の制御はゴールと節 との融合(resolution)順序の逐次制御を基本としてい たが,GHC では変数への代入操作がプロセス(ゴール) の実行の制御の基本をつかさどることとなった. GHCの役割は,その後の研究開発にとって,いくつ かの重大な意味をもっている.第 1 に,上述した並列推 論マシンの設計が容易になったこと,第 2 に,ハードウェ アとソフトウェアの開発を同時に進められるようになっ たこと,第 3 に,(これが最も重要であるが)プロジェ クトの要を自力で開発できたことである.しかも,その 言語は Prolog に匹敵するような,単純で明確な意味論 を持っており,その後の並行論理プログラミングの研究 の基礎を与えた. 5・2 並列定理証明器 MGTP 並行論理プログラミング言語 GHC に組込み述語を付 与して,より実用的な言語として KL1 が開発され,並 列 OS を始めとするさまざまな応用システムが開発され た.中でも以下に述べる並列定理証明器 MGTP(Model Generation Theorem Prover)は,GHC が一度失った 探索機能を取り戻せることを実証した点で,その意味は 大きい.さらに,MGTP は完全な一階述語論理の定理 証明器であるので,その実現が第五世代コンピュータプ ロジェクトの中心課題である「並列推論」の実現可能性 を示した意味は大きい. MGTPの原形となったのは,Manthey と Bry による ボトムアップ定理証明器 SATCHMO である [Manthey 88].そのコードは,以下のとおりである.
satisfiable :- is_ violated(C), !, satisfy(C), satisfiable.
satisfiable.
is_violated(C) :- (A--->C), call(A), not(C). satisfy(C) :- component(X,C), asserta(X), on_backtracking(retract(X)), not(false).
component(X,(Y;Z)) :- !, (X=Y; component(X,Z)). component(X,X).
on_backtracking(X).
on_backtracking(X) :- call(X), !, fail.
このプログラムは,モデル生成型定理証明器であり, すべての問題節を満たすモデルが得られるか否かを調べ る.先頭の satisfiable 節で一つの問題節を選んで,その 後件が現在のモデルで満たされていてしかも前件が成り 立たない場合(is_violeted(C)),第 4 の satisfy 節で, 前件の一つのリテラルを選んで(component(X,C)), それをモデルに付け加えて成り立たせることを繰り返 す.モデルの生成は,Prolog の節の追加(assert),削 除(retract)によって行う. ボトムアップ型定理証明器は並列実行に適していると 考えられたので,ICOT メンバは,急遽 GHC によるコー ド化を試みた.そこでの中心課題は,OR 並列の実現で ある.渕は第五世代プロジェクトの開始以前にトップダ ウンとボトムアップの両実行過程を有する言語 Epilog [渕 77] を提案していたが,そこで得た知見を生かして, GHCによる SATCHMO のコーディングに成功した [渕 90].そのコーディングのポイントは二つある.第 1 は GHCでの制限されたユニフィケーションの問題である が,その制限は SATCHMO における値域限定条件(range restrictedness)のお蔭で回避できた.第 2 は OR 並列 の実現である.この問題は,OR 並列を AND ゴールの 並列実行で代用させる方式によって回避された.このと き,巧妙な方法によって,OR ブランチごとに異なった 変数を生成させ,それを同時に(AND ゴール並列によっ て)探索する方式を開発した.その結果は,証明問題を インタプリタを含めてコンパイルしたような形で実現さ れた. 長谷川,藤田は,渕によるコーディングを参考に,そ のインタプリタ版を完成させた [藤田 90].このインタ プリタのコードを以下に示す. :- module satchmo. :- public do/1, false/2.
do(A) :- true |
satchmo_problem:model(M), false(M,A).
false(M,A) :- true | satchmo_problem:nc(NC),
satisfy_clauses(Cn,NC,M,A2,A) :- Cn < NC | Cn1 := Cn + 1,
satisfy_ante(Cn1,[],[true|M],M,A2,A1), satisfy_clauses(Cn1,NC,M,A1,A).
sati sfy_clauses(NC,NC,_,sat(M1), A) :- true | A = sat(M1).
sati sfy_clauses(NC,NC,M,cl_sat, A) :- true | A = sat(M).
sati sfy_clauses(NC,NC,M,unsat(Ms),A) :- true | A = unsat(Ms).
satisfy_ante(Cn,GS,[P|M2],M,cl_sat,A) :- true | satchmo_problem:c(Cn,P,GS,R),
satisfy_ante1(Cn,R,P,GS,M2,M,A).
sati sfy_ante(Cn,_,[],_,cl_sat,A) :- true | A=cl_sat.
otherwise.
sati sfy_ante(_,_,_,_,A1,A) :- true | A=A1.
satisfy_ante1(Cn,fail,P,GS,M2,M,A) :- true | satisfy_ante(Cn,GS,M2,M,cl_sat,A). satisfy_ante1(Cn,cont,P,GS,M2,M,A) :- true | satisfy_ante(Cn,[P|GS],M,M,cl_sat,A1), satisfy_ante(Cn,GS,M2,M,A1,A).
sati sfy_ante1(Cn,false,P,GS,M2,M,A) :- true | A=unsat(M).
satisfy_ante1(Cn,R,P,GS,M2,M,A) :- R=[_|_] | satisfy_cnsq(R,R,M,A1),
satisfy_ante(Cn,GS,M2,M,A1,A).
sati sfy_cnsq([Fact|R2],R,M,A) :-true| check_cnsq(Fact,R2,R,M,M,A). sati sfy_cnsq([],R,M,A) :- true |
extend_model(R,M,A).
chec k_cnsq(Fact,R2,R,[Fact|M2],M,A) :- true | A=cl_sat.
chec k_cnsq(Fact,R2,R,[],M,A) :- true | satisfy_cnsq(R2,R,M,A).
otherwise.
chec k_cnsq(Fact,R2,R,[_|M2],M,A) :- true | check_cnsq(Fact,R2,R,M2,M,A).
extend_model([Fact|R2],M,A) :- true | false([Fact|M],A1),
extend_model(R2,M,A2), both(A1,A2,A).
extend_model([],M,A) :- true | A=unsat([]).
both (unsat(M1),unsat(M2),A) :- true | A=unsat([M1|M2]).
both(A1,_,A) :- A1=sat(_) | A=A1. both(_,A2,A) :- A2=sat(_) | A=A2.
インタプリタ(定理証明器)が扱う証明問題は,以下 のようなプログラムとして表現した. :- module satchmo_problem. :- public model/1, nc/1, c/4. model(M) :- true | M=[]. nc(NC) :- true | NC=6. c(1,p(X),[], R) :- true | R=cont. c(1,s(X),[p(X)],R) :- true | R=false. % (C1) p(X), s(X) ---> false. c(2,q(X),[], R) :- true | R=cont. c(2,s(Y),[q(X)],R) :- true | R=false.
% (C2) q(X), s(Y) ---> false. c(3,q(X),[], R) :- true | R=[s(g(X))]. % (C3) q(X) ---> s(g(X)). c(4,r(X),[], R) :- true | R=[s(X)]. % (C4) r(X) ---> s(X). c(5,p(X),[], R) :- true | R=[q(X),r(X)]. % (C5) p(X) ---> q(X) ; r(X). c(6,true,[], R) :- true | R=[p(a),q(b)].
% (C6) true ---> p(a) ; q(b). otherwise. c(_,_,_,R) :- true | R=fail. 本プログラムの詳細な説明は省くが,do(A) を呼び 出すことによって,別の satchmo_problem モジュー ルに定義された問題の充足可能性が調べられ,その結 果が変数 A に返される.また,その中で,この例でい えば (C1) から (C6) までの六つの節の充足可能性が同 時にチェックされ,対応するモデルがつくられる.OR 分岐に相当するところでは,プログラム中の extend_ modelの第 1 引数が問題節での OR 分岐に相当するが, その各分岐要素 Fact を既存のモデルに付け加えた新た なモデルをつくり,そこでの充足可能性問題を解いてい る.このようにして,新たなモデル群が再帰呼出しによ り無理なくつくられる. 本プログラムは,第五世代コンピュータプロジェクト にとって極めて重要であり,芸術作品というべきものな ので,詳細な説明なしにその全体を掲載した. 本インタプリタを出発点として,長谷川,藤田らは MGTP(Model Generation Theorem Prover)の開発を 行った [Fujita 91, 長谷川 96].MGTP は,1 章で述べた ように,256 台の並列推論マシン PIM/m 上で 200 倍以 上の速度向上を達成している.実際,FGCS’92 において, PIM/mを用いたデモが行われた.さらに,藤田正幸ら は MGTP を用いて有限代数の問題を試み,カナダの数 学者 Benett により提示された準群に関する未解決問題 の一部を自動的に証明することに成功した [Fujita 93]. 5・3 メタプログラム部分計算 以下に紹介するのは,Prolog に対する部分計算の適用 に関する研究である.部分計算(Partial Computation, Partial Evaluation)は,二村によって開発された計算 原理で,事前に計算できるところは本番の実行前に済ま せておく,というのがその基本的な考えである.二村は, 部分計算を主としてインタプリタに適用し,コンパイラ を容易に実現する手段を提供した.そのような考えは Komolowski [Komolowski 82]によって Prolog へ応用で きることが示されたが,Prolog メタインタプリタに対す る本格的な部分計算プログラムは,竹内 [Takeuchi 86] によって開発された.竹内による部分計算は,与えられ たオブジェクトプログラムを固定してメタインタプリタ
を部分計算するので,そのオブジェクトプログラムに特 化したメタインタプリタを生成し,その結果メタプログ ラムの実行速度が飛躍的に向上する. 部分計算プログラムの元になる純 Prolog メタインタ プリタは,以下に示す 3 行プログラムである. solve(true).
solve((P,Q)) :- solve(P), solve(Q). solve(G) :- clause(G,B), solve(B).
最も単純な部分計算プログラムは,このプログラムに 類似な,以下のようなプログラムである.
psolve(true,true). psolve((G1,G2),(R1,R2))
psolve1(G1,R1), psolve1(G2,R2). psolve(G,R) :- clause(G,B), psolve1(B,R). psolve1(G,R) :- proceed(G), psolve(G,R). psolve1(G,G) :- stop(G). ここで,最初の 3 行が元の Prolog メタインタプリタの 3行に相当し,最後の 2 行は,与えられたオブジェクト プログラムの各要素の部分計算可能性を判定してそれぞ れの処理を続けることを示している. 部分計算は,多くの問題に適用され,その有用性が 示された.それらは,ボトムアップ構文解析器 BUP [Matsumoto 83]への適用 [古川 87],診断ルール [Goebel 86],プロダクションシステム [Furukawa 89] などであ る.その結果,部分計算の実際の効果は 3 ∼ 100 倍程度 であることが示された.さらに,藤田は自己適用可能な 部分計算プログラムを開発した [Fujita 88].藤田は,そ のプログラムを実際に自己適用し,二村射影が成り立つ ことを示した. プロジェクトの成果としては,上に紹介した三つ以外 にも,ハードウェア,コンパイラ,オペレーティングシ ステムなどがあるが,本稿では人工知能研究との関係を 考慮して,それらについての記述を省いた.
6.人工知能研究に対する示唆と展望
5Gプロジェクトの当時と現在では時代も環境も違う ので,これからの人工知能研究に参考になることをいう のは難しいが,独創性へのチャレンジは当時も今も変わ らない問題である.第五世代コンピュータプロジェクト において,情報処理,特にソフトウェアの面で独創性 を追求するのがその使命の一つであった.それは,当 時 IBM に代表される欧米の技術先行の時代背景がある. ICOTは,そのような状況で,10 年後,20 年後を見据 えた研究プロジェクトの計画・立案を行い,研究開発を 行った.その結果としては,必ずしも大成功というわけ にはいかなかったが,ICOT での研究成果がその活動の 終了後 20 年以上経過した現在でも未だ輝きを失ってい ないことは,注目に値する. やや逆説的に聞こえるかもしれないが,「まなぶ」が「ま ねぶ」に通じており,独創性の追求の第一歩として,良 い技術をまねることが肝心である.モーツァルトは誰も が認める天才であるが,彼はハイドンに傾倒し,彼の音 楽をまねることに夢中になった時代がある.事実,モー ツァルトは 6 曲の弦楽四重奏曲「ハイドン・セット」を ハイドンに献呈している.ハイドンを模倣して,作曲を 続けるうちに,独自の音楽をつくり上げていったといわ れている. 模倣が有用であるためには,その元が優れていなけれ ばならず,そのためには良い技術を見抜く力を身につけ ていなければならない.その背景として,物事一般に対 する幅広い興味と理解が必要になるであろう.単に情報 処理,あるいは人工知能だけを勉強しても限界がある. ほかのドメインから知識を得ることがことのほか大切で ある.それらは,力学であったり,生物学であったり, 農学であったり,経済であったり,あるいはもっと飛躍 して芸術までも含まれるかもしれない.さらに,模倣に よる学習は,技芸の習得にも通じる. 著者は,芸術活動との接点として,チェロの演奏法の 研究を続けており,それを出発点としてスキルサイエン スという新たな研究領域を開拓した.その中で,スピッ カートや一弓スタッカートの奏法を力学系によって説明 することを試みた.それは,アナロジーによって形式化 されるが,その考察から,アナロジカルアブダクション の枠組みを思い付き,第五世代プロジェクトの頃から井 上らによって進められたアブダクションの研究 [Inoue 10]と結び付けて,その実現を図った [金城 13].このよ うな研究は,人工知能の研究に新風を吹き込む一つの例 と考えられる. もし仮に,今の時代に第五世代級のプロジェクトをも う一度やるとしたら,どのようなテーマが考えられるで あろうか.特に,人工知能研究からの視点でその問題を 考えてみよう.今,ぜひ取り上げたいテーマは,身体知, あるいは身体性である.これまで,人工知能研究はどち らかといえば思考メカニズムの究明に焦点が当てられて きたように思われる.人間としての総合力を考えるとき, 身体知・身体性は無視できない.それらの中には,我々 が追求してきたスキルサイエンスももちろん含まれる. スキルサイエンスのテーマとしては,一方で高度な技を 獲得した芸術家やスポーツ選手などの秘密を解き明か す,という大変興味深い問題があるが,他方で技能学習 の効率化,師匠が弟子に教えるときの伝承問題など,多 様な問題を抱えている.また,それらの問題は,発想的 思考の源泉になっていることも見逃せない.それ以外に も,健康科学的なテーマも重要であり,社会的な要請も 大きいと思われる.健康科学と人工知能にはあまり接点 がないように思われるかもしれないが,人間,あるいは 人間社会をシステムとして考えると,細胞レベルから健 康問題を捉え,生き生きとした高齢化社会を実現するう えでも,その価値は大きい.跡見らは,ヒートショックプロテインという,細胞一つ一つを活性化させるタンパ ク質の働きに注目している [跡見 13].そのタンパク質は, 委縮した細胞を解きほぐす効果があることが知られてお り,それがストレッチ運動によってもたらされることを 突き止めている.ストレッチ運動は細胞一つ一つを活性 化させるのに役立っている.筋肉の構造を調べると,細 長い細胞の束によってつくられているので,ストレッチ 運動によって細胞が活性化されるのもうなずける.もち ろん,リハビリテーション,介護ロボット,高齢者看護 などの問題も含まれてくるであろう.また,脳科学との 接点も見つけられるであろう.研究の方法論としては, 本学会誌の昨年の特集号「一人称研究の勧め」(Vol. 28, No. 5)は,身体性,あるいは身体知研究に深く関わっ ており,特に興味深い. このようなプロジェクトの遂行にあたって,特に強調 したいのは,新しい価値の創造および国際性の 2 点であ る.人工知能の研究の特徴の一つは,人間の活動に関す る新しい切り口なり,考え方を提案してきた点であると 考えられる.欧米の研究者は,そのような宣伝が巧みで ある.我が国の人工知能研究者が,長期的視野のもとに, 国際社会をターゲットとして独創的な研究を展開するこ とを期待したい.
◇ 参 考 文 献 ◇
[跡見 13] 跡見順子:身体の「メカニズム」を解明する「重力」 というキーワードの有効性とその背景「重力健康科学」の提 案,日本スポーツリハビリテーション学会誌,第 2 巻,pp.1-13 (2013)[Clark 81] Clark, K. L. and Gregory, S.: A relational language for parallel programming, Proc. 1981 Conf. on Functional
Programming Languages and Computer Architecture, pp.
171-178, ACM Press(1981)
[渕 77] 渕 一博:語論理的プログラミング:EPILOG の提案,情 報処理,Vol. 26, No. 11:情処学記号処理研究会第 1 回研究会 (1977.7.21)再掲,pp. 1298-1306(1985)
[Fujita 88] Fujita, H. and Furukawa, K.: A self-applicable partial evaluator and its use in incremental compilation, New
Generation Computing, Vol. 6, Nos. 2, 3, pp. 91-118(1988) [Fujita 91] Fujita, H. and Hasegawa, R.: A model-generation
theorem prover in KL1 using ramified stack algorithm, Proc.
8th Int. Conf. on Logic Program, pp. 535-548, MIT Press(1991) [Fujita 93] Fujita, M., Slaney, J. and Bennett, F.: Automatic
generation of some results in finite algebra, Proc. 13th Int.
Joint Conf. on Artificial Intelligence(IJCAI’93) , Vol. 1, pp.52-57
(1993)
[Furukawa 89] Furukawa, K., Fujita, H. and Shintani, T.: Deriving an efficient production system by partial evaluation,
North American Logic Programming Conf.(NACLP), pp.661-674(1989)
[長谷川 96] 長谷川隆三,藤田 博:MGTP:並行論理型言語 KL1 に よるモデル生成型定理証明系,情処学論,Vol. 37, No. 1, pp. 1-12 (1996)
[Inoue 10] Inoue, K., Furukawa, K., Kobayashi, I. and Nabeshima, H.: Discovering rules by meta-level abduction, De Raedt, L., ed., LNAI: Vol. 5989, Inductive Logic Programming:
Revised Papers from the 19th Int. Conf.(ILP’09), Berlin, pp. 49-64, Springer(2010)
[Goebel 86] Goebel, R., Furukawa, K. and Poole, D.: Using definite clauses and integrity constraints as the basis for a theory formation approach to diagnostic reasoning, 3rd Int.
Conf. on Logic Programming, LNCS 225, pp.211-222(1986) [金城 13] 金城敬太,尾崎知伸,古川康一,原口 誠:アナロジーを組
み込んだルール発想推論によるスキル獲得支援,人工知能学会 論文誌, Vol. 29, No. 1, pp. 188-193(2014)
[Komolowski 81] Komorowski, H. J.: Partial evaluation as a means for inferencing data structures in an applicative language: A theory and implementation in the case of prolog,
POPL’82, Proc. 9th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, pp. 255-267, ACM New
York(1982)
[Manthey 88] Manthey, R. and Bry, F.: SATCHMO: A theorem prover implemented in Prolog, Proc. CADE 88(9th Conf. on
Automated Deduction), Springer Verlag(1988)
[Shapiro 83] Shapiro, E. Y.: A subset of concurrent prolog and its interpreter, ICOT Tech. Report, TR-003, ICOT, Tokyo(1983) [Takeuchi 86] Takeuchi, A. and Furukawa, K.: Partial evaluation
of prolog programs and its application to meta programming, Kugler, H.-J., ed., Information Proc. 86, pp.415-420, North-Holland(1986)
[Ueda 85] K. Ueda :Guarded horn clauses, ICOT Tech. Report, TR-103, ICOT, Tokyo(1985) 2014年 1 月 26 日 受理 古川 康一(正会員,フェロー) 1967年東京大学大学院工学系研究科修士課程修了. 同年,電気試験所入所.1982 年新世代コンピュータ 技術開発機構へ出向.1992 年慶應義塾大学環境情報 学部教授.1994 年同大学院政策・メディア研究科教 授.2008 年慶應義塾大学名誉教授.2010 年嘉悦大 学大学院ビジネス創造研究科教授.工学博士.