Iphone

人工知能:すべてのMacプログラマーが知っておくべきこと

人工知能:すべてのMacプログラマーが知っておくべきこと

アンナ・オコネル、PE
MacTech Quarterly
1989年春号 – 10ページ

「人工知能」とは、捉え方次第で、よりスマートで強力なアプリケーションを構築するための便利なツール群、あるいは人類を脅かす哲学的概念、あるいは単なる矛盾語法と言えるでしょう。この記事では、アンナ・オコネルが、過去2年間にMacintosh向けに導入された数多くのAI言語と開発プラットフォームを検証し、AI技術を活用してより直感的で使いやすいソフトウェアを構築する方法について考察します。

— 編集者

ここ数年、人工知能(AIと略されることが多い)をめぐっては、多くの誇大宣伝が繰り広げられてきました。しかし、その熱量は光よりも大きく、人工知能の正確な意味について、いまだに共通の見解はほとんどありません。業界でよく聞かれるジョークの一つに、AIは見る人の目次第だ、というものがあります。学者にとっては「不可能なもの」、軍事関係者にとっては「無敵のもの」、そしてソフトウェア企業の営業部門にとっては「改良されたもの」です。

この記事では、AI を、人間に見られる場合に通常知的であると考えられるスキルや特性をコンピューターに拡張しようとするさまざまな技術のいずれかと定義します。プログラマーがよく知っているように、コンピューターは苛立たしいほど整然としたデバイスであり、指示されたとおりに正確に実行します。それ以上でもそれ以下でもありません。そして通常、何をすべきかを非常に小さなステップで指示する必要があります。もちろん、いったん正しくプログラムされてしまえば、コンピューターは計算やソートのタスクを非常に高速かつほぼ完璧な精度で実行できます。一方、人間は、不十分なデータや具体的な指示がない新しい状況でも、可能性を分類 (決定) できます。しかし、他の種類のタスクでは、人間が非常に遅くて不正確であることは有名です。人工知能は、コンピューターの速度や精度を利用して、人間の判断や直感を必要とするタスクをより効率的に実行しようとします。

マイケル・ギルモアによるフリーハンドのイラスト。

AI研究に端を発する技術の中には、独自の分野として認められるほどに成長したものもあります。音声認識・合成、ロボット工学、機械視覚などは、もはやAIの僻地ではなく、「主流」の技術とみなされています。これらの技術が研究室から工場へと登場した当時は、現在AIについて耳にするのと同じような大騒ぎが巻き起こっていました。

AIについて議論する際に理解しておくと役立つ用語の一つに、「ナレッジエンジニア」があります。ナレッジエンジニアは、AIシステム、特にエキスパートシステムの開発について訓練を受けています。この訓練には通常、1つ以上のAIプログラミング手法または言語、1つ以上のエキスパートシステム開発シェルの知識、公開されている情報源と「ドメインエキスパート」(エキスパートシステムに組み込まれる専門知識を持つ人々)の両方から知識を引き出す方法の訓練、そして複雑な情報セットを構造化するために利用可能な1つ以上の手法に関する十分な知識が含まれます。この用語はMITで造られ、この分野全体で広く使用されるようになりました。システムアナリストという古い用語も同様に有効です。システムアナリストは、設計対象のシステムを実装するために使用する特定のプログラミング手法に常に精通している必要があったことを思い出してください。したがって、私がナレッジエンジニアと定義する「ナレッジエンジニア」とは、AI開発ツールを賢く選択して使用できるだけのAI手法を習得したシステムアナリストです。

AIハードウェア

AI専用ハードウェアは、多くのベンチャーキャピタリストや政府機関の資金と時間を浪費する存在であり、Macintoshをこれまでで最も使いやすく、最も広く模倣されたマイクロコンピュータの一つにした多くの要素の源泉でもありました。私のお気に入りのAI専門家の一人、ハーベイ・P・ニュークイスト3世の言葉を借りれば、「1970年代後半から1980年代初頭にかけて、MIT、カーネギーメロン、スタンフォード大学でLISPプログラミングの博士号を取得した人は皆、会社を設立しました。当時は、インデックスカードよりも長い事業計画を持つ人なら誰でも資金を調達できるほどのベンチャーキャピタルが流通していました。」

トラックボール、ジョイスティック、ライトペン、タブレット、マウスといったポインティングデバイスは、AI研究者によって初めて開発されました。現在では、これらのデバイスはマイクロコンピュータやミニコンピュータに広く普及しており、ゲーム、CAD、デスクトップパブリッシングといったグラフィックス重視のアプリケーション向けコンピュータを、これらのデバイスなしで販売することは不可能だと広く考えられています。

市販されているAI専用ハードウェアのもう1つの種類は、LISP実行に最適化されたプロセッサです。LISPに最適化されたコンピュータは最近まで非常に高価で、ネットワーク非対応の最低価格のステーションでも3万5000ドルから始まり、研究に必要な機能をすべて備えたシステムになると約10万ドルまで急騰しました。そのため、これらのワークステーションの需要は非常に低く、市場は米国全体で約2万5000台でほぼ飽和状態でした。

