Kursus Matematika untuk AI · Pelajaran 10 dari 180
Membaca Derivasi AI: Temukan Baris Pertama yang Rusak
Pelajari cara membaca derivasi matematika baris demi baris, mengungkap asumsi tersembunyi, dan men-debug identitas mean squared error yang keliru dengan NumPy.
Tiga prediksi model menghasilkan residual , , dan . Residual bertanda saling meniadakan, sehingga rata-ratanya nol. Prediksi di tengah tepat, tetapi dua lainnya salah, dan mean squared error-nya adalah . Derivasi yang tampak masuk akal dapat mengubah loss nyata itu menjadi nol hanya dengan memindahkan satu kuadrat melewati satu operasi rata-rata.
Cara tercepat men-debug halaman aljabar bukan dengan menatap jawaban akhirnya. Mulai dari atas dan tanyakan mengapa setiap baris mengikuti baris sebelumnya. Berhentilah pada tanda sama dengan pertama yang rusak. Semua baris berikutnya mungkin merupakan aritmetika yang benar, tetapi diterapkan pada ekspresi yang bukan lagi ekspresi yang diklaim dihitung oleh derivasi.
Pada akhir pelajaran ini, Anda akan mampu membaca derivasi baris demi baris, menyebutkan aturan di balik setiap transformasi, dan mengungkap asumsi yang tidak dinyatakan tentang domain, pembagi, tanda, atau rentang indeks. Anda juga akan men-debug perhitungan loss dalam aljabar dan NumPy tanpa kalkulus atau optimisasi.
Pelajaran ini menggabungkan dua keterampilan sebelumnya. Pelajaran 6 tentang penjumlahan dan agregasi loss menjelaskan bagaimana batas dan perataan mengubah loss berindeks menjadi satu angka. Pelajaran 9 tentang persamaan dan himpunan solusi menunjukkan mengapa langkah aljabar harus mempertahankan klaim matematika yang sedang dibuat. Situs pendamping resmi Mathematics for Machine Learning dan bab pengantarnya memotivasi fondasi matematika sebagai alat untuk memahami model, men-debug metode, dan membuat asumsi terlihat. Metode audit dan contoh di bawah ini adalah materi orisinal.
Setiap baris membuat klaim lokal
Derivasi adalah rangkaian pernyataan matematika yang setiap baris barunya didukung oleh definisi, aturan aljabar, asumsi yang dinyatakan, atau hasil yang sudah dibuktikan. Membacanya dengan baik adalah tugas lokal. Di antara dua baris berdekatan, ajukan empat pertanyaan:
- Apa yang berubah: simbol, operasi, batas, atau seluruh ekspresi?
- Definisi atau aturan aljabar mana yang mengizinkan perubahan tepat itu?
- Kondisi apa yang membuat aturan tersebut sah?
- Apakah baris baru membuat klaim yang sama, atau hanya klaim yang berkaitan?
Simbol yang menghubungkan ekspresi memberi tahu jenis klaim yang harus diaudit.
| Simbol | Dibaca sebagai | Perannya dalam derivasi |
|---|---|---|
| “didefinisikan sebagai” | Memperkenalkan nama atau konvensi; sisi kanan menentukan arti sisi kiri | |
| “memiliki nilai yang sama dengan” | Menyatakan kesamaan di bawah domain dan asumsi saat ini | |
| “jika dan hanya jika” | Menyatakan dua kondisi memiliki solusi yang persis sama | |
| “mengimplikasikan” | Hanya mempertahankan satu arah; arah sebaliknya memerlukan alasan terpisah | |
| “kira-kira sama dengan” | Melaporkan pendekatan numerik, bukan identitas eksak |
Metode ini sengaja memisahkan dua pertanyaan. “Apakah penulis mencapai jawaban yang diharapkan?” adalah pengujian tujuan. “Apakah setiap langkah mempertahankan klaim?” adalah pengujian rute. Tujuan yang benar tetap dapat dicapai melalui penalaran yang tidak valid, sama seperti tujuan yang keliru dapat mengikuti banyak langkah valid setelah satu kesalahan substitusi awal.
Satu kuadrat yang dipindahkan menghapus loss nyata
Untuk contoh, misalkan adalah prediksi ke-, targetnya, dan residualnya. Kita definisikan
dan mendefinisikan mean squared error (MSE) sebagai
Syarat bukan hiasan: rata-rata aritmetika membagi dengan jumlah suku, sehingga batch kosong tidak memiliki MSE menurut definisi ini.
Sekarang gunakan tiga residual,
Buka langkah-langkah dalam peta derivasi ini. Kata status dan simbol mengulang petunjuk warna, dan setiap ringkasan dapat dioperasikan dengan papan ketik melalui kontrol buka-tutup bawaan peramban.
Buka baris mana pun untuk memeriksa aturan dan asumsinya. Baris 4 berisi tanda sama dengan pertama yang rusak.
ValidBaris 1
L_MSE := (1/3) Σᵢ₌₁³ rᵢ²- Mengapa langkah ini berhasil atau gagal
- Baris ini menerapkan definisi MSE dengan N = 3.
- Kondisi yang perlu diperiksa
- Batch berisi tepat tiga residual, sehingga N = 3 > 0.
ValidBaris 2
= (1/3)((−2)² + 0² + 2²)- Mengapa langkah ini berhasil atau gagal
- Substitusikan tiga nilai residual dan uraikan jumlah hingga.
- Kondisi yang perlu diperiksa
- Rentang indeks tetap i = 1, 2, 3 dalam urutan yang sama.
ValidBaris 3
= (1/3)(4 + 0 + 4) = 8/3- Mengapa langkah ini berhasil atau gagal
- Kuadratkan setiap residual, jumlahkan tiga nilai kuadrat, lalu bagi dengan 3.
- Kondisi yang perlu diperiksa
- Aritmetika bilangan real biasa berlaku.
Tidak validBaris 4
= ((1/3) Σᵢ₌₁³ rᵢ)²- Mengapa langkah ini berhasil atau gagal
- Kuadrat umumnya tidak dapat dipindahkan ke luar jumlah atau rata-rata. Ekspresi baru ini adalah kuadrat rata-rata residual, bukan MSE.
- Kondisi yang perlu diperiksa
- Kesamaan memerlukan kondisi khusus pada residual; kondisi itu tidak dinyatakan dan salah untuk contoh ini.
Valid untuk ekspresi baruBaris 5
= ((−2 + 0 + 2)/3)²- Mengapa langkah ini berhasil atau gagal
- Baris ini menguraikan rata-rata residual yang diperkenalkan pada Baris 4 dengan benar.
- Kondisi yang perlu diperiksa
- Ketiga residual dan penyebut tidak berubah.
Kesimpulan tentang MSE tidak validBaris 6
= 0² = 0, oleh karena itu L_MSE = 0- Mengapa langkah ini berhasil atau gagal
- Nol memang benar untuk kuadrat rata-rata residual, tetapi Baris 4 telah memutus hubungannya dengan MSE.
- Kondisi yang perlu diperiksa
- Kesimpulan ini diam-diam mengasumsikan kesamaan yang tidak valid pada Baris 4.
Tiga baris pertama menghitung loss sebenarnya:
Baris 4 menggantinya dengan besaran yang berbeda:
Di sini adalah nama untuk kuadrat rata-rata residual. Kesalahan berlawanan saling meniadakan sebelum kuadrat diterapkan. MSE menguadratkan terlebih dahulu, sehingga dan masing-masing menyumbang . Urutan operasi mengubah apa yang diukur oleh angka tersebut.
| Contoh | Residual | Kontribusi ke | Kontribusi ke |
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 | |||
| Total |
Langkah ilegal itu juga terlihat jika kuadrat jumlah diekspansi:
Suku silang tidak otomatis lenyap, dan rata-rata di luar menyumbang faktor , bukan . Jadi memindahkan kuadrat mengubah suku sekaligus skalanya.
Aturan selalu membawa syaratnya
Banyak derivasi menyembunyikan informasi terpenting dalam frasa seperti “untuk ” atau “di atas bilangan real.” Hilangkan syarat itu, dan identitas yang sah dapat berubah menjadi klaim universal yang salah.
Perhatikan pembatalan:
Pada , sisi kiri tidak terdefinisi. Demikian pula, membagi persamaan dengan menghasilkan , tetapi hanya dengan asumsi tambahan . Sekilas, orang mungkin mengira dan adalah solusi. Audit baris menolak dugaan itu segera setelah persamaan asli disederhanakan:
Pembagian dengan yang menggoda itu kebetulan menghasilkan dari , meskipun langkah tersebut mengasumsikan . Hasilnya bertentangan dengan izinnya sendiri. Rute yang aman menyusun ulang persamaan tanpa membagi dengan ekspresi yang mungkin nol.
Pemangkatan kuadrat juga memerlukan pemeriksaan arah. Jika , maka . Kebalikannya tidak mengikuti tanpa informasi tambahan: mengizinkan atau . Karena itu, menguadratkan kedua sisi persamaan dapat menambahkan kandidat yang harus diperiksa pada persamaan asli.
Akar kuadrat juga membawa syarat tanda. Untuk real,
bukan selalu . Mensubstitusikan memberi , sedangkan penggantian tak dinyatakan akan memberi . Akibatnya, memiliki dua solusi real, dan ; hanya menulis menghilangkan solusi negatif.
Syarat-syarat ini tidak membuat derivasi menjadi rewel. Syarat ini mengidentifikasi input mana yang benar-benar dicakup oleh argumen.
Batas dan definisi harus tetap
Derivasi berindeks memiliki keadaan tersembunyi lain: rentangnya. Kedua ekspresi ini biasanya tidak sama:
Yang kedua menghilangkan contoh . Mengganti nama indeks dummy tidak masalah,
karena batas dan pola sukunya tetap sama. Mengubah batas, penyebut, atau operasi adalah perubahan matematika yang memerlukan alasan.
Definisi memerlukan kedisiplinan yang sama. Setelah , baris berikutnya tidak boleh diam-diam menggunakan . Penguadratan menyamarkan pembalikan tanda ini karena , tetapi rata-rata tanpa kuadrat akan berubah tanda. Derivasi yang hanya bekerja karena operasi berikutnya menutupi definisi yang tidak konsisten tetaplah rusak.
NumPy membuat urutan terlihat
NumPy mendokumentasikan np.square sebagai operasi per elemen: setiap residual dikuadratkan sementara bentuk input dipertahankan. NumPy mendokumentasikan np.mean sebagai reduksi aritmetika pada sumbu yang dipilih, atau pada array yang diratakan secara default. Karena itu, penyarangan keduanya mengodekan urutan derivasi.
import numpy as np
predictions = np.array([8.0, 10.0, 12.0])
targets = np.array([10.0, 10.0, 10.0])
residuals = predictions - targets
mse = np.mean(np.square(residuals))
squared_mean_residual = np.square(np.mean(residuals))
print(residuals)
print(mse)
print(squared_mean_residual)
[-2. 0. 2.]
2.6666666666666665
0.0
np.mean(np.square(residuals)) berarti “kuadratkan setiap nilai, lalu ratakan.” np.square(np.mean(residuals)) berarti “ratakan lebih dahulu, lalu kuadratkan satu hasil itu.” Tanda kurung adalah pohon derivasi ringkas; menukar pemanggilan mengubah besaran yang dihitung.
Uji numerik memiliki kekuatan logis yang tidak simetris. Contoh penyangkal di atas cukup untuk memfalsifikasi klaim universal
Satu kegagalan membantah “untuk setiap.” Satu keberhasilan tidak membuktikannya. Dengan residual , kedua ekspresi sama-sama bernilai , tetapi kasus yang lolos itu tidak dapat menetapkan identitas untuk semua urutan lain. Pembuktian umum memerlukan aljabar yang mencakup domain yang dinyatakan; pengujian sangat baik untuk menemukan contoh penyangkal dan kesalahan implementasi.
Bawa audit ke kode dan makalah AI
Persamaan loss dalam kode model sering memadatkan beberapa langkah: mendefinisikan residual, melakukan kuadrat per elemen, mereduksi pada sumbu contoh, dan membagi dengan hitungan. Audit baris membuat setiap langkah dapat diperiksa. Tulis rumus yang dimaksud, cocokkan satu operasi kode dengan setiap operasi matematika, gunakan contoh yang sama dalam reduksi yang sama, dan nyatakan apa yang terjadi ketika batch kosong.
Kebiasaan yang sama dapat diterapkan pada derivasi yang lebih panjang tanpa matematika yang lebih maju. Sisakan ruang untuk aturan dan syaratnya. Tandai := ketika suatu besaran diberi nama. Gunakan hanya ketika dua ekspresi memiliki nilai yang sama di bawah asumsi aktif. Gunakan hanya ketika kedua arah mempertahankan himpunan solusi yang sama. Ketika rutenya rusak, laporkan transisi buruk pertama—bukan sekadar angka akhir yang mencurigakan.
Praktik ini menjadi jembatan dari aljabar prasyarat ke modul berikutnya dalam kursus. Notasi yang padat menjadi mudah dikelola ketika setiap baris harus menjawab satu pertanyaan kecil: apa yang berubah, dan mengapa perubahan itu diizinkan?
Uji pemahaman Anda
Pertanyaan 1
Klasifikasikan setiap penghubung: a := b + 1; x/x = 1 untuk x ≠ 0; x² = 9 ⇔ x = 3; dan 1/3 ≈ 0.333. Jelaskan klaim yang dibuat setiap simbol.
Tampilkan solusi langkah demi langkah
- Dalam , memperkenalkan sebuah definisi: ekspresi menentukan arti nama baru .
- Dalam untuk , menyatakan kesamaan bersyarat. Ini valid pada domain dengan syarat bahwa nilainya bukan nol dan tidak terdefinisi pada .
- Klaim salah di atas bilangan real. Kondisi kiri juga memiliki , sehingga kedua sisi tidak memiliki himpunan solusi yang sama. Penggantian yang valid adalah .
- Dalam , menandai pendekatan. Desimal yang ditampilkan dekat dengan sepertiga, tetapi tidak persis sama dengannya.
Setiap penghubung membuat janji yang berbeda; membaca semuanya sebagai kesamaan biasa akan menghapus informasi penting.
Pertanyaan 2
Untuk residual (−1, 2, 2), hitung mean squared error dan kuadrat rata-rata residual. Identifikasi operasi pertama tempat perhitungannya berbeda.
Tampilkan solusi langkah demi langkah
MSE menguadratkan setiap residual terlebih dahulu:
Kuadrat rata-rata residual meratakan terlebih dahulu:
Perbedaan pertama adalah operasi yang langsung diterapkan pada residual: MSE melakukan kuadrat per elemen, sedangkan kuadrat rata-rata residual melakukan penjumlahan dan pembagian sebelum kuadrat. Nilai dan menegaskan bahwa kedua urutan operasi itu tidak dapat dipertukarkan.
Pertanyaan 3
Audit derivasi ini untuk N = 3: Σᵢ₌₁³ rᵢ² = r₁² + r₂² + r₃² = r₁² + r₂². Tanda sama dengan mana yang pertama rusak, dan asumsi tak dinyatakan apa yang akan membuatnya valid?
Tampilkan solusi langkah demi langkah
Kesamaan pertama valid karena menguraikan rentang indeks inklusif :
Kesamaan kedua menghilangkan , sehingga itulah tanda sama dengan pertama yang rusak. Ini hanya valid dengan syarat tambahan yang membuat suku yang dihilangkan bernilai nol:
Tanpa syarat itu, derivasi diam-diam mengubah rentang indeks tetap dari tiga contoh menjadi dua suku efektif.
Pertanyaan 4
Selesaikan x(x + 1) = x pada bilangan real. Jelaskan mengapa membagi kedua sisi dengan x bukan rute yang valid menuju solusi, meskipun persamaan yang disederhanakan tampak menghasilkan x = 0.
Tampilkan solusi langkah demi langkah
Kurangkan dari kedua sisi terlebih dahulu dan sederhanakan:
Substitusi memeriksa solusi: .
Membagi persamaan asli dengan memerlukan dan menghasilkan , sehingga . Hasil itu melanggar syarat bahwa nilainya bukan nol yang diperlukan oleh pembagian. Rute tersebut tidak memiliki kandidat valid dalam domain yang diasumsikannya, meskipun simbol-simbolnya berakhir pada solusi asli. Derivasi yang aman tidak pernah membagi dengan ekspresi yang mungkin nol.
Pertanyaan 5
Sebuah derivasi di atas bilangan real mengubah √(z²) = 5 menjadi z = 5. Temukan kasus yang hilang dan sebutkan penggantian yang tidak valid.
Tampilkan solusi langkah demi langkah
Untuk real, akar kuadrat utama tidak negatif dan
Karena itu persamaannya adalah
yang memiliki dan . Keduanya lolos pemeriksaan karena dan . Derivasi itu secara keliru mengganti dengan tanpa mengasumsikan ; akibatnya kasus negatif hilang.
Pertanyaan 6
Seorang siswa menguji residual (2, 2, 2) dan menemukan bahwa MSE sama dengan kuadrat rata-rata residual. Apakah ini membuktikan rumusnya identik? Berikan contoh penyangkal dan jelaskan logikanya.
Tampilkan solusi langkah demi langkah
Untuk , kedua besaran memang bernilai :
Itu hanya menetapkan kesamaan untuk satu urutan input. Ini tidak mencakup setiap urutan yang diizinkan. Gunakan sebagai contoh penyangkal:
Karena identitas universal mengklaim kesamaan untuk setiap urutan, satu contoh penyangkal dapat memfalsifikasinya. Tidak ada kumpulan berhingga contoh yang berhasil yang sendirian dapat membuktikan klaim aljabar universal.
Pertanyaan 7
Temukan dan perbaiki kesalahan pada baris NumPy ini untuk mean squared error: loss = np.square(np.mean(predictions - targets)). Tuliskan baris yang dikoreksi dan petakan operasinya ke rumus.
Tampilkan solusi langkah demi langkah
Baris asli menghitung kuadrat rata-rata residual karena np.mean berjalan sebelum np.square. MSE yang benar adalah
residuals = predictions - targets
loss = np.mean(np.square(residuals))Baris pertama mengimplementasikan . Pemanggilan dalam np.square(residuals) mengimplementasikan suku per elemen . np.mean(...) di luar menjumlahkan suku kuadrat itu dan membaginya dengan jumlah elemen yang disertakan. Urutan kode kini sesuai dengan
Syarat input tidak kosong tetap menjadi bagian dari kontrak implementasi.
Pertanyaan 8
Sebuah derivasi mengganti nama Σᵢ₌₁ᴺ aᵢ menjadi Σⱼ₌₁ᴺ aⱼ, lalu menggantinya dengan Σⱼ₌₀ᴺ aⱼ. Audit kedua langkah tersebut.
Tampilkan solusi langkah demi langkah
Langkah pertama valid:
Huruf indeks adalah penanda tempat lokal. Mengganti nama menjadi tidak mengubah batas maupun suku yang dipilih di setiap posisi.
Langkah kedua mengubah batas bawah dari menjadi :
Ini sama dengan jumlah asli hanya jika didefinisikan dan diasumsikan secara eksplisit. Jika tidak, jumlah baru berisi satu suku tambahan—atau mungkin tidak terdefinisi jika urutan tidak memiliki indeks . Jadi tanda sama dengan pertama yang rusak adalah yang mengubah batas bawah.