すべての機械学習アルゴリズムはデータを線形に分離しますか?


22

私はプログラミングと機械学習が大好きです。ほんの数ヶ月前、機械学習プログラミングについて学び始めました。定量的科学のバックグラウンドを持っていない多くの人と同様に、広く使用されているMLパッケージ(キャレットR)のアルゴリズムとデータセットをいじって、MLについても学び始めました。

しばらく前に、著者がMLでの線形回帰の使用法について話しているブログを読みました。私が正しいことを覚えているなら、彼は最終的にすべての機械学習が線形問題または非線形問題に対してさえ、ある種の「線形回帰」(この正確な用語を使用したかどうかわからない)を使用する方法について話しました。その時、私は彼がその意味を理解していませんでした。

非線形データに機械学習を使用するという私の理解は、非線形アルゴリズムを使用してデータを分離することです。

これは私の考えでした

線形方程式を使用して線形データを分類し、非線形データに対してy = s i n x と言う非線形方程式を使用するとします。y=mバツ+cy=snバツ

ここに画像の説明を入力してください

この画像は、サポートベクターマシンのsikit learn Webサイトから取得したものです。SVMでは、MLの目的で異なるカーネルを使用しました。私の最初の考えは、線形関数はデータを線形関数で分離し、RBFカーネルは非線形関数を使用してデータを分離することでした。

しかし、その後、著者がニューラルネットワークについて語っているこのブログを見ました。

左サブプロットの非線形問題を分類するために、ニューラルネットワークは、最終的に右サブプロットの変換されたデータに単純な線形分離を使用できるようにデータを変換します

ここに画像の説明を入力してください

私の質問は、最終的にすべての機械学習アルゴリズムが線形分離を使用して分類するかどうかです(線形/非線形データセット)?



3
バツs=バツy=θ0+θ1s

このスレッドに関するmbqの回答も気に入っていますサポートベクターマシンの理解を助けてください
アンディW

回答:


26

答えは「いいえ」です。user20160には完璧な答えがあります。視覚化した3つの例を追加して、アイデアを説明します。これらのプロットは、「最終決定」が線形形式であるかどうかを確認するのには役立たないかもしれませんが、ツリー、ブースティング、およびKNNについてある程度の感覚を与えることに注意してください。

決定木から始めます。多くの分割がある場合、それは非線形の決定境界です。そして、以前のすべての分割が「機能変換」であるとは考えられず、最後に最終決定ラインがあります。

もう1つの例は、多くの「弱い分類子」を集約するブースティングモデルであり、最終決定境界は線形ではありません。最終的な予測を行うのは複雑なコード/アルゴリズムだと考えることができます。

最後に、K最近傍(KNN)について考えます。また、最終層では線形決定関数ではありません。さらに、KNNには「機能変換」はありません。

2D空間での3つの視覚化(上から下にツリー、ブースティング、KNN)があります。グラウンドトゥルースは2つのスパイラルが2つのクラスを表し、左のサブプロットはモデルからの予測であり、右のサブプロットはモデルからの決定境界です。

ツリー決定境界

決定境界の強化

KNN決定境界


編集:この投稿で@ssdecontrolの答えは別の視点を提供します。

これは、「変換」をどのように定義するかに依存します

データを2つの部分に分割する関数は、インターセプトと1つの入力(データポイントがパーティションの「側」にあるインジケーター)を使用して、この形式の線形モデルに変換できます。決定関数と決定境界の違いに注意することが重要です。


批判したくありませんが、ブーストは少し荒いようです。異なるパラメーターでより滑らかな結果を得ることができませんか?私はすべての説明が非常に良いと思うので、ひねくれてすみません。
YCR

@YCRそれはあなたが大まかな決定境界を持っているところを後押しするポイントだと思います。粗さは、多くの弱い分類子(この例では、ツリー)を集約することにより発生します。しかし、2番目の例は良いモデルではなく、過剰適合であることに同意します:)
Haitao Du

1
(+1)優れた視覚化(spirals実験でも多く使用しています)。提案:として決定境界をプロットし、imageおそらく確率レベル(確率出力を使用している場合)を追加しcontourます。
Firebug

@Firebugの素晴らしい提案!これらのプロットはグリッドで生成され、最終的なラベルのみを伝えることができます。輪郭ははるかに優れています。
ハイタオデュ

ここで私の答えを見てください:stats.stackexchange.com/a/218578/60613
Firebug

21

一部のアルゴリズムでは、超平面(線形関数)を使用してデータを分離します。顕著な例は、ロジスティック回帰です。他のものは、非線形変換後のデータを分離するために超平面を使用します(例:ニューラルネットワークと非線形カーネルを備えたサポートベクターマシン)。この場合、決定境界は元のデータ空間では非線形ですが、データがマッピングされる特徴空間では線形です。SVMの場合、カーネルの定式化により、このマッピングが暗黙的に定義されます。他のアルゴリズムは、データ空間のローカル領域で複数の分割超平面を使用します(決定木など)。この場合、決定境界は区分的に線形(ただし全体的に非線形)です。

ただし、他のアルゴリズムには非線形の決定境界があり、超平面に関しては定式化されていません。顕著な例は、k個の最近傍分類です。アンサンブル分類器(たとえば、他の分類器をブーストまたはバギングすることによって生成される)は一般に非線形です。


ニューラルネットワークは、非線形変換後に超平面を使用するモデルクラスの良い例ではありません。前のレイヤーを特徴空間への非線形変換と仮定すると、出力レイヤーは(多くの場合)シグモイドアクティベーションになります。
カグダスオズゲンク

1
@CagdasOzgenc提案しているように、バイナリ分類とシグモイド出力付きネットワークの場合を考えてみましょう。これは、前のレイヤーのアクティベーションでのロジスティック回帰に相当します(softmax出力を使用すると、多項ロジスティック回帰に相当します)。したがって、決定境界は特徴空間の超平面です。元の質問の写真は、この良い例を示しています。
user20160

f(Ax)= 0でfが1対1の場合、単純にf ^ -1 of(Ax)= f ^ -1(0)=> Ax = 0(または定数c)を実行できることを理解しています。そのため、シグモイドの場合、線形判定境界が得られます。基本的に、fが可逆でない場合について話しているのでしょうか?
カグダスオズゲンク

fは出力ニューロンの活性化関数で、xは前の層の出力ですか?あなたが何を求めているのか理解していない。
user20160

xは前の層のニューロンからのベクトルで、fは出力活性化関数です。
カグダスオズゲンク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.