Kursus Matematika untuk AI · Pelajaran 11 dari 180
Persamaan Linear untuk AI: Mengubah Satu Rumus Menjadi Garis Geometris
Pelajari bagaimana satu persamaan linear dua variabel menjadi garis, uji titik-titiknya, tangani kasus vertikal, dan baca kontur skor pengklasifikasi linear.
Sebuah pengklasifikasi kecil memberikan skor pada dua fitur:
Pasangan fitur , , dan tampak berbeda, tetapi masing-masing mendapat skor yang sama:
Itu bukan tiga kebetulan yang terpisah. Ketiganya berada pada satu garis geometris, dan setiap titik pada garis itu menerima skor nol. Pada akhir pelajaran ini, Anda akan mampu mengubah persamaan linear dua variabel menjadi garis, menghasilkan dan menguji solusi, serta mengenali geometri yang sama di dalam kontur skor pengklasifikasi linear.
Hasil belajar: Mengubah persamaan linear dua variabel menjadi garis dan menguji solusi.
Pelajaran ini dibangun langsung dari Pelajaran 9: Persamaan untuk AI, ketika sebuah persamaan menjadi kendala yang memilih himpunan solusi. Di sini nilai yang diizinkan adalah pasangan , dan geometri membuat himpunan itu dapat dilihat. Pelajaran 10: Membaca Derivasi AI Baris demi Baris memberikan kebiasaan pendamping: setiap pengubahan bentuk harus mempertahankan tepat titik-titik yang sama.
Situs pendamping resmi Mathematics for Machine Learning menempatkan sistem persamaan linear di awal aljabar linear. Bagian 2.1 menjelaskan pandangan geometris bahwa satu persamaan dalam dua variabel merepresentasikan garis dan bahwa sebuah sistem menanyakan tempat garis-garis tersebut berpotongan. Pelajaran ini mengisolasi dasar satu garis itu. Contoh, kode, visual, dan penilaiannya orisinal, dan pelajaran berikutnya akan menambahkan persamaan kedua.
Satu persamaan mendeskripsikan suatu tempat
Pertimbangkan persamaan umum dua variabel
dengan dan sebagai koordinat bernilai real serta , , dan sebagai koefisien real tetap. Persamaan ini linear karena dan hanya muncul dengan pangkat satu, tidak dikalikan satu sama lain, dan hanya dikalikan dengan bilangan tetap.
Misalkan . Kurangi dari kedua sisi, lalu bagi dengan bilangan tak nol yang sudah diketahui:
Ini adalah bentuk kemiringan-intersep, . Kemiringannya adalah : menaikkan satu unit mengubah sebesar unit sementara kendala tetap benar. Intersep sumbu vertikalnya adalah , yang dicapai ketika .
Rumus yang diubah bentuknya bukan sekadar membuat penggambaran lebih mudah. Rumus itu menampakkan satu pilihan bebas. Pilih sembarang real; persamaan akan menghitung tepat satu yang cocok. Saat berubah secara kontinu, titik solusi menelusuri garis, bukan kumpulan titik yang berhingga.
Satu garis contoh mengungkapkan kemiringan, intersep, dan titik
Kerjakan
Di sini , , dan . Karena tidak nol, menyelesaikan sah dilakukan:
Garis ini memiliki kemiringan . Jika naik , turun . Perubahan berpasangan itu mempertahankan sisi kiri karena
Residual mengubah uji kebenaran itu menjadi satu angka:
Titik pada garis memiliki residual . Residual tak nol memberikan uji yang gagal sekaligus tanda: positif berarti jumlah berbobot berada di atas , dan negatif berarti berada di bawah .
| Titik kandidat | Substitusi ke | Residual | Keputusan |
|---|---|---|---|
| Pada garis | |||
| Pada garis | |||
| Pada garis | |||
| Di luar garis |
Dua titik berbeda cukup untuk menggambar garis ini, tetapi keduanya bukan seluruh himpunan solusi. Visual interaktif terkontrol membuat keluarga titik yang hilang menjadi nyata.
| Besaran | Nilai saat ini | Cara mendapatkannya |
|---|---|---|
| Koordinat x | 2 | Dipilih dengan kontrol rentang |
| Koordinat y | 3 | (12 − 3 × 2) ÷ 2 |
| Residual | 0 | 3 × 2 + 2 × 3 − 12 |
Keadaan pertama yang dirender server adalah , dan tabel di bawah grafik memuat perhitungan yang sama. Garis ini tidak memerlukan JavaScript untuk menyampaikan makna matematisnya; hidrasi menambahkan kemampuan memilih lain dan mengamati perubahan yang cocok. Kontrol menggunakan langkah tetap seperempat unit untuk pemeriksaan, sementara parameter matematisnya dapat berupa bilangan real apa pun.
Sebuah parameter mencakup seluruh garis
Menuliskan beberapa titik menunjukkan pola, tetapi sebuah parameter mendeskripsikan semuanya sekaligus. Misalkan adalah bilangan real apa pun dan tetapkan
Setiap pasangan dalam keluarga ini adalah solusi karena
Arah sebaliknya juga penting. Setiap pasangan yang memenuhi juga harus memenuhi . Pilih agar pasangan tersebut berada dalam keluarga berparameter. Kedua arah itu bersama-sama menunjukkan bahwa parametrisasinya mencakup setiap titik pada garis dan tidak mencakup titik di luar garis.
Itulah sebabnya jendela grafik tidak pernah memuat seluruh objek matematis. Piksel dan koordinat sampel berjumlah terbatas; garis adalah himpunan solusi tak berhingga yang ditentukan oleh persamaan.
NumPy menghasilkan titik; persamaan asli memverifikasinya
Kode seharusnya mencerminkan aljabar. Dokumentasi NumPy untuk linspace menyatakan bahwa fungsi itu mengembalikan sampel berjarak sama pada interval tertentu. Hasilkan beberapa nilai , hitung nilai yang cocok, lalu uji kendala asli alih-alih mempercayai bentuk yang telah diubah:
import numpy as np
import matplotlib.pyplot as plt
# 3x + 2y = 12 -> y = (12 - 3x) / 2
x = np.linspace(-2.0, 6.0, num=5)
y = (12.0 - 3.0 * x) / 2.0
residual = 3.0 * x + 2.0 * y - 12.0
print("x:", x)
print("y:", y)
print("residual:", residual)
print("on line:", np.isclose(residual, 0.0, rtol=0.0, atol=1e-12))
candidates = np.array([[2.0, 3.0], [2.0, 4.0], [4.0, 0.0]])
candidate_residual = 3.0 * candidates[:, 0] + 2.0 * candidates[:, 1] - 12.0
print("candidate residual:", candidate_residual)
print(
"candidate on line:",
np.isclose(candidate_residual, 0.0, rtol=0.0, atol=1e-12),
)
plt.plot(x, y, label="3x + 2y = 12")
plt.plot(candidates[:, 0], candidates[:, 1], "o", label="tested points")
plt.xlabel("x")
plt.ylabel("y")
plt.legend()
plt.show()
Output yang dijalankan adalah:
x: [-2. 0. 2. 4. 6.]
y: [ 9. 6. 3. 0. -3.]
residual: [0. 0. 0. 0. 0.]
on line: [ True True True True True]
candidate residual: [0. 2. 0.]
candidate on line: [ True False True]
np.isclose membandingkan nilai floating-point dengan toleransi eksplisit. Di sini rtol=0.0 dan atol=1e-12 berarti “terima residual yang besar mutlaknya paling banyak .” Itu adalah keputusan rekayasa numerik pada skala contoh ini, bukan bukti simbolis bahwa persamaan berlaku. Buktinya berasal dari aljabar; kode memeriksa apakah implementasi sesuai.
Pemanggilan plot mengikuti kontrak plot Matplotlib: array yang diberikan menjadi koordinat horizontal dan vertikal simpul garis. Plot yang lebih rapat akan tampak lebih halus, tetapi tidak menciptakan lebih banyak solusi matematis.
Kontur pengklasifikasi adalah persamaan yang sama dengan nama fitur
Kembali ke skor pembuka:
Di sini dan adalah fitur masukan, dan adalah bobot tetap, dan adalah intersep. Kontur skor mengumpulkan semua pasangan fitur yang menerima satu skor terpilih. Kontur skor nol memenuhi
Itulah sebuah garis. Perpindahan dari ke menaikkan sebesar dan menurunkan sebesar , sehingga skor tetap:
Bentuk ini bukan dibuat khusus untuk diagram. Contoh resmi scikit-learn LinearSVC menampilkan fungsi keputusan yang dihitung sebagai matriks fitur dikalikan koefisien terpelajar lalu ditambah intersep. Dokumentasi scikit-learn RidgeClassifier juga menyatakan bahwa skor kepercayaan binernya sebanding dengan jarak bertanda dari hyperplane pemisah dan mendokumentasikan bahwa skor di atas nol memprediksi kelas keduanya.
Untuk pengklasifikasi edukatif ini, pilih aturan eksplisit
Dengan konvensi ini, kontur nol adalah batas keputusan: melintasinya mengubah kelas prediksi. Titik di satu sisi memiliki skor positif dan titik di sisi lain memiliki skor negatif. Garis saja tidak menentukan aturan seri atau nama kelas; keduanya termasuk konvensi prediksi. Skor mentah juga tidak otomatis merupakan probabilitas.
| Pasangan fitur | Perhitungan skor | Skor | Hasil menurut aturan |
|---|---|---|---|
| Kelas B, pada batas | |||
| Kelas A | |||
| Kelas B |
Pembagian dengan nol mengungkapkan kasus yang hilang
Kalimat “ adalah garis” memerlukan satu syarat: dan tidak boleh sama-sama nol. Menyelesaikan untuk memerlukan syarat lokal yang lebih kuat, yaitu .
| Kasus koefisien | Himpunan solusi | Hasil geometris |
|---|---|---|
| Garis nonvertikal | ||
| , | dan sembarang real | Garis vertikal |
| , | dan sembarang real | Garis horizontal |
| , | Setiap | Seluruh bidang, bukan satu garis |
| , | Tidak ada solusi | Himpunan kosong, bukan satu garis |
Misalnya, menyederhana menjadi . Setiap titik memenuhi, jadi garisnya vertikal. Mencoba menghasilkan dengan membagi bukan sekadar cara yang canggung—operasi itu tidak terdefinisi. Garis vertikal tidak memiliki kemiringan berhingga karena koordinat -nya tidak berubah sementara boleh berubah.
Ada satu miskonsepsi praktis lain yang harus dihindari. Dua titik yang diplot dapat menentukan garis nondegenerat, tetapi lolos dua pengujian tidak membuktikan bahwa sembarang kode merepresentasikan persamaan yang dimaksud. Koefisien yang tertukar tetap dapat menempatkan dua titik tertentu itu di posisi yang diharapkan. Hitung residual untuk beberapa titik yang dipilih dengan sengaja, termasuk titik di luar garis, dan pertahankan derivasi aljabar sebagai sumber kebenaran.
Satu kendala lagi akan mengubah garis menjadi titik potong
Satu persamaan menyisakan satu koordinat bebas: pilih , dan garis menentukan —atau, untuk garis vertikal, pilih sementara tetap. Kebebasan itulah sebabnya satu persamaan biasanya memiliki solusi pasangan koordinat yang tak berhingga.
Pelajaran berikutnya akan memberikan persamaan kedua pada pasangan yang sama. Solusi kemudian harus berada pada kedua garis sekaligus. Uji titik-pada-garis yang dikembangkan di sini menjadi uji perpotongan, dan geometri akan menunjukkan mengapa sebuah sistem dapat memiliki satu solusi, tidak memiliki solusi, atau memiliki seluruh garis yang sama.
Periksa pemahaman Anda
Pertanyaan 1
Ubah 4x + 2y = 8 ke bentuk kemiringan-intersep. Nyatakan kemiringan dan kedua intersep sumbu, serta tunjukkan setiap langkah.
Tampilkan solusi langkah demi langkah
Karena koefisien adalah bilangan tak nol , isolasikan dengan langkah-langkah yang dapat dibalik:
Membandingkan dengan memberikan kemiringan dan intersep sumbu vertikal , jadi salah satu intersep adalah . Untuk intersep sumbu horizontal, tetapkan :
Intersep lainnya adalah . Keduanya memenuhi persamaan asli: dan .
Pertanyaan 2
Uji titik (3, 1), (1, 3), dan (0, 4) terhadap 2x + y = 7. Hitung residual masing-masing dan klasifikasikan sebagai pada atau di luar garis.
Tampilkan solusi langkah demi langkah
Gunakan residual :
Hanya yang memiliki residual nol, jadi titik itu berada pada garis. Dua titik lainnya berada di luar garis. Residual negatifnya berarti jumlah berbobotnya, yaitu dan , berada di bawah nilai yang disyaratkan .
Pertanyaan 3
Parametrisasi semua solusi x − 3y = 6 dengan satu parameter real, lalu buktikan kedua arah kesamaan himpunannya.
Tampilkan solusi langkah demi langkah
Pilih untuk sembarang . Menyelesaikan memberikan
Jadi keluarga yang diusulkan adalah
Pertama, setiap pasangan yang tercantum berlaku karena
Kedua, setiap solusi dari persamaan asli memenuhi . Tetapkan untuk menulis solusi itu sebagai . Arah pertama mengecualikan titik di luar garis; arah kedua memastikan tidak ada solusi yang terlewat.
Pertanyaan 4
Seorang siswa menulis ulang 5x + 0y = 10 sebagai y = (10 − 5x) / 0 lalu menyimpulkan bahwa persamaan tersebut tidak memiliki grafik. Diagnosis kesalahannya dan berikan himpunan solusi yang benar.
Tampilkan solusi langkah demi langkah
Pengubahan bentuk yang dicoba membagi dengan koefisien , yang bernilai nol. Pembagian dengan nol tidak terdefinisi, jadi langkah itu tidak dapat mempertahankan himpunan solusi.
Mulailah dari persamaan asli:
Persamaan itu tidak membatasi . Himpunan solusinya adalah
garis vertikal . Grafiknya ada; hanya bentuk kemiringan-intersep dengan kemiringan berhingga yang tidak tersedia.
Pertanyaan 5
Klasifikasikan himpunan solusi 0x + 0y = 0 dan 0x + 0y = 4. Jelaskan mengapa tidak satu pun dari kedua persamaan itu mendeskripsikan satu garis.
Tampilkan solusi langkah demi langkah
Untuk setiap pasangan real ,
Karena itu himpunan solusi pertama adalah seluruh , seluruh bidang koordinat. Persamaan itu tidak memilih satu garis.
Persamaan kedua menyederhana menjadi , yang salah untuk setiap penetapan. Himpunan solusinya adalah , himpunan kosong. Persamaan itu sama sekali tidak memuat garis. Kasus-kasus inilah alasan definisi garis mensyaratkan setidaknya salah satu dari atau tidak nol.
Pertanyaan 6
Untuk skor s(x₁, x₂) = −x₁ + 2x₂ − 4, temukan kontur skor nol dan klasifikasikan (0, 3), (2, 3), dan (4, 3) dengan kelas A untuk skor positif dan kelas B selain itu.
Tampilkan solusi langkah demi langkah
Tetapkan skor sama dengan nol dan isolasikan :
Garis ini adalah kontur skor nol. Sekarang evaluasi ketiga titik:
Menurut konvensi yang dinyatakan, adalah kelas A, sedangkan dan adalah kelas B. Titik tepat berada pada batas. Aturan seri yang berbeda dapat menetapkan titik berskor nol ke label yang berbeda, jadi persamaan saja tidak menentukan label tersebut.
Pertanyaan 7
Debug pemeriksaan NumPy ini: on_line = (3 * x + 2 * y == 12). Tuliskan pemeriksaan residual yang memperhitungkan toleransi dan jelaskan apa yang dapat serta tidak dapat dibuktikannya.
Tampilkan solusi langkah demi langkah
Hitung residual terlebih dahulu, lalu bandingkan dengan nol menggunakan toleransi yang dipilih sesuai skala perhitungan:
residual = 3.0 * x + 2.0 * y - 12.0
on_line = np.isclose(residual, 0.0, rtol=0.0, atol=1e-12)Ini menerima elemen ketika . Cara ini menghindari tuntutan kesamaan bit demi bit setelah aritmetika floating-point, ketika pembulatan dapat menyisakan residual kecil yang tidak nol.
Hasilnya menguji array numerik yang diberikan dan toleransi ini. Hasil itu tidak dapat membuktikan identitas simbolis untuk setiap nilai parameter real, dan atol yang terlalu besar dapat keliru menerima titik di luar garis. Derivasi menetapkan rumus; pemeriksaan numerik membantu menemukan kesalahan implementasi.
Sumber
- Mathematics for Machine Learning companion website
- Mathematics for Machine Learning book PDF
- NumPy documentation: numpy.linspace
- NumPy documentation: numpy.isclose
- Matplotlib documentation: matplotlib.pyplot.plot
- scikit-learn documentation: RidgeClassifier
- scikit-learn example: Plot the support vectors in LinearSVC