AI開発ツールはかつてLISPマシンでしか利用できなかったため、より費用対効果の高いハードウェアプラットフォームにソフトウェアを配布するには骨の折れる移植プロセスが必要でした。人間には誰もが苦労して得た経験(ドライバーをバールとして使っていたら親指に刺さってしまった、といったように)があるように、多くのAI研究者は、苦労して開発したツールだけが仕事を「適切に」行うことができるツールであると感じるようになりました。そのため、LISPマシン上でLISPでコードを書くことが「AIを行う」最良の方法であると主張する人がたくさんいます。必要なハードウェアと研究助成金の支援が得られれば、これは研究を行うための優れた方法かもしれません。しかし、既にLISPマシンを持っているAI研究者をターゲット市場としないかぎり、商用製品を開発する方法としては最悪です。

世の中には、LISP マシンを必死になって売り込み、手続き型ソフトウェア開発のための非常に生産性の高い環境だと売り込んでいる企業さえあります (名前は挙げませんが、私はかつてそのような企業の一部門で働いていました)。提案されているシナリオでは、
LISP マシンの「充実した作業環境」を利用して、目的のソフトウェアを「ラピッドプロトタイプ」します。そして、クロスコンパイラが利用できる場合は、新しく開発されたソフトウェアをターゲットマシンと言語にクロスコンパイルします。クロスコンパイラが存在しない場合は、ソフトウェアは「C またはその他の手続き型言語で書き直されます」。最終アプリケーションに C が適しているのであれば、最初から C で書けばいいのではないでしょうか。また、LISP マシンの充実した作業環境が利点であるのであれば、ターゲットアプリケーションと少なくともハードウェアアーキテクチャを共有するマシンでその機能を再現してみてはいかがでしょうか。このようなインチキ薬を売っている人たちは、私が質問しても答えられませんでした。初心者も経験豊富なプログラマーも同様に、「LISP を売り込む AI オタクには注意」すべきです。

過去2年間で、これらのコンピュータのメーカー数社が倒産し、それら向けのソフトウェアメーカーも同様に苦境に立たされています。そのため、ART(自動推論ツール)やKEE(知識工学環境)といったハイエンドAI開発ソフトウェアが、Unixワークステーションやハイエンドマイクロコンピュータ向けに提供されているという広告をよく目にするようになりました。9万ドルのコンピュータでしか動作しないソフトウェアに1本6万ドルも支払えるのは、政府機関と大企業だけでしょう。しかし、高速な'386マシンとPC-KEEを入手するために必要な3万ドルなら、ほとんどの企業(そして熱心な個人)が支払うことができます。

Macintosh II コプロセッサ 1988 年、Texas Instruments 社と Symbolics 社は、LISP マイクロプロセッサ チップを Macintosh II 用アドインボードとして提供することを発表しました。Texas Instruments 社製品は Apple 社との共同ブランドで、micro-Explorer と呼ばれています。1988 年 6 月から少量出荷されており、Mac II と必要な RAM(Mac では 2 MB 以上、Explorer ボードでは 4 MB)が付属し、現在 28,000 ドルで販売されています。micro-Explorer ボードとソフトウェアのみで 19,000 ドル程度で購入できます。大学の発注書があれば、さらに安くなります。詳細については、Texas Instruments Data Systems Group(本社テキサス州オースティン、北米全域に販売およびサービス拠点あり)にお問い合わせください。

オリジナルの microExplorer システムソフトウェアには、多くの Macintosh プログラマーが致命的と考える欠陥がありました。Macintosh ツールボックスへのアクセスがほとんどなく、他のアプリケーションへのフックも非常に限られていたのです。Texas Instruments 社の最新ソフトウェアリリースでは、ExperTelligence 社が同社向けに開発した Macintosh ツールボックスインターフェースが追加され、この問題は修正されました。ExperTelligence 社は、ExperCommon LISP と ExperIntefaceBuilder の両方を Macintosh 界に提供しました。これらを合わせると、素晴らしいエキスパートシステム開発シェルの 3 分の 2 が完成しました。なぜ彼らが推論エンジンをいくつか開発してシェルを完成させなかったのかは分かりませんが、この 1 年半の間、彼らが休むことなく開発を続けてきたのは喜ばしいことです。

Symbolics MacIvory ボードとソフトウェアは、やや遅れて、1988 年第 3 四半期に発表されました。これはおそらく、1987 年に LISP マシンの販売が急落したときに Symbolics が陥っていた財政難によるものです。なぜなら、TI が microExplorer の開発を正式に開始する前に、MacIvory のプロトタイプが公開されたと聞いていたからです。1989 年第 4 四半期初めの時点では、製品版は出荷されていませんでしたが、プロトタイプがいくつか現場でデモされていました。MacIvory システム全体の価格は 21,900 ドルと発表されており、1988 年 12 月に出荷される予定です。1989 年 3 月には、完全なシステムに必要な Mac II (4 MB の RAM 搭載) を含まないボードとソフトウェアのセットが発売される予定です。このパッケージの価格は 10,900 ドルです。

Symbolics社もTexas Instruments社も、将来的に他のハードウェアプラットフォーム向けのコプロセッサボードを開発する可能性を否定していませんが、両社がMac IIを選んだのは、NuBusアーキテクチャが複数のプロセッサを独立して動作させることができるという点を評価したためです。(そして噂によると、Apple社から7桁に上る開発資金を受け取っていたとのことです。)Texas Instruments社は、Explorerシリーズ全機種と、新しいUnixコンピュータシリーズにもNuBusを採用しています。NuBus規格はTI社とMITの共同開発によって開発され、Apple社はMacintosh II以降のコンピュータでの使用をライセンス供与されています。

