スタブ 次元削減とは何ですか? - Unite.AI
私達と接続
AI マスタークラス:

AI 101

次元削減とは何ですか?

mm
更新中 on

次元削減とは何ですか?

次元削減 は、データセットの次元を削減するために使用されるプロセスであり、多くの特徴を取得して、それらをより少ない特徴として表現します。 たとえば、次元削減を使用して、XNUMX 個の特徴からなるデータセットをわずか数個の特徴に減らすことができます。 次元削減は一般的に次のように使用されます。 教師なし学習 タスクを使用して、多くの機能からクラスを自動的に作成します。 よりよく理解するために 次元削減がなぜ、どのように使用されるのかでは、高次元データに関連する問題と、次元を削減する最も一般的な方法を見ていきます。

より多くの次元は過剰適合につながる

次元とは、データセット内のフィーチャ/列の数を指します。

機械学習では、より正確なモデルが作成されるため、機能が多いほど優れているとよく考えられます。ただし、機能が増えても、必ずしもより良いモデルが得られるわけではありません。

データセットの特徴は、モデルにとってどれだけ役立つかという点で大きく異なりますが、多くの特徴はあまり重要ではありません。 さらに、データセットに含まれる特徴が増えるほど、特徴のさまざまな組み合わせがデータ内で適切に表現されるようにするために、より多くのサンプルが必要になります。 したがって、サンプルの数は特徴の数に比例して増加します。 より多くのサンプルとより多くの特徴があるということは、モデルがより複雑になる必要があることを意味し、モデルがより複雑になるにつれて、過学習に対してより敏感になります。 モデルはトレーニング データのパターンを学習しすぎるため、サンプル データから一般化できません。

データセットの次元を削減すると、いくつかの利点があります。 前述したように、モデルが特徴が互いにどのように関連するかについてモデルが行う必要がある仮定が少なくなるため、モデルが単純であれば過学習の傾向が低くなります。 さらに、次元が少ないほど、アルゴリズムのトレーニングに必要な計算能力が少なくなります。 同様に、データセットの次元が小さいほど、必要なストレージ容量は少なくなります。 データセットの次元を削減すると、多くの特徴を持つデータセットには適さないアルゴリズムを使用できるようになる場合もあります。

一般的な次元削減方法

次元削減は、特徴選択または特徴エンジニアリングによって行うことができます。 特徴の選択では、エンジニアがデータセットの最も関連性の高い特徴を特定します。 特徴エンジニアリング 他のフィーチャーを組み合わせたり変換したりして、新しいフィーチャーを作成するプロセスです。

機能の選択とエンジニアリングは、プログラムまたは手動で行うことができます。 手動で機能を選択してエンジニアリングする場合、データを視覚化して機能とクラス間の相関関係を発見するのが一般的です。 この方法で次元削減を実行すると、かなりの時間がかかるため、次元削減の最も一般的な方法には、Scikit-learn for Python などのライブラリで利用可能なアルゴリズムの使用が含まれます。 これらの一般的な次元削減アルゴリズムには、主成分分析 (PCA)、特異値分解 (SVD)、および線形判別分析 (LDA) が含まれます。

教師なし学習タスクの次元削減に使用されるアルゴリズムは通常 PCA と SVD ですが、教師あり学習の次元削減に利用されるアルゴリズムは通常 LDA と PCA です。教師あり学習モデルの場合、新しく生成された特徴は機械学習分類器にそのまま入力されます。ここで説明する用途は単なる一般的な使用例であり、これらの手法が使用できる唯一の条件ではないことに注意してください。上記の次元削減アルゴリズムは単なる統計手法であり、機械学習モデルの外で使用されます。

主成分分析

写真: 主成分が特定されたマトリックス

主成分分析(PCA) データセットの特性/特徴を分析し、最も影響力のある特徴を要約する統計手法です。 データセットの特徴は、データの特性のほとんどを維持しながら、より少ない次元にまたがる表現に結合されます。 これは、高次元の表現からわずか数次元の表現にデータを「押しつぶす」ことと考えることができます。

PCA が役立つ状況の例として、ワインを説明できるさまざまな方法について考えてみましょう。 CO2 レベルやエアレーション レベルなど、多くの非常に特殊な特徴を使用してワインを記述することは可能ですが、特定の種類のワインを識別しようとする場合、そのような特殊な特徴は比較的役に立たない可能性があります。 代わりに、味、色、年齢などのより一般的な特徴に基づいてタイプを特定する方が賢明です。 PCA を使用すると、より具体的な機能を組み合わせて、より一般的で便利で、オーバーフィッティングを引き起こす可能性が低い機能を作成できます。

