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.

Bagikan artikel ini

Sebuah pengklasifikasi kecil memberikan skor pada dua fitur:

s(x1,x2)=2x1+x2−5.s(x_1,x_2)=2x_1+x_2-5.

Pasangan fitur (0,5)(0,5), (1,3)(1,3), dan (2,1)(2,1) tampak berbeda, tetapi masing-masing mendapat skor yang sama:

s(0,5)=s(1,3)=s(2,1)=0.s(0,5)=s(1,3)=s(2,1)=0.

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 (x,y)∈R2(x,y)\in\mathbb R^2, 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

ax+by=c,ax+by=c,

dengan xx dan yy sebagai koordinat bernilai real serta aa, bb, dan cc sebagai koefisien real tetap. Persamaan ini linear karena xx dan yy hanya muncul dengan pangkat satu, tidak dikalikan satu sama lain, dan hanya dikalikan dengan bilangan tetap.

Misalkan b≠0b\ne0. Kurangi axax dari kedua sisi, lalu bagi dengan bilangan tak nol bb yang sudah diketahui:

ax+by=c,by=c−ax,y=−abx+cb.\begin{aligned} ax+by&=c,\\ by&=c-ax,\\ y&=-\frac{a}{b}x+\frac{c}{b}. \end{aligned}

Ini adalah bentuk kemiringan-intersep, y=mx+qy=mx+q. Kemiringannya adalah m=−a/bm=-a/b: menaikkan xx satu unit mengubah yy sebesar −a/b-a/b unit sementara kendala tetap benar. Intersep sumbu vertikalnya adalah q=c/bq=c/b, yang dicapai ketika x=0x=0.

Rumus yang diubah bentuknya bukan sekadar membuat penggambaran lebih mudah. Rumus itu menampakkan satu pilihan bebas. Pilih sembarang xx real; persamaan akan menghitung tepat satu yy yang cocok. Saat xx berubah secara kontinu, titik solusi menelusuri garis, bukan kumpulan titik yang berhingga.

Satu garis contoh mengungkapkan kemiringan, intersep, dan titik

Kerjakan

3x+2y=12.3x+2y=12.

Di sini a=3a=3, b=2b=2, dan c=12c=12. Karena bb tidak nol, menyelesaikan yy sah dilakukan:

3x+2y=12,2y=12−3x,y=6−32x.\begin{aligned} 3x+2y&=12,\\ 2y&=12-3x,\\ y&=6-\frac32x. \end{aligned}

Garis ini memiliki kemiringan −3/2-3/2. Jika xx naik 22, yy turun 33. Perubahan berpasangan itu mempertahankan sisi kiri karena

3(Δx)+2(Δy)=3(2)+2(−3)=0.3(\Delta x)+2(\Delta y)=3(2)+2(-3)=0.

Residual mengubah uji kebenaran itu menjadi satu angka:

r(x,y):=3x+2y−12.r(x,y):=3x+2y-12.

Titik pada garis memiliki residual 00. Residual tak nol memberikan uji yang gagal sekaligus tanda: positif berarti jumlah berbobot berada di atas 1212, dan negatif berarti berada di bawah 1212.

Titik kandidatSubstitusi ke 3x+2y3x+2yResidual r(x,y)r(x,y)Keputusan
(0,6)(0,6)3(0)+2(6)=123(0)+2(6)=1200Pada garis
(2,3)(2,3)3(2)+2(3)=123(2)+2(3)=1200Pada garis
(4,0)(4,0)3(4)+2(0)=123(4)+2(0)=1200Pada garis
(2,4)(2,4)3(2)+2(4)=143(2)+2(4)=1422Di 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.

Gerakkan satu koordinat sementara persamaan menghitung koordinat lainnya: setiap pasangan yang ditampilkan tetap berada pada 3x + 2y = 12.
Pilih titik pada garis

Gunakan penggeser dengan penunjuk atau tombol panah, Page Up, Page Down, Home, dan End.

2
Koordinat y yang dihitung3Dihitung dari y = (12 − 3x) ÷ 2

Anda juga dapat menyeret titik lingkaran ke kiri atau kanan sepanjang garis.

Titik yang dipilih: (2, 3). Residualnya 0, jadi titik ini memenuhi persamaan.

Setiap solusi dari 3x + 2y = 12●Solusi yang dipilih
Titik yang dapat digerakkan pada garis 3x ditambah 2y sama dengan 12Garis menurun dari negatif 2 koma 9 ke 6 koma negatif 3. Titik yang dipilih dimulai dari 2 koma 3 dan selalu memiliki residual nol.
Alternatif teks untuk titik yang dipilih
BesaranNilai saat iniCara mendapatkannya
Koordinat x2Dipilih dengan kontrol rentang
Koordinat y3(12 − 3 × 2) ÷ 2
Residual03 × 2 + 2 × 3 − 12

