フレーム(人工知能) - 百科事典
フレームは、「ステレオタイプの状況」を表現することで知識をサブ構造に分割するために使用される人工知能データ構造です。これらは、マーヴィン・ミンスキーが1974年の記事「知識を表現するための枠組み」で提案しました。フレームは、人工知能フレーム言語で使用される主要なデータ構造であり、セットのオントロジーとして保存されます。
フレームは、知識表現と推論スキームの広範な部分でもあります。これらは元々、semantic networksから派生しており、したがって構造ベースの知識表現の一部です。ロスウェルとノルヴィグの「現代の人工知能:現代的なアプローチ」によると、構造的な表現は「特定のオブジェクトやイベントのタイプに関する事実をまとめ、生物学的分類と類似の大きな分類学的階層に従ってこれらのタイプを並べます」。
フレーム構造
フレームには、フレームの使用方法、次に何が期待されるか、そしてこれらの期待が達成されない場合に何をすることについての情報が含まれています。フレーム内の情報の一部は一般的に変更されませんが、他の情報は「端末」として保存され、通常変更されます。端末は変数として考えられます。
トップレベルのフレームには、問題に関して常に真であるとされる情報が含まれていますが、端末は必ずしも真でない場合があります。その値は、新しい情報に基づいて変更される可能性があります。異なるフレームが同じ端末を共有することもあります。
特定のフレームに関する情報の各ピースはスロットに保持されます。情報には以下が含まれることがあります:
事実やデータ
値(フェイシズと呼ばれる)
プロセス(プロシージャルアタッチメントとも呼ばれる)
IF-NEEDED:遅延評価
IF-ADDED:リンクされた情報の更新
デフォルト値
データ用
プロセス用
他のフレームやサブフレーム
機能と利点
フレームの端末は、既にデフォルト値で埋まっており、これは人間の心の働きに基づいています。例えば、「少年がボールを蹴る」と言われた場合、多くの人は特定のボール(例えば、馴染みのあるサッカーボール)を視覚化するでしょうが、属性のない抽象的なボールを想像するのではなくです。
フレームベースの知識表現の特徴的な強みの一つは、セマantic networksとは異なり、特定のインスタンスにおける例外を許可する点です。これにより、フレームには、現実世界の現象をより正確に反映する能力を持つ柔軟性が得られます。
セマantic networksと同様に、フレームは拡散的活性化を使用してクエリできます。継承のルールに従って、サブフレームに継承されたスロットに値が設定されると(IF-ADDED)、サブフレーム内の対応するスロットおよび特定のフレームの新しいインスタンスに新しい値がデフォルトとして特徴付けられます。
フレームは構造に基づいているため、フレームのセットを与えると、明示的なアークがないにもかかわらず、セマantic networkを生成することが可能です。ノアム・チョムスキーの1950年の生成的文法に関する参照は、ミンスキーの作品から一般的に欠けています。
フレームのシンプルな構造は、類推推論(比較)を容易にします。これは、どの知的エージェントでも非常に価値のある機能です。フレームが提供するプロシージャルアタッチメントも、より現実的な表現を可能にし、プログラミングアプリケーションに対する自然的な機能を提供します。
例
ここで注目に値するのは、少年と猿の間で行える簡単な類推推論(比較)であり、似た名前のスロットを持っているだけでできます。
また、Alex(少年のインスタンス)は、より一般的な親オブジェクト「少年」から「性別」などのデフォルト値を継承しますが、少年は例外として異なるインスタンス値を持ち得ます。例えば、脚の数です。
フレーム言語
フレーム言語は、人工知能における知識表現に使用される技術です。これらはオブジェクト指向言語のクラス階層に似ていますが、基本的な設計目標は異なります。フレームは、知識の明示的で直感的な表現に焦点を当てており、オブジェクトはカプセル化と情報隠匿に焦点を当てています。フレームはAI研究の起源にあり、オブジェクトは主にソフトウェア工学の起源にあります。
しかし、実際には、フレームとオブジェクト指向言語の技術と機能は大幅に重複しています。
= 例 =
フレーム言語でモデル化された概念のシンプルな例として、ソーシャルネットワークやカレンダーシステムのための基盤として定義されたFriend of a Friend(FOAF)オントロジーがあります。このシンプルな例の主要なフレームはPersonです。
例のスロットは、人々のメール、ホームページ、電話などです。
各人の興味は、ビジネスとエンターテインメント領域の空間を説明する追加のフレームによって表現されます。
スロットは、各人を他の人とリンクします。
人々の興味のデフォルト値は、彼らの友人である人々のウェブのネットワークから推論されます。
= 実装 =
もっとも初期のフレームベースの言語は、特定の研究プロジェクトのためにカスタム開発され、他の研究者によって再利用されるツールとしてパッケージ化されていませんでした。
専門家システムの推論エンジンと同様に、研究者たちは、核心インフラの一部を抽出し、特定のアプリケーションに依存しない汎用フレーム言語を開発することの利点をすぐに認識しました。
最初の汎用フレーム言語の1つはKRLでした。最も影響力のある初期のフレーム言語の1つはKL-ONEであり、KL-ONEは多くの後続のフレーム言語を生み出しました。
KL-ONEの最も広く使用されている後継者の一つは、Robert MacGregorが情報科学研究所で開発したLoom言語です。
1980年代には、人工知能がビジネス界で大きな関心を引き、専門家システムによって推進されました。これにより、知識ベースシステムの開発のための多くの商業製品が開発されました。これらの初期の製品は通常、Lispで開発され、論理的推論のフレーム階層とデータを表現するためのIF-THENルールを統合していました。
これらの初期のLisp知識ベースツールの最もよく知られたものの一つは、IntellicorpのKnowledge Engineering Environment(KEE)です。KEEは、多重継承、スロット、トリガー、デフォルト値、およびバックチャインとフローチャインをサポートするルールエンジンを提供する完全なフレーム言語でした。KEEは、もともとLispマシンプラットフォーム上のLispで展開されましたが、最終的にはPCやUnixワークステーションに移植されました。
セマantic Webの研究計画は、自動分類とフレーム言語に対する再びの関心を引き起こしました。例として、インターネット上の情報を説明するための標準として定義されたWeb Ontology Language(OWL)があります。OWLは、インターネットにセマanticレイヤーを提供する標準であり、その目標は、現在の多くのアプリケーション(例えば、Google)がキーワードを使用してウェブを構成するのではなく、概念のオントロジーに基づいてウェブを構成することです。
OWL言語の名前自体が、セマantic Webの価値の良い例です。今日「OWL」でインターネットを検索すると、多くのページが鳥のオウルに関するものではなく、標準のOWLに関するものが取得されます。セマantic Webの使用により、「Web Ontology Language」という概念を特定することができ、ユーザーはさまざまな略語や同義語について心配する必要がありません。同様に、ユーザーは、この簡単な例のように、猛禽に関する情報など、関連のないデータが検索結果に混ざることを心配する必要もありません。
OWLに加えて、セマantic Webとフレーム言語に影響を与えたさまざまな標準や技術には、OILやDAMLがあります。スタンフォード大学のProtegeオープンソースソフトウェアツールは、OWLに基づいたオントロジの編集機能を提供し、クラスファイアーの完全な機能を持ちますが、バージョン3.5(フレーム指向を好む人々のためにメンテナンスされている)まで明示的にフレームをサポートしておらず、2017年の現在のバージョンは5です。明示的なフレームから移行する理由は、OWL DLがより表現力があり「業界標準」だからです。
= フレームとオブジェクトの比較 =
フレーム言語は、オブジェクト指向言語と大幅に重複しています。両者の用語や目標は異なりますが、学術世界やラボから商業世界に進むにつれて、開発者たちは哲学的な問題に関心を持ちずに、特定の機能に焦点を当て、どちらのキャンプからのものであれ、最善のものを選択することに集中しました。これらのパラダイムが共有するのは、現実世界の概念とそのソフトウェアにおける実装の間の距離を縮めるという desireです。したがって、両者のパラダイムは、非常に一般的なタイプから始めて、より具体的なタイプに進む分類学の階層に従って主要なソフトウェアオブジェクトを表現するというアイデアに至りました。
以下の表は、オブジェクト指向とフレーム言語コミュニティの標準用語の間の関連を示しています。
これらのパラダイムの主要な違いは、カプセル化がどの程度重要視されるかです。オブジェクト指向パラダイムでは、カプセル化は最も重要な要求事項の1つであり、ソフトウェアコンポーネント間の潜在的な相互作用を減らし、大規模で複雑なシステムを管理するための desireが、オブジェクト指向技術の主要な駆動力でした。フレーム言語のキャンプでは、ルール、制約、プログラミングロジックを表現するための多様なツールを提供する desireが、この要求よりも重要でした。オブジェクト指向の世界では、すべてはメソッドによって制御され、メソッドの可視性によって制御されます。したがって、例えば、オブジェクト属性のデータ値にアクセスする場合は、アクセサーメソッドを使用する必要があります。このメソッドは、データタイプの検証や取得または設定される値の制約を制御することなど、さまざまな事項を制御します。フレーム言語では、これらの同様の制約を複数の方法で処理できます。トリガーは、スロットに設定される前にまたは後にトリガーされることができます。ルールは、同じ種類の制約を管理するために定義されます。スロット自体は、追加情報(一部の言語では「フェイシズ」と呼ばれる)を追加することができます。これも同じ種類の制約情報です。
フレームとOO言語の他の主要な区別点は、多重継承(フレームやクラスが2つ以上のスーパークラスを持つことを許可する)です。フレーム言語では、多重継承は必要とされます。これは、世界を人間のようにモデル化する desireから生じます。人間の世界の概念化は、しばしば厳格に定義された非重複の分類学に収まりません。多くのOO言語では、特にOOの後半の年、単一継承が強く望まれるか、または必要とされます。多重継承は、分野の分析段階でモデル化するための可能なステップとして考えられ、設計および実装段階でカプセル化とモジュール性を維持するために排除されるべきものとして見られていました。
早期のフレーム言語(例えば、KRL)はメッセージパスを含まないものでしたが、開発者の要求に応じて、多くの後期のフレーム言語(例えば、Loom、KEE)はフレームにメッセージを定義する能力を含めました。
オブジェクト指向の側面では、フレーム言語が提供する機能の基本的な同等機能を提供する標準も登場しました。例えば、Object Management Groupは、フレームと同様に一般的な用途を持つフェイシズや制約をオブジェクトに関連付ける機能やルールエンジンの統合のための標準規格を標準化しました。
歴史
フレームに関する初期の研究は、1930年代に遡る心理学的研究にインスパイアされており、人間が新しい認知的状況を解釈し行動するために保存されたステレオタイプの知識を使用するという示唆がありました。フレームという用語は、マーヴィン・ミンスキーが視覚的推論や自然言語処理を理解するためのパラダイムとして初めて使用されました。これらの問題や他の多くの問題では、最も小さな問題でさえ、解決策の空間は非常に大きいです。例えば、生のオーディオストリームからフォネームを抽出したり、オブジェクトのエッジを検出したりすることができます。人間にとっては単純に見えることが実際には非常に複雑であることが判明しました。実際、これらがどれだけ難しいかは、AI研究者がこれらの問題を解決する複雑さを調査するまで完全には理解されていませんでした。
フレームまたはスクリプト(同様に呼ばれる)の初期の概念は、問題のコンテキストを設定し、その結果、可能な検索空間を大幅に減少させることでした。このアイデアは、例えば、レストランで食事を注文するなどの一般的な人間の相互作用を処理する方法を説明するために、シュランクとアベルソンによっても採用されました。これらの相互作用は、フレームとして標準化され、各フレームに関連する情報を保存するスロットが含まれていました。スロットは、オブジェクト指向モデルにおけるオブジェクト属性に似ており、エンティティ関係モデルにおける関係に似ています。スロットは通常、デフォルト値を持ちますが、各シナリオのインスタンスの実行の一部としてさらに詳細な設定が必要です。つまり、レストランでの注文などのタスクの実行は、基本的なフレームのインスタンスから始め、適切な場合に従ってさまざまな値をインスタンス化し、詳細に設定することで制御されます。基本的なフレームは抽象的なオブジェクトクラスを表し、フレームのインスタンスはオブジェクトインスタンスです。この初期の研究では、フレームの静的なデータ記述に焦点が当てられていました。スロットの範囲、デフォルト値など、さまざまなメカニズムが開発されました。しかし、これらの初期システムでもプロシージャル機能がありました。一般的な技術の1つは、スロットに「トリガー」として接続されることです。トリガーは、スロットに接続されたプロシージャルコードの単純なものであり、スロットの値がアクセスされたか、または変更されたか前にまたは後にトリガーされることができます。
フレームとオブジェクトクラスと同様に、フレームはサブサンプリング階層で構成されています。例えば、基本的なフレームはレストランでの注文であり、そのインスタンスはジョーがDairy Queenに行くことです。レストランフレームの特殊化(本質的にサブクラス)は、高級レストランでの注文のためのフレームです。高級レストランフレームはレストランフレームからすべてのデフォルト値を継承しますが、追加のスロットを追加したり、特殊化フレームのためにデフォルト値を変更したり(例えば、期待される価格範囲)することができます。
言語
もっとも初期のフレーム言語研究(例えば、シュランクとアベルソン)は、実験心理学の発見や、人間が日常のタスクで機能するためのパターンと一致する知識表現ツールの設