PCA は、入力特徴が相互に平均からどのように変化するかを判断し、特徴間に何らかの関係が存在するかどうかを判断することによって実行されます。 これを行うために、共分散行列が作成され、データセットの特徴の可能なペアに関する共分散から構成される行列が確立されます。 これは、変数間の相関関係を決定するために使用されます。負の共分散は逆相関を示し、正の相関は正の相関を示します。

データセットの主な (最も影響力のある) コンポーネントは、初期変数の線形結合を作成することによって作成されます。これは、と呼ばれる線形代数の概念を利用して行われます。 固有値と固有ベクトル。 この組み合わせは、主成分が互いに無相関になるように作成されます。 初期変数に含まれる情報のほとんどは、最初のいくつかの主成分に圧縮されます。これは、元のデータセットからの情報をより小さな次元空間に含む新しいフィーチャ (主成分) が作成されたことを意味します。

特異値分解

写真: Cmglee 著 – 自身の作品、CC BY-SA 4.0、https://commons.wikimedia.org/w/index.php?curid=67853297

特異値分解(SVD) is 行列内の値を単純化するために使用されます、行列をその構成部分にまで削減し、その行列を使用した計算を容易にします。 SVD は実数値行列と複素行列の両方に利用できますが、この説明では実数値の行列を分解する方法を検討します。

実数値データで構成される行列があり、PCA の目標と同様に、行列内の列/特徴の数を減らすことが目標であると仮定します。 PCA と同様に、SVD は行列の変動性を可能な限り維持しながら行列の次元を圧縮します。 行列 A を操作したい場合、行列 A を U、D、V という XNUMX つの他の行列として表すことができます。行列 A は元の x * y 要素で構成され、行列 U は要素 X * X で構成されます(直交行列)。 行列 V は、y * y 要素を含む別の直交行列です。 行列 D には要素 x * y が含まれており、対角行列です。

行列 A の値を分解するには、元の特異行列値を新しい行列内で見つかった対角値に変換する必要があります。 直交行列を操作する場合、他の数値を乗算してもそのプロパティは変わりません。 したがって、この性質を利用して行列 A を近似することができます。 直交行列を行列 V の転置と乗算すると、結果は元の A と等価な行列になります。

行列 a が行列 U、D、V に分解されると、それらには行列 A 内にあるデータが含まれます。ただし、行列の左端の列にはデータの大部分が含まれます。 これらの最初の数列だけを取得すると、次元がはるかに少なく、ほとんどのデータが A 内に収まる行列 A を表現できます。

線形判別分析

 

左: LDA 前の行列、右: LDA 後の軸、分離可能になりました

線形判別分析(LDA) 多次元グラフからデータを取得するプロセスです。 それを線形グラフに再投影します。 これは、2 つの異なるクラスに属するデータ ポイントで満たされた 1 次元グラフを考えると想像できます。 点が散在しているため、XNUMX つの異なるクラスをきれいに分離する線を引くことができないと仮定します。 この状況に対処するために、XNUMXD グラフで見つかった点を XNUMXD グラフ (線) に減らすことができます。 この線にはすべてのデータ ポイントが分散されており、データを可能な限り最適に分離できる XNUMX つのセクションに分割できることが期待されます。

LDA を実行する場合、主な目標が 2 つあります。 最初の目標はクラスの分散を最小化することであり、2 番目の目標は XNUMX つのクラスの平均間の距離を最大化することです。 これらの目標は、XNUMXD グラフに存在する新しい軸を作成することによって達成されます。 新しく作成された軸は、前述の目標に基づいて XNUMX つのクラスを分離するように機能します。 軸が作成された後、XNUMXD グラフ内で見つかった点が軸に沿って配置されます。

元の点を新しい軸に沿った新しい位置に移動するには、XNUMX つの手順が必要です。 最初のステップでは、個々のクラス間の距離の平均 (クラス間分散) を使用して、クラスの分離可能性を計算します。 XNUMX 番目のステップでは、問題のクラスのサンプルと平均値の間の距離を決定することによって、さまざまなクラス内の分散が計算されます。 最後のステップでは、クラス間の分散を最大化する低次元空間が作成されます。

LDA 手法は、ターゲット クラスの平均値が互いに大きく離れている場合に最良の結果を達成します。 分布の平均が重複している場合、LDA は線形軸を使用してクラスを効果的に分離できません。

 

専門分野を持つブロガーおよびプログラマー 機械学習 & 深層学習 トピック。 ダニエルは、他の人が社会利益のために AI の力を活用できるよう支援したいと考えています。