Keadaan pertama yang dirender server adalah (2,3)(2,3), dan tabel di bawah grafik memuat perhitungan yang sama. Garis ini tidak memerlukan JavaScript untuk menyampaikan makna matematisnya; hidrasi menambahkan kemampuan memilih xx lain dan mengamati perubahan yy 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 tt adalah bilangan real apa pun dan tetapkan

(x,y)=(t,6−32t),t∈R.(x,y)=\left(t,6-\frac32t\right), \qquad t\in\mathbb R.

Setiap pasangan dalam keluarga ini adalah solusi karena

3t+2(6−32t)=3t+12−3t=12.3t+2\left(6-\frac32t\right) =3t+12-3t =12.

Arah sebaliknya juga penting. Setiap pasangan yang memenuhi 3x+2y=123x+2y=12 juga harus memenuhi y=6−32xy=6-\tfrac32x. Pilih t=xt=x 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 xx, hitung nilai yy 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 10−1210^{-12}.” 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:

s(x1,x2)=2x1+x2−5.s(x_1,x_2)=2x_1+x_2-5.

Di sini x1x_1 dan x2x_2 adalah fitur masukan, 22 dan 11 adalah bobot tetap, dan −5-5 adalah intersep. Kontur skor mengumpulkan semua pasangan fitur yang menerima satu skor terpilih. Kontur skor nol memenuhi

s(x1,x2)=0  ⟺  2x1+x2=5  ⟺  x2=5−2x1.s(x_1,x_2)=0 \iff 2x_1+x_2=5 \iff x_2=5-2x_1.

Itulah sebuah garis. Perpindahan dari (1,3)(1,3) ke (2,1)(2,1) menaikkan x1x_1 sebesar 11 dan menurunkan x2x_2 sebesar 22, sehingga skor tetap:

2(1)+3−5=0,2(2)+1−5=0.2(1)+3-5=0, \qquad 2(2)+1-5=0.

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