AIソフトウェア技術

AIに関連するソフトウェアには、主にいくつかの種類があります。これらには、LISPやPrologといった専用言語、オブジェクト指向プログラミング環境、プロダクションルールシステム、推論エンジン、エキスパートシステム開発「シェル」といった専用ソフトウェア開発ツール、自然言語パーサーや自然言語生成システム、そしてセマ​​ンティックネットワークやハイパーテキストといった知識表現システムなどが含まれます。これらはいずれも、もともと人工知能の特定の分野の研究過程で開発されました。現在、Macintosh向けに、様々な種類のソフトウェアが販売されています。

LISPは、リスト処理という本来の機能にちなんで名付けられ、現在でも広く使用されている最も古いコンピュータ言語の一つです。また、最も豊富な機能を持つ言語の一つでもあり、Common LISPの標準規格の一部として約10,000の関数が定義されています。この言語はリストという単一のデータ型を使用します。リストは、リストまたはアトムのいずれかである要素の連続として再帰的に定義されます。アトムとは、それ以上細分化できない単一の要素です。リストの定義は、定義対象が定義内で言及されているため、再帰的であると言われています。再帰はLISPで強く支持されている概念であり、多くのプログラミング問題の解決に役立つことが分かっています。

ヨーロッパと日本では、AIプログラミングの大部分はPrologで行われていました。しかし、エドワード・ファイゲンバウムの最近の報告によると、これはもはや当てはまらないようです。Prologという言語は、利用可能な知識表現に関して非常に制限が厳しく、この制限のために、Prologをベースにした高水準ツール(エキスパートシステム開発シェル)は成功していません。

Prologプログラムは主に、知識ベースに格納されたアサーション(表明)で構成されています。これらの表明は、使用されている知識ベースと言語実装に応じて、フレームに編成される場合とされない場合があります。これらの表明(および表明の撤回)は、プログラムのユーザーが提示する質問に応じて、後方連鎖方式で探索されます。Prolog言語には独自の推論エンジンが組み込まれています。推論エンジンの詳細については、以下を参照してください。

推論エンジン

推論エンジンは通常、エキスパートシステム開発の「シェル」または「環境」の一部として提供されます。推論エンジンには、推論を形成する経路に応じて、前向き連鎖と後向き連鎖という2つの基本的なタイプがあります。どちらのタイプの推論エンジンも、IF <述語>: THEN <帰結> ルールとして表現される知識に基づいて動作します。この構造はAI研究において「生成ルール」と呼ばれます。これは、初期の研究の一部が、適切にフォーマットされた例や事例からこのタイプのルールを「生成」または「推論」するプログラムを設計することであったためです。

前向き連鎖では、推論エンジンは既知または表明された述語から前方に進み、可能な限り多くの帰結を導出します。この結果、しばしば「組み合わせ爆発」と呼ばれる現象が発生します。システムによって推論される帰結があまりにも多すぎるため、いずれの結果も情報の嵐の中で意味を見失ってしまいます。前向き連鎖システムは、個々の推論の数が多いため、望ましい結論に到達するまでに時間がかかることがよくあります。前向き連鎖推論エンジンの組み合わせ爆発を抑制し、パフォーマンスを向上させる方法がいくつかあります。

後方連鎖では、推論エンジンは(ユーザーまたはプログラムによって提供された)仮説的な結論から逆方向に作業を進め、それを支持する述語を見つけます。支持するルールの連鎖に、システムが真偽を知らない述語が含まれている場合、ユーザーにその述語の状態を問い合わせます。これはしばしば「ゴールドリブン型」または「ゴールシーキング型」推論と呼ばれます。診断または分類のエキスパートシステムの大部分は、後方連鎖推論に基づいています。

モデルベース推論

AIシステムの開発では、ルールを処理する推論エンジンに加えて、モデルベース推論も用いられます。この手法では、AIプログラム内に問題空間のモデルを構築します。使用されるモデリング手法には、数学的記述、ルール、フレーム、スクリプト、オブジェクト指向手法、イベントシミュレーション、セマンティックネットワーク、そしてこれらのハイブリッドが含まれます。モデリング手法に適した推論メカニズムを選択し、推論サブプログラムを開発します。現実世界の既知の状態に対応するようにモデルを初期化する何らかの方法が必要です。モデルの初期化手法は、クエリへの回答を入力する方法から、「シンボリックスプレッドシート」を用いたオンラインデータ取得まで多岐にわたります。

モデルベース推論は通常、モデルと推論エンジンの両方に多大な開発作業を必要とするため、パッケージ化されたAI開発シェルの基盤としては広く利用されていません。この一般的なルールの例外の一つがPaladin Softwareで、同社は主要製品に企業財務アプリケーションと製造オペレーションアプリケーションの両方向けに設計されたモデルフレームワークを採用しています。これらのプログラム(それぞれFinance AdvisorとOperations Advisor)は、ユーザーの操作に合わせて中程度のカスタマイズしか必要とせず、当初はプラットフォームとしてLISPマシンを必要としていました。これらはSunワークステーションに移植されており、近いうちに他のUnixシステムでも利用できるようになるかもしれません。Mac向けに市販されているモデルベース推論システムについてはまだ知りませんが、もし開発中のものがあれば教えていただけると嬉しいです。

