Machine Learning Academy · Pelajaran

Helah Kernel: Kernel RBF, Polinomial dan Sigmoid

Pelajar akan menggunakan kernel RBF dan polinomial pada set data yang tidak boleh dipisahkan secara linear, serta memahami bahawa kernel secara tersirat mengunjurkan data ke dimensi lebih tinggi.

Pelajaran 3 daripada 413 langkah

Helah Kernel: Kernel RBF, Polinomial dan Sigmoid ialah pelajaran Machine Learning Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Machine Learning Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Machine Learning Academy merangkumi sejumlah 4 pelajaran.

Masalah: Data Bukan Linear

Banyak masalah pengelasan dunia sebenar tidak boleh dipisahkan secara linear — tiada garis lurus (atau hiper satah) yang dapat memisahkan kelas dengan betul. Sebagai contoh, data yang tersusun dalam gelang sepusat tidak boleh dipisahkan oleh mana-mana sempadan linear. Salah satu pendekatan adalah dengan mencipta ciri baharu secara manual (contohnya, x², x×y) yang menjadikan kelas boleh dipisahkan secara linear dalam ruang yang diperluas. Helah kernel melakukan perkara ini secara automatik dan tersirat, tanpa pernah mengira koordinat dalam ruang berdimensi tinggi.

Peta Ciri: Mengangkat Data kepada Dimensi Lebih Tinggi

Peta ciri φ(x) mengubah vektor input kepada perwakilan berdimensi lebih tinggi. Sebagai contoh, φ([x₁, x₂]) = [x₁², √2·x₁x₂, x₂²] memetakan data 2D kepada 3D. Selepas pemetaan ini, kelas yang bertindih dalam 2D mungkin menjadi boleh dipisahkan secara linear dalam 3D. SVM kemudiannya mencari hiper satah margin maksimum dalam ruang yang telah diubah. Sempadan keputusan yang sepadan dalam ruang 2D asal ialah sebuah lengkung, lalu memberikan SVM keupayaan pengelasan bukan linear.

Helah Kernel: Mengelakkan Peta Ciri Eksplisit

Mengira φ(x) secara eksplisit adalah mahal atau bahkan mustahil (sesetengah peta ciri menghasilkan vektor berdimensi tidak terhingga). Wawasan utama ialah formulasi dual SVM hanya memerlukan hasil darab titik φ(xᵢ)·φ(xⱼ), bukannya vektor ciri secara individu. Fungsi kernel K(xᵢ, xⱼ) mengira hasil darab titik ini secara terus daripada input asal tanpa membina φ(xᵢ). Inilah helah kernel: hasil darab titik berdimensi tinggi yang mahal dikira dengan murah dalam ruang input.

Kernel Polinomial

Kernel polinomial ditakrifkan sebagai K(xᵢ, xⱼ) = (γ · xᵢ·xⱼ + r)^d, dengan d ialah darjah polinomial, γ ialah faktor penskalaan, dan r ialah parameter coef0. Kernel polinomial darjah 2 secara tersirat mencipta semua interaksi berpasangan (x₁x₂) dan sebutan kuasa dua (x₁²). Darjah yang lebih tinggi menghasilkan sempadan yang lebih kompleks tetapi berisiko terlebih muat. Dalam scikit-learn, gunakan SVC(kernel='poly', degree=3).

from sklearn.svm import SVC
from sklearn.datasets import make_moons
from sklearn.model_selection import cross_val_score
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline

X, y = make_moons(n_samples=300, noise=0.15, random_state=42)
for degree in [2, 3, 5]:
    model = make_pipeline(StandardScaler(), SVC(kernel='poly', degree=degree, C=5))
    score = cross_val_score(model, X, y, cv=5).mean()
    print(f'Polynomial degree={degree}: CV accuracy={score:.4f}')

Kernel RBF: Pilihan Utama Lalai

