Apakah semua algoritma pembelajaran mesin memisahkan data secara linear?

22

Saya seorang penggemar pemrograman dan pembelajaran mesin. Hanya beberapa bulan yang lalu saya mulai belajar tentang pemrograman pembelajaran mesin. Seperti banyak orang yang tidak memiliki latar belakang ilmu kuantitatif saya juga mulai belajar tentang ML dengan bermain-main dengan algoritma dan dataset dalam paket ML yang banyak digunakan (caret R).

Beberapa waktu yang lalu saya membaca sebuah blog di mana penulis berbicara tentang penggunaan regresi linier dalam ML. Jika saya ingat benar dia berbicara tentang bagaimana semua pembelajaran mesin pada akhirnya menggunakan semacam "regresi linier" (tidak yakin apakah dia menggunakan istilah yang tepat ini) bahkan untuk masalah linear atau non-linear. Waktu itu saya tidak mengerti apa yang dia maksudkan dengan itu.

Pemahaman saya menggunakan pembelajaran mesin untuk data non-linear adalah dengan menggunakan algoritma non linear untuk memisahkan data.

Ini adalah pemikiran saya

Katakanlah untuk mengklasifikasikan data linear, kami menggunakan persamaan linear dan untuk data non linier kami menggunakan persamaan non-linear, katakanlahy = s i n ( x )y=mx+cy=ssayan(x)

masukkan deskripsi gambar di sini

Gambar ini diambil dari situs web belajar sikit mesin dukungan vektor. Dalam SVM kami menggunakan kernel yang berbeda untuk tujuan ML. Jadi pemikiran awal saya adalah kernel linear memisahkan data menggunakan fungsi linear dan kernel RBF menggunakan fungsi non-linear untuk memisahkan data.

Tapi kemudian saya melihat blog ini di mana penulis berbicara tentang jaringan saraf.

Untuk mengklasifikasikan masalah non linier pada subplot kiri, jaringan saraf mengubah data sedemikian rupa sehingga pada akhirnya kita dapat menggunakan pemisahan linier sederhana ke data yang ditransformasikan dalam sub-plot kanan

masukkan deskripsi gambar di sini

Pertanyaan saya adalah apakah semua algoritma pembelajaran mesin pada akhirnya menggunakan pemisahan linier untuk klasifikasi (linear / non-linear dataset)?

Eka
sumber
1
Terkait: stats.stackexchange.com/questions/164048/...
Sycorax mengatakan Reinstate Monica
3
Model non-linear Anda juga linear. memperkenalkan variabel baru , maka masalah Anda menjadi - satu linear. Dalam pengertian ini banyak algos ML memang linear. s = sin ( x ) y = θ 0 + θ 1 sdosa(x)s=dosa(x)y=θ0+θ1s
Aksakal
Saya suka jawaban mbq di utas ini juga, Bantu saya memahami mesin vektor dukungan .
Andy W

Jawaban:

26

Jawabannya adalah No. user20160 memiliki jawaban yang sempurna, saya akan menambahkan 3 contoh dengan visualisasi untuk menggambarkan ide tersebut. Catatan, plot ini mungkin tidak membantu Anda untuk melihat apakah "keputusan akhir" dalam bentuk linear tetapi memberi Anda beberapa pengertian tentang pohon, meningkatkan dan KNN.

Kami akan mulai dengan pohon keputusan. Dengan banyak perpecahan, ini adalah batas keputusan non-linear. Dan kita tidak bisa berpikir semua pemisahan sebelumnya adalah "transformasi fitur" dan ada garis keputusan akhir di akhir.

Contoh lain adalah model peningkatan, yang mengumpulkan banyak "pengklasifikasi lemah" dan batas keputusan akhir tidak linier. Anda dapat menganggapnya sebagai kode / algoritma yang rumit untuk membuat prediksi akhir.

Akhirnya, pikirkan tentang K Nearest Neighbors (KNN). Ini juga bukan fungsi keputusan linear pada lapisan akhir. selain itu, tidak ada "transformasi fitur" di KNN.

Berikut adalah tiga visualisasi dalam ruang 2D (Tree, Boosting, dan KNN dari atas ke bawah). Kebenaran dasar adalah 2 spiral mewakili dua kelas, dan subplot kiri adalah prediksi dari model dan subplot kanan adalah batas keputusan dari model.

Batas keputusan pohon

Meningkatkan batas keputusan

Batas keputusan KNN