エキスパートシステム開発シェル

エキスパートシステム開発シェルの中には、単一の推論モードのみをサポートするものもあれば、各モードごとに独立した推論エンジンを備えたものもあり、知識エンジニアは特定のアプリケーションに最適な推論手法を選択できます。エキスパートシステム開発シェルに共通するその他の機能としては、ルールエディタ、データベース管理システムなどの外部ソフトウェアパッケージへのフック、ポップアップウィンドウにヘルプやグラフィックを表示する機能などがあります。最近開発されたエキスパートシステムシェルの中には、ハイパーテキスト機能やHyperCardへのフックを備えたものもあります。

知識表現

エキスパートシステム開発シェルの特徴は、推論手法に加えて、知識表現方法にあります。ほぼすべてのシェルは、IF <述語>: THEN <帰結> ルールとして表現される知識をサポートしています。これは、多くの種類の知識、特に診断、分類、ポリシー適用アプリケーションにおいて効率的な表現方法です。一部のシェルでは、帰結に確信度係数を付加することができ、「通常」、「ほとんどの場合」、「ほとんどない」などの概念を表現できます。他のアプリケーションに適した知識表現形式も利用可能です。一般的な知識表現形式としては、メタルール(ルールの使用に関するルール)、パターン記述とマッチング、オブジェクト指向システム、セマンティックネットワークなどがあります。

単純なアプリケーションに用いられるアプローチの一つは、「例」スプレッドシートです。エキスパートシステム開発シェルは、このスプレッドシートからルールを導出します。これらのルールは推論エンジンによって処理され、結論や診断を導き出します。これはパターン表現とマッチングの特殊な形態です。この「ルール推論」アプローチは知識エンジニアを不要にすると考えられており、単純なアプリケーションでは成功しています。しかし、アプリケーションがより複雑になると、ドメインエキスパートは、有用なエキスパートシステムを開発するために、複雑性管理と完全性チェックといった知識エンジニアのスキルを必要とします。

セマンティックネットワーク、オブジェクト指向プログラミングシステム、ハイパーテキストは、知識表現の概念として緩く関連しています。多くの点で、これらの知識表現形式は、推論やルール誘導よりもモデルベース推論のサポートに適しています。モデルベース推論は、これらの知識表現を使用するプログラムに組み込む必要はありません。知識エンジニアがモデルについて推論し、問題解決に必要な知識をコンピュータが効率的に処理できる形式で構造化します。あるいは、これらの知識表現形式は、ユーザーが説明を求めるモデルを構築するために使用され、推論エンジンが結論や診断に至るために使用されない場合もあります。現在の多くの研究は、ルールベースエキスパートシステム内の説明機能を向上させるための学習プロセスモデルの開発、または特定の事実と定義された推論技術の両方を適用できるようにユーザーを訓練できる「エキスパートチューター」の開発に焦点を当てています。

上で説明した3つの手法は、オブジェクト間のリンクという形で知識を表現します。これらの知識表現形式におけるオブジェクトは、それぞれ特性が異なり、コンピュータによって定義・保存される方法も異なります。リンクの種類も、表現形式や特定の知識表現システム内での実装によって異なります。Macintoshユーザーにとって、これらの知識表現手法の中でおそらく最も馴染み深いのは、HyperCard形式のハイパーテキストでしょう。Macintoshでプログラミングをする方なら、MacAppやC++などのオブジェクト指向プログラミングシステムにも馴染みがあるでしょう。

AI を使用する理由

プログラマーがAI技術を学びたいと思う理由は2つあります。1つ目は、純粋な知的好奇心です。2つ目は、これらの技術がプログラム内で望ましい結果を得るための最も簡単な方法となる場合があるからです。そうそう、3つ目の理由もあります。AIベースのプログラムに多額の報酬を支払うと申し出てきた人がいます。それは、AIが本当に必要だから、あるいは最新の技術トレンドを求めているからです。

知的好奇心は、安価な言語パッケージやエキスパート システム開発シェルの売り上げを牽引する主な要因です。LISP や Prolog の非常に使いやすいパブリック ドメイン バージョンは、ネットワークやユーザー グループから入手できます。100 ドル未満のエキスパート システム シェルもいくつかあり、150 ドル未満のものもいくつかあります。これは安いとは言えませんが、Nexpert Object に 5,000 ドル、microExplorer に 28,000 ドルを費やすよりは、好奇心を満たすにははるかにリーズナブルな価格です。このような種類の実験で頻繁に得られる副作用は、自分自身の(または他の人の)思考プロセスに対する理解が深まることです。完全に定義されていないプロセスをシミュレートするプログラムを作成することは非常に困難です。したがって、これらのことを納得のいくように実行(またはシミュレート)するプログラムを作成するには、思考、診断、意思決定について学ぶ必要があります。

「必要なことをしてくれる」という点は、開発中のプログラムにAIベースの機能を組み込む上で特に有効な理由です。最近の例としては、アドベンチャータイプのゲーム「Crossbow」がリリースされました。このゲームのAI機能は、モンスターがプレイヤーの好む戦術を集合的な経験を通して「学習」するというものでした。モンスターは、以前のモンスターを倒した状況や行動を回避するために、素早く行動を変えます。プレイヤーは、それぞれのモンスターを倒すために、新しく異なる方法を考え出さなければなりません。これにより、ゲームはプレイヤーにとって徐々に難易度が上がり、市場における製品の「寿命」を延ばすことにつながります。

