この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式サイトにアクセスして許可を申請してください。 インターネット上のさまざまな次元削減アルゴリズムに関する情報は混在しており、そのほとんどはソースコードを提供していません。こちらは、PCA、LDA、MDS、LLE、TSNEなどを含む11の古典的なデータ抽出(データ次元削減)アルゴリズムをPythonで実装したGitHubプロジェクトで、関連資料とデモンストレーション効果も含まれています。機械学習の初心者やデータマイニングを始めたばかりの人に最適です。
なぜデータの次元を削減する必要があるのでしょうか?いわゆる次元削減とは、DベクトルXiに含まれる有用な情報をdベクトルZiの集合で表現することである。ここでd 通常、ほとんどのデータ セットの次元は数百または数千にもなりますが、従来の MNIST の次元は 64 です。 MNIST 手書き数字データセット しかし、実際のアプリケーションでは、使用する有用な情報にそれほど高い次元は必要なく、各追加次元に必要なサンプル数は指数関数的に増加し、巨大な「次元災害」に直接つながる可能性があります。データの次元削減により、これを実現できます。
この情報を正しく処理し、次元削減を正確かつ効果的に実行できるようになれば、計算量を大幅に削減し、機械操作の効率を向上させることができます。データの次元削減は、テキスト処理、顔認識、画像認識、自然言語処理などの分野でもよく使用されます。 データ次元削減の原則多くの場合、高次元空間のデータはまばらに分布しているため、次元削減のプロセスでは通常、冗長データ、無効な情報、繰り返し表現などを含むデータの削除が行われます。 例えば、1024×1024の画像があるとします。中央の50×50の領域を除いて、他の位置はすべてゼロです。これらのゼロ情報は役に立たない情報として分類でき、対称図形の場合は、対称部分の情報が重複情報として分類できます。 したがって、古典的な次元削減手法のほとんどもこの内容に基づいています。次元削減方法は線形次元削減と非線形次元削減に分けられ、非線形次元削減はさらにカーネル関数ベースの方法と固有値ベースの方法に分けられます。
PCA、ICA LDA、LFA、LPP(LEの線形表現)
カーネル関数に基づく非線形次元削減法——KPCA、KICA、KDA 固有値ベースの非線形次元削減法(フロー型学習) - ISOMAP、LLE、LE、LPP、LTSA、MVU ハルビン工業大学でコンピューター技術を専攻する修士課程の学生であるHeucoder氏は、PCA、KPCA、LDA、MDS、ISOMAP、LLE、TSNE、AutoEncoder、FastICA、SVD、LE、LPPなど12の古典的な次元削減アルゴリズムを分類し、関連情報、コード、デモンストレーションを提供しました。以下では、主にPCAアルゴリズムを例に、次元削減アルゴリズムの具体的な操作を紹介します。 主成分分析 (PCA) 次元削減アルゴリズムPCA は、高次元空間から低次元空間へのマッピングに基づくマッピング方法です。また、最も基本的な教師なし次元削減アルゴリズムでもあります。その目的は、データが最も変化する方向、または再構築エラーが最小になる方向に投影することです。これは 1901 年にカール ピアソンによって提案され、線形次元削減法に属します。 PCA に関連する原理は、最大分散理論または最小誤差理論と呼ばれることがよくあります。これら 2 つの目標は同じですが、プロセスの焦点は異なります。 最大分散理論次元削減原理 N 次元ベクトルのセットを K 次元に縮小します (K は 0 より大きく N より小さい)。目標は、各フィールド間の COV(X,Y) が 0 になり、フィールドの分散が可能な限り大きくなるように、K 単位直交基底を選択することです。したがって、最大分散とは、投影されたデータの分散を最大化することです。このプロセスでは、データセットXmxnの最適な投影空間Wnxk、共分散行列などを見つける必要があります。アルゴリズムの流れは次のとおりです。
最小誤差理論次元削減原理 最小誤差は平均投影コストを最小化する線形投影です。このプロセスでは、二乗誤差評価関数 J0(x0) などのパラメータを見つける必要があります。
主成分分析(PCA)コードの実装PCA アルゴリズムのコードは次のとおりです。
最終的に、次のような次元削減結果が得られます。その中で、特徴数 (D) がサンプル数 (N) よりもはるかに大きい場合は、ちょっとしたトリックを使って PCA アルゴリズムの複雑さの変換を実現できます。 PCA 次元削減アルゴリズムのデモンストレーション もちろん、このアルゴリズムは古典的でよく使用されていますが、その欠点も非常に明白です。線形相関を効果的に排除できますが、高次の相関に直面した場合、その効果は低くなります。同時に、PCA 実装の前提は、データの主な特徴が直交方向に分布していると仮定することです。したがって、非直交方向に大きな分散を持つ方向がいくつかある場合、PCA の効果は大幅に低下します。 その他の次元削減アルゴリズムとコードアドレス
KPCA はカーネル技術と PCA を組み合わせたものです。PCA との主な違いは、共分散行列を計算するときにカーネル関数が使用されること、つまりカーネル関数によってマッピングされた後の共分散行列が使用されることです。 カーネル関数の導入により、非線形データ マッピングの問題を効果的に解決できます。 kPCA は非線形データを高次元空間にマッピングし、高次元空間で標準 PCA を使用してそれを別の低次元空間にマッピングすることができます。 KPCA 次元削減アルゴリズムのデモンストレーション
LDA は、分類などのタスクで異なるクラスのサンプルを効果的に分離できるように、クラス間の差を最大化し、クラス内の差を最小化することを目的とした特徴抽出手法です。 LDA は、データ分析プロセスにおける計算効率を向上させ、正規化されていないモデルの次元の呪いによって引き起こされる過剰適合を軽減することができます。 LDA 次元削減アルゴリズムのデモンストレーション
MDS(多次元尺度法)は、直感的な空間グラフを使用して研究対象の認識や好みを表す従来の次元削減手法です。この方法では、任意の 2 つのサンプル ポイント間の距離を計算し、低次元空間への投影後に相対距離を維持して投影を実現します。 sklearn の MDS は反復最適化を使用するため、反復手法と非反復手法の両方が以下で実装されています。 MDS 次元削減アルゴリズムのデモンストレーション
Isomap は等尺性マッピング アルゴリズムであり、非線形構造データ セットにおける MDS アルゴリズムの欠点を効果的に解決できます。 MDS アルゴリズムは次元削減後もサンプル間の距離を変更しませんが、Isomap アルゴリズムは近傍グラフを導入します。近傍グラフではサンプルが隣接するサンプルにのみ接続され、隣接するポイント間の距離が計算され、これに基づいて次元削減が実行され、距離が維持されます。 ISOMAP 次元削減アルゴリズムのデモンストレーション
LLE は Local Linear Embedding の略で、非線形次元削減アルゴリズムです。アルゴリズムの核となる考え方は、各ポイントは複数の隣接ポイントの線形結合によって近似的に再構築でき、その後、高次元データを低次元空間に投影して、データポイント間のローカル線形再構築関係が維持されるようにする、つまり同じ再構築係数が得られるというものです。いわゆる多様体次元削減を扱う場合、PCA よりもはるかにうまく機能します。 LLE 次元削減アルゴリズムのデモンストレーション
t-SNE は非線形次元削減アルゴリズムでもあり、高次元データを 2 次元または 3 次元に削減して視覚化するのに非常に適しています。これは、データの元の傾向に基づいて、低次元 (2 次元または 3 次元) でのデータ傾向を再構築する、教師なし機械学習アルゴリズムです。 以下に示す結果はソース コードを参照しており、Tensorflow を使用して実装することもできます (パラメータを手動で更新する必要はありません)。 t-SNE 次元削減アルゴリズムのデモンストレーション
LE は Laplace Eigenmap の略で、LLE アルゴリズムに多少似ており、ローカルな観点からデータ間の関係を構築します。直感的な考え方としては、関連する点(グラフ内の接続された点)を縮小された次元空間内で可能な限り近くに保つことです。このようにして、多様体の幾何学的構造を反映した解を得ることができます。 LE次元削減アルゴリズムのデモンストレーション
LPP は局所性保存投影アルゴリズムです。その考え方はラプラス固有マップに似ています。中心となる考え方は、データセットの近傍構造情報を最適に保存して投影マッピングを構築することです。ただし、LPP は投影結果を直接取得するという点で LE とは異なります。投影行列を解く必要があります。 LPP 次元削減アルゴリズムのデモンストレーション
*プロジェクト「dimensionality_reduction_alo_codes」の作者について Heucoder は現在、ハルビン工業大学のコンピューター技術の修士課程に在籍しています。主にインターネット分野で活躍しています。彼の Zhihu でのニックネームは「Super Love Learning」です。彼の github ホームページ アドレスは https://github.com/heucoder です。
|
<<: AIと機械学習がSaaS業界にどのような変化をもたらすか
>>: とてもかっこいいですね! Python で人工知能の最適化アルゴリズムを 5 分で理解する
機械はどのように学習し、何を学ぶのでしょうか?人間はどうやって機械に学習を教えるのでしょうか?この記...
[[373822]] 2020年が終わりを迎えました。今年、人工知能(AI)分野は浮き沈みに富み、常...
AIの学習は幼稚園から始まる最近、インターネット上で「人工知能実験教科書」の写真が流通している。この...
昨日、Meta は Llama 2 の無料商用バージョンをリリースし、再びオープンソース コミュニテ...
今日のビジネスにおける人工知能の多くの応用のうちの 1 つが予測分析です。データ セットを分析してパ...
[[378224]]今年から始めます。グラフニューラルネットワークは研究者の間で話題になっており、こ...
人工知能は、時間の経過とともに改良を続け、世界中の人々から賞賛されてきた、人間の設計の驚異です。 T...
ニューラル ネットワークの基本的な考え方は、コンピューターの「脳」内の複数の相互接続されたセルをシミ...
テクノロジーとイノベーションがダイナミックに変化する中、人工知能 (AI) の研究は学生や専門家にと...