Kernel Fungsi Asas Jejarian (RBF), yang juga dipanggil kernel Gaussian, ditakrifkan sebagai K(xᵢ, xⱼ) = exp(-γ · ||xᵢ - xⱼ||²). Ia mengukur keserupaan berdasarkan jarak: titik yang berdekatan mempunyai nilai kernel hampir kepada 1, manakala titik yang jauh mempunyai nilai hampir kepada 0. Kernel RBF sepadan dengan peta ciri berdimensi tidak terhingga, lalu memberikan SVM kuasa perwakilan tanpa had. Ia ialah kernel lalai dalam SVC scikit-learn dan berfungsi dengan baik pada kebanyakan set data dengan pelarasan C dan γ yang betul.

from sklearn.svm import SVC
from sklearn.datasets import make_moons
from sklearn.model_selection import cross_val_score
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline

X, y = make_moons(n_samples=300, noise=0.15, random_state=42)
model = make_pipeline(StandardScaler(), SVC(kernel='rbf', C=1.0, gamma='scale'))
scores = cross_val_score(model, X, y, cv=5)
print('RBF SVM CV accuracy:', round(scores.mean(), 4))

Parameter Gamma dalam Kernel RBF

Parameter gamma mengawal sejauh mana pengaruh satu contoh latihan dapat dicapai. Gamma kecil menyebabkan pengaruh setiap titik menjangkau jauh — sempadan keputusan menjadi licin dan model kurang muat (bias tinggi). Gamma besar menyebabkan pengaruh berkurang dengan mendadak — sempadan membalut rapat titik latihan individu (varians tinggi, terlebih muat). Nilai lalai scikit-learn: gamma='scale' (menggunakan 1/(n_features × X.var())) atau gamma='auto' (menggunakan 1/n_features). Sentiasa laraskan C dan gamma bersama-sama.

from sklearn.svm import SVC
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import cross_val_score
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline

X, y = load_breast_cancer(return_X_y=True)
for gamma in [0.0001, 0.001, 0.01, 0.1, 1]:
    model = make_pipeline(StandardScaler(), SVC(kernel='rbf', C=10, gamma=gamma))
    score = cross_val_score(model, X, y, cv=5).mean()
    print(f'gamma={gamma}: CV accuracy={score:.4f}')

Kernel Sigmoid

Kernel sigmoid ialah K(xᵢ, xⱼ) = tanh(γ · xᵢ·xⱼ + r), yang menyerupai fungsi pengaktifan rangkaian neural dua lapisan. Ia tidak semestinya kernel yang sah (separa tentu positif) bagi semua nilai parameter, yang bermaksud pengoptimuman SVM mungkin tidak menumpu kepada minimum global. Kernel sigmoid jarang menjadi pilihan terbaik dalam amalan — RBF hampir sentiasa mengatasinya — tetapi ia boleh berguna apabila kebolehinterpretasian analogi rangkaian neural diutamakan.

Memilih Kernel dalam Amalan

Panduan praktikal untuk pemilihan kernel: gunakan linear apabila Anda mempunyai banyak ciri (teks, genomik) atau apabila data sudah berdimensi tinggi — menambah lebih banyak dimensi melalui kernel tidak diperlukan; gunakan RBF sebagai lalai untuk data jadual berdimensi rendah hingga sederhana — ia paling fleksibel dan sering menjadi pilihan terbaik; gunakan polinomial apabila Anda mempunyai sebab khusus untuk percaya bahawa interaksi ciri polinomial penting; elakkan sigmoid kecuali untuk percubaan. Sentiasa bandingkan kernel dengan pengesahan silang pada set data khusus Anda.

Kerumitan dan Kebolehskalaan SVM Kernel

Kelemahan utama SVM kernel ialah kebolehskalaan. Latihan memerlukan penyelesaian masalah pengaturcaraan kuadratik yang berskala sebagai O(n²)O(n³) mengikut bilangan contoh latihan. Bagi 100,000 contoh, SVM RBF boleh mengambil masa berjam-jam atau kehabisan memori. Penyelesaian: (1) gunakan LinearSVC untuk kernel linear, yang boleh diskalakan kepada berjuta-juta contoh; (2) gunakan kaedah kernel anggaran seperti Nystroem atau RBFSampler yang mencipta peta ciri eksplisit berdimensi rendah; (3) beralih kepada peningkatan kecerunan atau rangkaian neural untuk set data yang benar-benar besar.