同様に、ユーザーが(ほぼ)英語でコマンドを入力する必要がある場合、自然言語理解のためのAI技術が利用可能であり、これを組み込むのに適しています。音声認識製品も存在します(ただし、今のところMac向けよりもDOS向けの製品が多いことは知っています)。

また、クライアントが複数の拠点に一貫したポリシーを適用する必要がある場合、エキスパートシステムは拠点ごとに推奨事項を生成し、発生するあらゆる状況に対して一貫性と公平性をもってルールを適用します。これは、保険会社(引受と保険金請求の両方)や銀行(融資申請の審査)などの組織にとって特に有益です。ポリシーの適用に一貫性がないと法的問題に直面する可能性のある企業は、この種のAIアプリケーションの恩恵を受けることができます。ほとんどの企業の人事部(人事マネージャーの皆さん、ご注意ください!)を、能力レベルに関するルールと、現在当該業務に従事している人々の評価に基づいて、特定のポジションに誰を採用または昇進させるかを決定するエキスパートシステム群に置き換えることができればと願っています。残念ながら、これはあまりにも明白なアイデアであるため、EEO訴訟によって強制されない限り、ほとんどの企業にとって活用できるものではありません。人事決定における選考基準を明確に定義(および明示)することは、ほとんどの組織の士気にとってあまりにも冷笑的でしょう。

AI に Mac が必要な理由

Macintosh II の導入により、Apple 社はようやく Macintosh のインターフェースが人工知能の作業に理想的な環境であるという事実を認め、それに応じてマシンを販売し始めた。Xerox STAR テクノロジをベースとし、さらに Xerox LISP ワークステーションも加わった Macintosh は、オブジェクト指向プログラミング パラダイムを中心に設計されたマシンだ。(やりましたね。人工知能に関する記事には必ず「パラダイム」や「ヒューリスティック」という言葉を少なくとも 1 回は無駄に使わなければなりません。これはギルドのルールです。) Macintosh は、もともと AI 研究者が LISP を使用して開発したウィンドウ、アイコン、メニューという充実したユーザー環境を備えています。初期の Macintosh プログラムの多くは、テキストからの音声生成など、AI っぽいことを行うためのものでした。そしてもちろん、知識表現のためのフロントエンドまたはバックエンドとして HyperCard が組み込まれています。

AI開発にMacを使うもう一つの理由は、前述のコプロセッサボードです。LISPマシンはワークステーション1台あたりの価格が、私たちの大半が年間に稼ぐ金額を上回るため、まさに「少数の人々のための」コンピュータと言えるでしょう。しかし、これらのハイブリッドコンピュータを使えば、LISPマシンの半分以下のコストで、有用かつ高速なAI開発と展開が可能です。

高性能AIを過酷な環境に導入したいと考えている方には、まさにうってつけのソリューションがあります。マサチューセッツ州ビレリカに本社を置くAutomatix社は、「AI90ファクトリーフロアコントローラ」と呼ばれる製品を製造しています。これは、アップグレードされた電源、NEMA 12エンクロージャ、正圧冷却エア、ラックマウント機能を備えたMacintosh IIを再パッケージ化したものです。これにLISPコプロセッサを追加すれば、Macのデータ収集機能、数値処理能力、接続機能をすべて備えた、産業用途向けに強化されたLISPマシンが完成します。製造エンジニアや工場システムインテグレーターの皆様、ぜひご注目ください。

Macを選ぶもう一つの理由は、AI開発のための非常に優れたエキスパートシステム開発シェルやその他のツールが利用できることです。Nexpert Objectは、ルールベースプログラミングとオブジェクト指向プログラミングの能力を兼ね備えた非常に強力な開発シェルです。これを用いて開発されたAIシステムは、Nexpert Objectが利用可能なマシン間で高い移植性を備えています。現在利用可能なマシンには、標準SystemまたはA/UXを搭載したMacintosh II、Windowsが動作する80286および80386 DOSマシン、Sun、Hewlett Packard、ApolloのUNIXワークステーション、microVAX以降のVAXがあり、まもなくVMおよびMVSが動作するIBMメインフレームも含まれる予定です。マイクロコンピュータとワークステーション向けの価格は1本あたり5,000ドルです。VAXとIBMメインフレーム向けの価格は1本あたり5,000ドルです。

価格は7,000ドルです。詳細については、カリフォルニア州パロアルトのNeuron Data社またはカリフォルニア州サンフランシスコのBechtel AI Institute社にお問い合わせください。Neuron Data社はシェルの開発と販売を担当し、Bechtel社は購入者への使用方法のトレーニングや開発作業、そして製品の販売を行っています。

