プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

インスタンスベース表現とは?仕組みと特徴をわかりやすく解説

機械学習における最もシンプルな学習構造は、単純な暗記、いわゆる「丸暗記(ロート学習)」です。訓練データのインスタンス群をそのまま記憶しておき、新しいインスタンスに遭遇した際には、記憶の中から最も強く類似している訓練インスタンスを探し出して対応します。

インスタンスベース学習とは

ここで問題となるのは、「類似している」をどう定義するかという点です。この手法は、インスタンス群から「知識」を抽出するという従来のアプローチとは根本的に異なります。クラスが既知のインスタンスそのものを保存し、クラスが未知の新しいインスタンスを既知のインスタンスに関連付けることで動作します。ルールを作ろうとするのではなく、インスタンスそのものから直接判断を行うのです。このような方法は「インスタンスベース学習」と呼ばれます。

怠惰な学習と熱心な学習の違い

インスタンスベース学習では、訓練セットを処理する段階ではなく、新しいインスタンスを分類する必要が生じた時点で、実際の処理のほとんどが行われます。他の手法との違いは、この「学習」が実行されるタイミングにあります。

インスタンスベース学習は「怠惰(レイジー)」な手法であり、可能な限り実際の作業を先送りします。一方、他の多くの手法は「熱心(イージャー)」であり、データを見た時点で直ちに一般化を行います。

最近傍法による分類

インスタンスベース分類では、距離尺度を用いて新しいインスタンスと既存のインスタンスを比較し、最も近い既存インスタンスのクラスを新しいインスタンスに割り当てます。これは「最近傍分類法」として知られる手法です。

また、1つではなく複数の近傍インスタンスを参照する場合もあります。最も近いk個の近傍インスタンスの多数派クラス(クラスが数値の場合は距離の重み付き平均)を新しいインスタンスに割り当てる方式は、「k近傍法」として定義されています。

名義属性と距離尺度の課題

名義属性(カテゴリ型の属性)が含まれる場合、その属性の複数の値の間の「距離」をどのように定義するかが重要な問題になります。さらに、属性ごとに重要度が異なることも多く、これは通常、さまざまな形の属性重み付けによって距離尺度へ反映されます。訓練集合から適切な属性の重みを導出することは、インスタンスベース学習における本質的な課題の一つです。

明示的な構造を持たないという制約

インスタンスベース表現の明らかな制約は、学習結果として明示的な構造を生成しないという点です。ただし、インスタンスと距離尺度が組み合わさることで、あるクラスを別のクラスから切り分ける領域へとインスタンス空間が分割されるため、これ自体が一種の知識の明示的な記述であるとも言えます。

インスタンス空間の分割の具体例

例えば、2つのクラスそれぞれに1つのインスタンスのみが与えられている場合、最近傍法は実質的に、2つのインスタンスを結ぶ線の垂直二等分線に沿ってインスタンス空間を分割します。各クラスに複数のインスタンスが存在する場合には、一方のクラスのインスタンスともう一方のクラスのインスタンスを結ぶ複数の線に対する垂直二等分線の集合によって、空間が分割されることになります。

  1. C#のBigIntegerクラスとは?巨大な数値を扱う方法と主なコンストラクタを解説

    C#で通常の整数型(int や long)では表現できない非常に大きな数値を扱いたい場合には、BigInteger 構造体を使用します。BigInteger を利用するには、プロジェクトに System.Numerics アセンブリへの参照を追加する必要があります。BigInteger は System.Numerics.BigInteger 名前空間に定義されており、理論上はメモリが許す限り無限に近い大きさの整数を扱うことができます。暗号処理や科学技術計算など、桁あふれ(オーバーフロー)を気にせず正確な計算を行いたい場面で特に役立ちます。BigInteger の構文BigInteger の宣

  2. dry-rbとは?Ruby開発に役立つ注目のGemコレクション徹底解説

    新しい面白いgemを試してみたいと思いませんか? そんな方におすすめしたいのがdry-rbです。これは一般的な問題への解決策を提供するgemのコレクションで、18以上のRuby gemで構成されています。それぞれのgemは組み合わせて使うことも、単体で使うことも可能です。 代表的なgemには以下のようなものがあります: dry-initializer dry-struct dry-validations dry-events dry-transaction この記事では、その中から3つのgemをピックアップして紹介し、dry-rbが持つ可能性の一端を体験していただきます! dry-str