Membandingkan Kernel pada Set Data yang Sama

Cara yang betul untuk memilih kernel adalah dengan membandingkan semuanya menggunakan pengesahan silang pada set data Anda. Set data yang berbeza memihak kepada kernel yang berbeza. Masalah yang boleh dipisahkan secara linear tidak mendapat manfaat daripada RBF. Masalah dengan struktur setempat yang kompleks mungkin memerlukan RBF gamma tinggi. Sentiasa mulakan dengan kernel linear sebagai garis dasar, kemudian cuba RBF dengan carian grid merentasi C dan gamma. Jika tiada satu pun mengatasi yang lain dengan ketara, pilih linear demi kebolehinterpretasian dan kelajuan.

from sklearn.svm import SVC
from sklearn.datasets import load_digits
from sklearn.model_selection import cross_val_score
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline

X, y = load_digits(return_X_y=True)
for kernel in ['linear', 'poly', 'rbf']:
    model = make_pipeline(StandardScaler(), SVC(kernel=kernel, C=10))
    score = cross_val_score(model, X, y, cv=3).mean()
    print(f'Kernel={kernel:8s}: CV accuracy={score:.4f}')

Teorem Mercer dan Kernel yang Sah

Tidak semua fungsi boleh digunakan sebagai kernel. Kernel yang sah mesti memenuhi syarat Mercer: ia mestilah simetri (K(x,y) = K(y,x)) dan menghasilkan matriks Gram separa tentu positif bagi mana-mana set input. Ini menjamin bahawa kernel tersebut sepadan dengan hasil darab titik yang sah dalam sesetengah ruang ciri, lalu menjadikan masalah pengoptimuman SVM cembung (satu minimum global). Kernel tersuai untuk jujukan DNA, graf atau teks boleh ditakrifkan dan dihantar kepada SVC(kernel='precomputed') selagi mematuhi teorem Mercer.

Semakan Pantas

Uji pemahaman Anda tentang Helah Kernel daripada pelajaran ini.

Ringkasan Pelajaran

Dalam pelajaran ini, Anda telah mempelajari: fungsi kernel mengira hasil darab titik secara tersirat dalam ruang ciri berdimensi tinggi, kernel RBF ialah pilihan lalai yang paling serba guna dengan gamma mengawal jejari pengaruh, dan SVM kernel tidak boleh diskalakan kepada set data besar, jadi pertimbangkan kernel linear atau kaedah anggaran terlebih dahulu. Seterusnya, kita akan meneroka pelarasan C dan gamma secara serentak dengan carian grid.

Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
30
Pelajaran
120

Soalan Lazim

Adakah pelajaran “Helah Kernel: Kernel RBF, Polinomial dan Sigmoid” percuma?

Ya — teks penuh “Helah Kernel: Kernel RBF, Polinomial dan Sigmoid” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Machine Learning Academy, tingkat taraf kepada CoddyKit PRO. Kursus Machine Learning Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Helah Kernel: Kernel RBF, Polinomial dan Sigmoid”?

Pelajar akan menggunakan kernel RBF dan polinomial pada set data yang tidak boleh dipisahkan secara linear, serta memahami bahawa kernel secara tersirat mengunjurkan data ke dimensi lebih tinggi. Anda berlatih Machine Learning Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Machine Learning Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Machine Learning Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Helah Kernel: Kernel RBF, Polinomial dan Sigmoid” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Machine Learning Academy ini?

Ya. Setiap pelajaran Machine Learning Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Pengelas Margin Maksimum: Vektor Sokongan dan Satah Hiper
  2. SVM Margin Lembut dan Parameter C
  3. Helah Kernel: Kernel RBF, Polinomial dan Sigmoid
  4. Melaraskan C dan Gamma dengan Carian Grid
← Kembali ke Machine Learning Academy