DOS の世界で大きな人気を博したもう 1 つのシェルが GoldWorks II です。1988 年 8 月の MacWorld 展示会で、Gold Hill 社と Coral Software (Coral/Allegro Common LISP で有名) 社が協力してこのシェルを Macintosh に移植したことが発表されました。Gold Hill 社の社長は、これは単なる DOS ツールの移植ではなく、完全な Macintosh インターフェイスを実現するために再設計されたものだと主張したと広く引用されています。展示会場で (非常に堅牢な) ベータ版を数時間操作した私の経験からすると、彼の主張は正しかったようです。このソフトウェアは現在出荷されており、強力で柔軟性が高く、ほとんどの Mac プログラマーが使い慣れているインターフェイス構築ツールやデータ管理ツールへの優れたフックを備えています。このプログラムのMac版は、Macintosh向けのCoral Common LISPを開発したCoral Softwareの技術力と、強化された80286マシン向けに設計されたソフトウェアをGold Hill Common LISPで開発したGold Hillの技術力に大きく依存しています。このシェルの希望小売価格は、Mac版とDOS版ともに7,000ドルです。

製品アプリケーション会社価格知識推論メカニズムインタフェースとの統合
インスタントエキスパート人間の知能システム50ドルルール記載なし含まれませんクリップボード経由で画面をインポートする
同族ペリドーム株式会社150ドルルール/事実前向き連鎖、後向き連鎖Macツールボックスクリップボード経由で画面をインポートします。
マックスマート認知技術195.00ドル例、いくつかのルールルール誘導他のアプリケーションからのインポートのみ。Excel、HyperCard が挙げられます。
スーパーエキスパートソフトシンク199.00ドル誘導されたルールの前方連鎖。他のアプリケーションからのインポートのみ。1988 年 7 月に HyperCard に取り組んでいました。
Cognate(開発者版)ペリドーム250ドルCognate よりも豊富な例/ルール構造。誘導ルールまたは明示ルールの前向き連鎖他のアプリケーションからインポートします。埋め込みオブジェクト コード モジュール経由。
MacSmarts プロフェッショナル認知技術395.00ドル例、MacSmartsよりも豊富な構造前方連鎖他のアプリケーションをインポートするスプレッドシートと HyperCard。
インスタントエキスパートプラス人間の知能システム498.00ドルルール前向き連鎖と後向き連鎖一部はフォーマット済みです。他のアプリケーションからインポートします。他のアプリを起動するための「ホット ボタン」。
Nexpertオブジェクトニューロンデータ5000ドルルール、フレーム、オブジェクト前方連鎖、後方連鎖のパターン マッチング、およびカスタム。Macintoshツールボックス。他のアプリケーションからのインポートも可能です。埋め込みオブジェクト コード モジュール経由。
Gold Works II Macintosh版ゴールドヒルコンピューター7000ドルルール、フレーム、オブジェクト。前方、後方、パターンマッチング、カスタム。Macintoshツールボックス。他のアプリケーションからのインポートも可能埋め込みオブジェクト コード モジュールまたは起動。
Macintoshで利用可能なエキスパートシステムシェルの比較

AIを始めるには

もしあなたがすでに手続き型言語を巧みに扱う Macintosh プログラマーであるなら、私がこれから言うことに耳を傾ける必要はありません。あなたは、あらゆることの詳細をすべて知っていなければならない意欲的な個人の 1 人であることをすでに証明しています。しかし、A の罠をすべて記憶していない人や、アセンブリ言語でのプログラミングを習得したことがなく、ましてや作成する能力がない人は、よく聞いてください。複雑な新しいスキルを習得するには、時間、努力、そしてある程度の生来の才能が必要です。時間と努力を注ぐまで、必要な才能があるかどうかはわかりません。一夜にして AI のすべてを学ぶことはできません。もしあなたが最近になってそれが言語障害以外の何かであると気づいたのであれば、LISP で書かれたプログラムを作成しようとしないでください (少なくとも金銭目的では)。

一方、あなたよりも熟練した人が開発したツールを使えば、役に立つ興味深いことをかなり早く習得できます。初心者の方には、解決しようとしている問題に最も自然に見える方法で知識を表現するエキスパートシステムシェルを探すことを強くお勧めします(これについては後ほど詳しく説明します)。あるいは、データベースアプリケーションにアドホッククエリ機能を追加しようとしている場合は、自然言語パーサーを購入してください。あるいは、HyperCard用のXCMD推論エンジンの登場にも注目してみてください(少なくとも3つの組織が開発中であることが分かっています)。

初心者(Mac 初心者も含む)が次に試すべきことは、オブジェクト指向プログラム開発システムです。オブジェクト指向プログラミング(OOP)の基本は、データ項目がクラスに属するオブジェクトであるという考え方です。個々の項目またはオブジェクトは、親クラスの特性を継承することも、他のオブジェクトと区別する独自の特性を持つこともできます。オブジェクトが持つことができる特性の 1 つに「メソッド」があり、これは特定の条件下でのオブジェクトの動作を記述したものです。オブジェクトはメッセージを渡すことで相互に対話します。メッセージの受け渡しによってメソッドがトリガーされるか、受信側オブジェクトが送信側オブジェクトから新しいメソッドを取得できます。オブジェクト指向プログラミングシステムについて学習したい場合は、MacApp または Smalltalk V が最適です。Smalltalk V は、カリフォルニア州ロサンゼルスの Digitalk Inc. から 199.95 ドルで購入できます。

AIで解決する問題の選択