EDIT: Jawaban @ ssdecontrol dalam posting ini memberikan perspektif lain.

Itu tergantung pada bagaimana kita mendefinisikan "transformasi" .

Setiap fungsi yang mempartisi data menjadi dua bagian dapat ditransformasikan menjadi model linier dari formulir ini, dengan intersep dan input tunggal (indikator "sisi" partisi tempat titik data aktif). Penting untuk mencatat perbedaan antara fungsi keputusan dan batas keputusan.

Haitao Du
sumber
Saya tidak ingin mengkritik, tetapi meningkatkannya agak kasar, bukan? Apakah tidak mungkin mendapatkan hasil yang lebih lancar dengan parameter yang berbeda? Maaf karena pernickety, karena saya menemukan semua penjelasan sangat bagus.
YCR
@YCR Saya pikir itu adalah titik meningkatkan di mana Anda memiliki batas keputusan kasar. Kekasaran disebabkan oleh agregasi banyak pengklasifikasi lemah (dalam contoh ini, mereka adalah pohon). Tapi saya setuju dengan Anda bahwa contoh kedua bukanlah model yang baik, dan itu overfitting :)
Haitao Du
1
(+1) Visualisasi hebat (Saya juga menggunakan spiralsbanyak dalam eksperimen saya). Saran: plot batas keputusan sebagai image, dan mungkin menambahkan tingkat probabiliity (jika Anda menggunakan output probabilistik) dengan contour.
Firebug
@ Firebug saran bagus! plot ini dihasilkan dalam kotak dan hanya dapat memberi tahu Anda label terakhir. Kontur jauh lebih baik.
Haitao Du
Lihatlah jawaban saya di sini: stats.stackexchange.com/a/218578/60613
Firebug
21

Beberapa algoritma menggunakan hyperplane (fungsi linear) untuk memisahkan data. Contoh yang menonjol adalah regresi logistik. Lainnya menggunakan hyperplane untuk memisahkan data setelah transformasi nonlinear (misalnya jaringan saraf dan mesin dukungan vektor dengan kernel nonlinear). Dalam hal ini, batas keputusan nonlinear dalam ruang data asli, tetapi linear dalam ruang fitur mana data dipetakan. Dalam kasus SVM, formulasi kernel mendefinisikan pemetaan ini secara implisit. algoritma lainnya menggunakan beberapa hyperplanes membelah di daerah lokal ruang data (pohon misalnya keputusan). Dalam hal ini, batas keputusan piecewise linear (tapi nonlinear secara keseluruhan).

Namun, algoritma lain memiliki batas keputusan nonlinier, dan tidak dirumuskan dalam hal hyperplanes. Contoh yang menonjol adalah k klasifikasi tetangga terdekat. Pengklasifikasi ensemble (mis. Diproduksi dengan meningkatkan atau mengantongi pengklasifikasi lain) umumnya nonlinier.

pengguna20160
sumber
Neural Network bukan contoh yang baik dari kelas model yang menggunakan hyperplanes setelah transformasi nonlinier. Lapisan keluaran mungkin (dalam banyak kasus) aktivasi sigmoid, mengingat Anda menganggap lapisan sebelumnya sebagai transformasi non-linear ke ruang fitur.
Cagdas Ozgenc
1
@CagdasOzgenc Mari kita pertimbangkan kasus klasifikasi biner dan jaringan dengan output sigmoidal, seperti yang Anda sarankan. Ini setara dengan regresi logistik pada aktivasi lapisan sebelumnya (menggunakan output softmax akan setara dengan regresi logistik multinomial). Jadi, batas keputusan adalah hyperplane di ruang fitur. Gambar dalam pertanyaan awal menunjukkan contoh yang bagus tentang ini.
user20160
Saya mengerti bahwa ketika f (Ax) = 0 dan f adalah satu-ke-satu, Anda cukup melakukan f ^ -1 dari (Ax) = f ^ -1 (0) => Ax = 0 (atau konstanta c). Jadi dalam kasus sigmoid, Anda mendapatkan batas keputusan linier. Pada dasarnya kita berbicara tentang kasus ketika f tidak dapat dibalik?
Cagdas Ozgenc
Apakah f fungsi aktivasi output neuron dan x output dari lapisan sebelumnya? Tidak yakin saya mengerti apa yang Anda minta.
user20160
x adalah vektor yang berasal dari neuron dari lapisan sebelumnya, dan f adalah fungsi aktivasi output.
Cagdas Ozgenc