class^={A,s(x1,x2)>0,B,s(x1,x2)≤0.\widehat{\text{class}}= \begin{cases} \text{A}, & s(x_1,x_2)>0,\\ \text{B}, & s(x_1,x_2)\le0. \end{cases}

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 fiturPerhitungan skorSkorHasil menurut aturan
(1,3)(1,3)2(1)+3−52(1)+3-500Kelas B, pada batas
(2,2)(2,2)2(2)+2−52(2)+2-511Kelas A
(0,4)(0,4)2(0)+4−52(0)+4-5−1-1Kelas B

Pembagian dengan nol mengungkapkan kasus yang hilang

Kalimat “ax+by=cax+by=c adalah garis” memerlukan satu syarat: aa dan bb tidak boleh sama-sama nol. Menyelesaikan untuk yy memerlukan syarat lokal yang lebih kuat, yaitu b≠0b\ne0.

Kasus koefisienHimpunan solusiHasil geometris
b≠0b\ne0y=−abx+cby=-\frac abx+\frac cbGaris nonvertikal
b=0b=0, a≠0a\ne0x=cax=\frac ca dan sembarang yy realGaris vertikal
a=0a=0, b≠0b\ne0y=cby=\frac cb dan sembarang xx realGaris horizontal
a=b=0a=b=0, c=0c=0Setiap (x,y)∈R2(x,y)\in\mathbb R^2Seluruh bidang, bukan satu garis
a=b=0a=b=0, c≠0c\ne0Tidak ada solusiHimpunan kosong, bukan satu garis

Misalnya, 2x+0y=62x+0y=6 menyederhana menjadi x=3x=3. Setiap titik (3,y)(3,y) memenuhi, jadi garisnya vertikal. Mencoba menghasilkan y=mx+qy=mx+q dengan membagi b=0b=0 bukan sekadar cara yang canggung—operasi itu tidak terdefinisi. Garis vertikal tidak memiliki kemiringan berhingga karena koordinat xx-nya tidak berubah sementara yy 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 xx, dan garis menentukan yy—atau, untuk garis vertikal, pilih yy sementara xx 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 yy adalah bilangan tak nol 22, isolasikan yy dengan langkah-langkah yang dapat dibalik:

4x+2y=8,2y=8−4x,y=4−2x.\begin{aligned} 4x+2y&=8,\\ 2y&=8-4x,\\ y&=4-2x. \end{aligned}

Membandingkan y=4−2xy=4-2x dengan y=mx+qy=mx+q memberikan kemiringan m=−2m=-2 dan intersep sumbu vertikal q=4q=4, jadi salah satu intersep adalah (0,4)(0,4). Untuk intersep sumbu horizontal, tetapkan y=0y=0:

0=4−2x  ⟺  2x=4  ⟺  x=2.0=4-2x \iff 2x=4 \iff x=2.

Intersep lainnya adalah (2,0)(2,0). Keduanya memenuhi persamaan asli: 4(0)+2(4)=84(0)+2(4)=8 dan 4(2)+2(0)=84(2)+2(0)=8.

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 r(x,y)=2x+y−7r(x,y)=2x+y-7:

r(3,1)=2(3)+1−7=0,r(1,3)=2(1)+3−7=−2,r(0,4)=2(0)+4−7=−3.\begin{aligned} r(3,1)&=2(3)+1-7=0,\\ r(1,3)&=2(1)+3-7=-2,\\ r(0,4)&=2(0)+4-7=-3. \end{aligned}

Hanya (3,1)(3,1) yang memiliki residual nol, jadi titik itu berada pada garis. Dua titik lainnya berada di luar garis. Residual negatifnya berarti jumlah berbobotnya, yaitu 55 dan 44, berada di bawah nilai yang disyaratkan 77.

Pertanyaan 3

Parametrisasi semua solusi x − 3y = 6 dengan satu parameter real, lalu buktikan kedua arah kesamaan himpunannya.

Tampilkan solusi langkah demi langkah

Pilih y=ty=t untuk sembarang t∈Rt\in\mathbb R. Menyelesaikan xx memberikan

x−3t=6  ⟺  x=6+3t.x-3t=6 \iff x=6+3t.

Jadi keluarga yang diusulkan adalah

(x,y)=(6+3t,t),t∈R.(x,y)=(6+3t,t), \qquad t\in\mathbb R.

Pertama, setiap pasangan yang tercantum berlaku karena

(6+3t)−3t=6.(6+3t)-3t=6.

Kedua, setiap solusi (x,y)(x,y) dari persamaan asli memenuhi x=6+3yx=6+3y. Tetapkan t=yt=y untuk menulis solusi itu sebagai (6+3t,t)(6+3t,t). 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 yy, yang bernilai nol. Pembagian dengan nol tidak terdefinisi, jadi langkah itu tidak dapat mempertahankan himpunan solusi.

Mulailah dari persamaan asli:

5x+0y=10  ⟺  5x=10  ⟺  x=2.5x+0y=10 \iff 5x=10 \iff x=2.

Persamaan itu tidak membatasi yy. Himpunan solusinya adalah

{(2,t)∣t∈R},\{(2,t)\mid t\in\mathbb R\},

garis vertikal x=2x=2. 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 (x,y)(x,y),

0x+0y=0.0x+0y=0.

Karena itu himpunan solusi pertama adalah seluruh R2\mathbb R^2, seluruh bidang koordinat. Persamaan itu tidak memilih satu garis.

Persamaan kedua menyederhana menjadi 0=40=4, yang salah untuk setiap penetapan. Himpunan solusinya adalah ∅\varnothing, himpunan kosong. Persamaan itu sama sekali tidak memuat garis. Kasus-kasus inilah alasan definisi garis mensyaratkan setidaknya salah satu dari aa atau bb 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 x2x_2:

−x1+2x2−4=0  ⟺  2x2=x1+4  ⟺  x2=12x1+2.-x_1+2x_2-4=0 \iff 2x_2=x_1+4 \iff x_2=\frac12x_1+2.

Garis ini adalah kontur skor nol. Sekarang evaluasi ketiga titik:

s(0,3)=−(0)+2(3)−4=2,s(2,3)=−(2)+2(3)−4=0,s(4,3)=−(4)+2(3)−4=−2.\begin{aligned} s(0,3)&=-(0)+2(3)-4=2,\\ s(2,3)&=-(2)+2(3)-4=0,\\ s(4,3)&=-(4)+2(3)-4=-2. \end{aligned}

Menurut konvensi yang dinyatakan, (0,3)(0,3) adalah kelas A, sedangkan (2,3)(2,3) dan (4,3)(4,3) adalah kelas B. Titik (2,3)(2,3) 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 ∣r∣≤10−12|r|\le10^{-12}. 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 3x+2y=123x+2y=12 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

  1. Mathematics for Machine Learning companion website
  2. Mathematics for Machine Learning book PDF
  3. NumPy documentation: numpy.linspace
  4. NumPy documentation: numpy.isclose
  5. Matplotlib documentation: matplotlib.pyplot.plot
  6. scikit-learn documentation: RidgeClassifier
  7. scikit-learn example: Plot the support vectors in LinearSVC