他のプログラミング作業と同様に、解決策の「市場」を、その克服に現在費やされている時間や費用の観点から評価する必要があります。より高速で信頼性の高い解決策は、その解決策の開発に費やす時間に見合う価値がありますか? 開発したプログラムを誰かが使用しますか? これらの質問の少なくとも 1 つに「はい」と答えられない場合は、「おもちゃの」問題です。これらの種類の問題は、初期の実験や、ツールの機能を感じるためにさまざまなツールを使用して解決するには適しています。ただし、この種の問題に長時間費やすべきではありません。十分な学習ができないからです。たとえ自分が唯一の「顧客」であったとしても、学習演習をできる限り実践的なものにしてください。ただし、常に自分が顧客である必要はありません。おそらく、1 つまたは複数の地元のホテルが、遠方から来たゲストのためにレストラン アドバイザー エキスパート システムのコピーを購入するでしょう (そのホテルのレストランも推奨する限り)。あるいは、コンピュータを所有している HMO の他のメンバーは、子供の病気を診断し、自然の成り行きを待つだけでよい場合、緊急治療室に行く必要がある場合、すぐに医師の診察を受ける必要があるが通常の診療時間まで待つことができる場合などを知らせてくれるプログラムがあれば喜ぶかもしれません。

既存の解決方法はあるのでしょうか?AI技術は、現在知られている解決方法の限界を明確に定義するのに役立ちます。また、AI技術によって、実用的ではないほど遅い方法を、時間と空間に分散したより多様な状況に適用できるようになるかもしれません。しかし、AIは何も無いところから何かを生み出すことはできません。未解決の問題に取り組むことは、問題解決ツールの使い方を学ぶための最良の方法ではありません。この警告は、より深く理解しているはずの経験豊富な開発者にも同様に当てはまります。広告コピーライターがマーケティング部門を通して得た情報を、必ずしも全て信じることはできません。

解決方法はアルゴリズムとして表現するのに適していないでしょうか?多くの小規模な問題、そして多くの大規模な問題の開発初期段階では、アルゴリズムとして表現できる解決策の部分は教科書やマニュアルで見つけることができます。手続き型プログラミング手法を用いて問題を解決でき、その方法を知っている場合は、そうしてください。純粋にアルゴリズムによる解決策では不十分な場合は、AIが状況を改善する手段となる可能性があります。複数のアルゴリズムが考えられ、ユーザーが直面する真の課題が特定の状況に最も適したものを選択することである場合、AIと手続き型プログラミングを組み合わせたシステムが必要になるかもしれません。

開発者を目指すあなたは、既存のソリューション手法の適用に精通した専門家にアクセスできますか?その専門家はコミュニケーション能力と協調性を備えていますか?AIを使わないソフトウェア開発における類似点は、アプリケーションスペシャリストです。(「The Business of Software」の「アプリケーションの選択」と「チームビルディング」の記事をご覧ください。)建築家向けのCADシステムを開発しようとするなら、建築家の行動や考え方を教えてくれる数人の建築家がそばにいてくれることが不可欠です。AI開発において、ナレッジエンジニアがドメインエキスパートにアクセスできるかどうかは、システムの設計、開発、テストにおいて極めて重要です。

そして最後に、問題は「十分に限定されている」かという点です。それぞれの初期条件において、考えられる解の数は有限でしょうか?複数の考えられる解や答えがある場合、それらはすべて同等に優れているため、最初の解が見つかった時点で処理を止められるでしょうか?あるいは、考えられる解を評価してどれが「最良」かを判断する方法はあるでしょうか?そして、その方法は評価に必要な時間やリソースの面で現実的でしょうか?考えられる初期条件を記述する方法は有限でしょうか?

AI開発ツールの選択

常に「作業に適した道具」を使うべきだというのが、私の信条です。私は手動と電動の両方を含む様々な種類のドライバー、数本のバール、そしてノミも数多く所有しています。何を達成したいかに応じて、サイズ、重量、材質、設計意図、そして入手しやすさなどの観点から、作業に最も適した道具を選びます。ドライバーを木工用のノミとして使うことも可能ですが、それは、作業が必要な時と場所で適切なサイズの木工用のノミが手に入らない場合にのみ行います。同様に、私は開発中のソフトウェアが完成した後に何をするべきかに基づいてソフトウェア開発ツールを選択します。一般的に、必要な機能を備えているのであれば、入手可能な最高レベルのツールを使うべきです。

AI開発ツールは、解決しようとする問題の特性に基づいて選びましょう。
生物学を専門とするプログラマーの友人は、プログラミングにおけるあらゆる問題は、最終的には問題の「分類法」を正しく定義することに帰着すると主張しています。彼が言いたいのは、問題に影響を与える要因とその解決策の関係性を開発者が理解するのに役立つ、一貫性のある明確な用語を知っている、あるいは開発することが、プログラム設計において非常に重要だということです。さらに、プログラム実装における多くの困難の原因は、設計にこの分類法を反映させることへの配慮が不十分であることにあるとも述べています。この2つの主張は、AIプログラミングにおいてはさらに重要です。ツール内で利用可能な知識表現方法の限界により、特定の種類の問題ではツールが利用できない場合があります。生成規則では表現できない知識の種類は数多く存在します。また、用語が不正確な意味ネットワークは、解析によってオブジェクト間の関係を明確に示すことができません。システムに組み込む知識の特性を慎重に検討した上で、その知識を捕捉し、エンコードするための手法を決定する必要があります。

次に検討すべき点は、ツールが適切なソリューションに必要な推論方法をサポートしているかどうかです。リアルタイムのアラーム監視問題を後向き連鎖推論エンジンで解決しようとすると、挫折するのは目に見えています。ルールを試す順序を優先するメカニズムを持たないツールを使用して大規模なルールベース システムを開発すると、開発中だけでなく、システムの導入後にもユーザーに迷惑がかかります。また、モデルベース推論に依存するシステムの開発に Prolog を使用すると、ほぼ確実に失敗に終わります。データ駆動型または状況分析タイプのシステムには、前向き連鎖推論を使用します。診断システムや分類システムには、後向き連鎖を使用します。モデルベース推論を必要とする問題用にカスタマイズされた推論エンジンを開発する時間を計画してください。また、「リアルタイム スケジューリング」など、まだ定義されていないものに取り組む場合は、上記すべてが必要になることを計画してください。

ツール選定において最後に考慮すべき点は、最終的なシステムに必要なハードウェアとソフトウェア環境です。優れたユーザーインターフェースを構築するために必要なツールは、環境に組み込まれているか、あるいは環境内から簡単にアクセスできるでしょうか?このツールで開発されたソフトウェアは、他のプログラムから呼び出したり、DBMSなどをユーザーに透過的に呼び出したりできますか?システムが提供されるハードウェアファミリーと同じものを使用して、効率的に開発できますか?これらの質問すべてに「はい」と答えられるなら、それはプロジェクトに適した候補ツールです。さらに、上記のすべての基準も満たしている場合は、選択した問題に効果的に取り組むことができると確信できます。

著者について

アン・マリー・オコネルは、かつてテキサス・インスツルメンツ社で製造業務向けマイクロコンピュータベースのエキスパートシステムの開発に携わり、同社の自動車部門顧客向けAI(人工知能)およびファクトリーオートメーションのマーケティングマネージャーを務めていました。現在は、ビッグスリー自動車メーカーの一社で、自動組立および情報技術を活用した生産性向上の分野に携わっています。

さらに詳しい情報を得るには…

エイヴロン・バー、エドワード・ファイゲンバウム、ポール・コーエン編『人工知能ハンドブック』。この3巻セットは、用語の定義、重要な研究成果の要約、そしてより学術的な情報源へのポインタ(あるいはハンドル)として機能します。1982年の出版まで、非常に充実した内容となっています。

ポール・ハーモンとデイビッド・キング著『エキスパートシステム:ビジネスにおける人工知能』。エキスパートシステムの商業利用に関する調査。現在はやや古めかしいが、導入前にこの技術について少し知りたいと考えているマネージャーに渡すのに適した一冊だ。

ジョン・ウォルターズとノーマン・ニールセン著『知識ベースシステムの構築:エキスパートシステムを現実化する』。エキスパートシステム開発を目指す人にとって、私がこれまでに出会った中で最高の一冊です。知識表現、推論手法、ユーザーインターフェース設計に関する章は特に重要です。知識エンジニアの見習いには必読です。

ハロルド・アベルソン、ジェラルド・サスマン、ジュリー・サスマン共著『コンピュータプログラムの構造と解釈』。LISPプログラミングを本格的に学びたいなら、この本はまさにうってつけです。MITの1年生必修のコンピュータコースで使用されています。

Guy Steele Jr.著『Common LISP, the Language』。Common LISPの決定版として広く認められています。言語定義マニュアルに慣れていない方やLISPに精通していない方には、本書は難解です。参考資料としてのみご利用ください。

雑誌

AI Expertは、Miller Freeman Publications(500 Howard St., San Francisco CA 94105)発行の雑誌です。「実践的な人工知能の雑誌」という副題を掲げ、虞のあるコラムニスト、ハーヴェイ・ニュークイストが毎月、誰かのAIの尻拭いをしています。コードサンプル(CompuServeとUSENETからも入手可能)と、現実的で実用的なレビューが満載です。1988年11月下旬までは、Mac関連コンテンツはほとんどありませんでした。広告主の思惑で、彼らは今、Mac関連コンテンツに力を入れています。

IEEE Expertは、米国電気電子学会コンピュータソサエティ(CIE)が発行する季刊誌です。この不定期刊行物のバックナンバーは、ほとんどの大学の工学部図書館で入手可能です。また、IEEEからも購入できます。お問い合わせは、読者サービス(PO Box 16508, N. Hollywood, CA 91615)までお願いいたします。掲載内容は、主に学術的でありながら、最新の研究に関する読みやすいレポートです。

あなたが今読んでいるMacTech Quarterly。この出版物は、手続き型言語(Pascal、C、FORTRAN)、オブジェクト指向プログラミングシステム、そしてカスタマイズ可能なアプリケーション(HyperCard、4D、

(GoldWorks II)。今後の記事には、Mac 用 AI 言語および開発ツールの詳細なレビューが掲載される予定です(メーカーが顧客からレビュー担当者を提供するか、レビュー用に製品の 1 部を提供する場合)。

アメリカ人工知能学会(AAI)が発行する「Artificial Intelligence Magazine」。非常に学術的で権威のある雑誌です。研究者たちが最新の研究成果を発表する場です。ここで初めて言及されたものが商業利用されるまでには少なくとも1年かかることを考えれば、悪くない成果と言えるでしょう。この組織は、AI業界の発表の場となる年次会議も主催しています。