Kursus Matematika untuk AI · Pelajaran 26 dari 180
Group, Ring, dan Field: Mengapa Operasi AI Membutuhkan Aturan
Pelajari bagaimana closure, invers, dan distributivitas menentukan operasi tensor yang sah, lalu uji gagasan tersebut dengan NumPy.
Model AI dapat menjumlahkan dua vektor, menskalakan matriks bobot, dan mengalikan satu batch melalui sebuah layer karena angka dalam tensor tersebut mematuhi kumpulan aturan yang berguna. Aturan itu mudah dianggap begitu saja. Aturan tersebut juga menjadi alasan derivasi linear dapat disusun ulang tanpa mengubah maknanya.
Tujuan pembelajaran: Bedakan asumsi closure, invers, dan distributivitas pada tingkat intuitif, lalu gunakan ketiganya untuk menjelaskan mengapa operasi tensor umum dimodelkan di atas field bilangan real.
Prasyaratnya adalah Lesson 10: Reading a derivation line by line, tempat langkah aljabar pertama yang salah menjadi petunjuk debugging. Di sini, pertanyaannya sedikit lebih awal: langkah aljabar mana yang memang sah sejak awal? Situs pendamping resmi Mathematics for Machine Learning memetakan pelajaran ini ke Bagian 2.4 dari book PDF. Definisi, contoh, kode, visual, dan interpretasi AI di bawah ini bersifat orisinal.
Sebelum melakukan operasi, tanyakan di mana hasilnya berada
Operasi lebih dari sekadar simbol seperti atau . Operasi juga membuat janji tentang input dan outputnya. Jika adalah suatu himpunan dan adalah sebuah operasi, closure berarti
Panah itu menyatakan bahwa dua anggota masuk dan anggota lainnya keluar. Jika hasilnya dapat keluar dari , ekspresi yang bermula di tidak lagi sepenuhnya berada di dalam sistem tersebut.
Sebagai contoh, bilangan bulat tak negatif
tertutup terhadap penjumlahan: masih tak negatif. Namun, himpunan ini tidak tertutup terhadap pengurangan: keluar dari himpunan. Closure selalu relatif terhadap operasi tertentu; himpunan yang sama dapat tertutup untuk satu operasi dan tidak untuk operasi lainnya.
Peta validitas operasi
Setiap struktur menambahkan jaminan
Baca dari kiri ke kanan: field mempertahankan semua jaminan yang ditunjukkan ring dan menambahkan satu aturan tentang pembagian dengan skalar tak nol.
| Struktur | Operasi | Jaminan | Konsekuensi praktis |
|---|---|---|---|
| Group | Satu operasi, ⊙ | Closure, asosiativitas, identitas, invers | Gabungkan dan batalkan elemen di bawah ⊙. |
| Ring | Penjumlahan dan perkalian | Penjumlahan adalah group; perkalian distributif terhadap penjumlahan | Kembangkan dan susun ulang aritmetika, tetapi pembagian tidak otomatis berlaku. |
| Field | Penjumlahan dan perkalian | Ring yang setiap elemen tak nolnya memiliki invers perkalian | Skalar tak nol dapat dibagi keluar dari kombinasi linear. |
Peta ini adalah janji ringkas tentang apa yang diberikan oleh setiap nama. Peta ini tidak mengatakan bahwa setiap himpunan dengan simbol yang familier otomatis merupakan group, ring, atau field. Kita tetap harus memeriksa aturan yang relevan.
Group menjaga satu operasi tetap dapat dinavigasi
Bilangan bulat dengan penjumlahan, , membentuk group. Identitasnya adalah , dan invers dari adalah karena . Bilangan bulat tak negatif dengan penjumlahan bukan group: himpunan itu memiliki identitas, tetapi invers dari seharusnya , yang tidak berada di .
Bilangan real dengan perkalian, , juga bukan group karena tidak memiliki invers perkalian. Jika nol dihapus, hasilnya adalah group Abelian: perkalian asosiatif dan komutatif, adalah identitas, dan setiap bilangan real tak nol memiliki kebalikan.
Jadi, invers menjawab pertanyaan konkret: dapatkah operasi ini dibatalkan sambil tetap berada dalam himpunan yang sama? Itu berguna dalam transformasi, tetapi berlaku untuk satu operasi pada satu waktu. Group terhadap penjumlahan tidak otomatis mengizinkan pembagian.
Ring menambahkan operasi kedua
Ring menggabungkan penjumlahan dan perkalian. Dalam konvensi yang dipakai di sini, ring memiliki identitas perkalian dan mengikuti aturan berikut:
- elemennya membentuk group Abelian di bawah penjumlahan;
- perkalian tertutup dan asosiatif;
- perkalian distributif terhadap penjumlahan:
Bilangan bulat adalah ring di bawah penjumlahan dan perkalian biasa. Misalnya, perkalian distributif terhadap penjumlahan karena
dan
Namun bukan field. Bilangan tidak memiliki invers perkalian di dalam bilangan bulat: persamaan akan membutuhkan , yang bukan bilangan bulat. Ring mengizinkan penjumlahan, perkalian, dan distributivitas; ring tidak menjanjikan bahwa setiap elemen tak nol dapat dibagi keluar.
Field membuat aljabar skalar lengkap
Field adalah ring komutatif yang setiap elemennya yang tak nol memiliki invers perkalian. Bilangan rasional dan bilangan real adalah field. Bilangan bulat bukan.
Kata “field” mengacu pada skalar, bukan bentuk tensor. Vektor dalam memiliki koordinat real; matriks dalam memiliki koordinat real. Entri keduanya berasal dari suatu field walaupun vektor dan matriks itu sendiri adalah jenis objek yang berbeda.
Perbedaan ini penting ketika derivasi memindahkan skalar melewati penjumlahan atau membagi dengan koefisien tak nol. Di dalam field, langkah-langkah itu memiliki dukungan aljabar yang diperlukan. Di dalam ring, sebagian sah dan sebagian lainnya mungkin tidak.
Contoh kerja: verifikasi aturan dengan angka kecil
Gunakan dua tes kecil. Pertama, penjumlahan modulo memiliki elemen . Hasil direpresentasikan sebagai setelah berputar kembali. Identitasnya adalah , dan invers aditifnya adalah
di mana superskrip berarti invers di bawah penjumlahan modular. Kedua, periksa identitas vektor-real yang diandalkan oleh layer linear. Misalkan
Maka
sedangkan
Kedua jalur memberikan hasil yang sama karena perkalian skalar distributif terhadap penjumlahan vektor. Identitas itu bukan kebetulan yang terikat pada nilai-nilai ini; identitas tersebut adalah salah satu aturan yang membuat menjadi ruang vektor di atas field .
Mengapa operasi tensor mengasumsikan sebuah field
Sebagian besar perhitungan jaringan saraf menggunakan vektor, matriks, dan tensor berdimensi lebih tinggi yang entrinya merupakan pendekatan floating-point terhadap bilangan real. Sebagai contoh, dense layer berbentuk
Perkalian matriks-vektor berkembang menjadi penjumlahan dan perkalian skalar real. Penambahan bias kemudian menggunakan struktur aditif yang sama. Karena skalar dimodelkan sebagai elemen , aturan pengelompokan ulang dan distributivitas yang biasa menjelaskan mengapa implementasi ekuivalen menghasilkan hasil matematis yang sama.
Itulah sebabnya pemeriksaan bentuk dan pemeriksaan aljabar adalah pertanyaan yang berbeda:
- Kompatibilitas bentuk: dimensi dalam dan cocok, sehingga setiap dot product memiliki jumlah suku yang benar.
- Validitas skalar: entri menggunakan sistem aritmetika dengan aturan penjumlahan, perkalian, dan kombinasi skalar yang diharapkan.
PyTorch memperlihatkan kedua lapisan kontrak tersebut. Tensor membawa dtype, device, dan layout, sedangkan torch.matmul mengubah perilaku menurut apakah inputnya berupa vektor, matriks, atau matriks ber-batch; lihat dokumentasi Tensor Attributes dan referensi torch.matmul. Aturan bentuk dari library tidak menggantikan model field. Aturan tersebut mengimplementasikan operasi tensor tertentu yang aritmetika skalarnya biasanya dimaksudkan untuk mendekati aritmetika real.
Inilah alasan aljabar sistem training dapat membentuk kombinasi linear fitur, bobot, dan update. Kalkulus menambahkan lapisan lain: sebuah operasi juga harus terdiferensiasi, atau memiliki subgradien maupun aturan backward yang terdefinisi, agar automatic differentiation dapat menggunakannya. Field membuat aritmetika forward koheren; field tidak menjamin setiap fungsi terdiferensiasi.
Kasus batas: float mesin hanya meniru field real
Bilangan real membentuk field dalam matematika. Dtype komputer yang terbatas adalah himpunan pola bit yang dibatasi dan dibulatkan, sehingga tidak dapat memenuhi setiap aturan bilangan real secara tepat. Tiga dampak praktis mengikutinya:
- Pembulatan: nilai seperti
0.1biasanya tidak memiliki representasi biner yang tepat, sehingga dua jalur yang secara matematis sama dapat berbeda pada bit terakhirnya. - Overflow: mengalikan dua nilai
float32yang besar dapat menghasilkaninf, sebuah nilai di luar model bilangan real biasa yang dipakai dalam derivasi. - Aritmetika pengecualian yang tidak valid: ekspresi seperti
inf - infmenghasilkannan, sehingga bahkan penyusunan ulang yang familier perlu diperiksa secara numerik.
Hal ini bukan sanggahan terhadap teorema bahwa adalah field. Ini adalah peringatan bahwa float32 merupakan pendekatan terhadap , dengan rentang terbatas dan perilaku pembulatan yang ditentukan oleh implementasi. Dalam praktik, gunakan toleransi yang sesuai, pantau nilai non-finite, dan perlakukan aturan field sebagai kontrak matematis yang didekati oleh implementasi.
Ada sumber kebingungan umum lain dalam kode array. Di NumPy, x * y berarti perkalian elementwise, sedangkan A @ x berarti perkalian matriks. Keduanya dapat menjadi operasi yang valid, tetapi memiliki makna matematis dan persyaratan bentuk yang berbeda. Broadcasting yang berhasil bukan bukti bahwa operasi tersebut sesuai dengan aljabar yang dimaksudkan oleh model.
Audit aljabar kecil untuk kode model
Saat derivasi atau ekspresi tensor terlihat mencurigakan, audit dalam urutan berikut:
- Sebutkan himpunannya. Apakah nilainya bilangan real, bilangan bulat, residu modular, probabilitas, atau yang lain?
- Sebutkan setiap operasi. Bedakan penjumlahan, perkalian skalar, perkalian elementwise, dan perkalian matriks.
- Periksa closure. Apakah setiap hasil tetap berada di himpunan dan bentuk yang dimaksudkan?
- Periksa jaminan yang diperlukan. Apakah digunakan invers, langkah distributif, atau pertukaran komutatif? Identifikasi aturan yang melegitimasinya.
- Periksa perilaku mesin. Cari pembulatan, overflow,
nan,inf, dan perbandingan yang sensitif terhadap toleransi.
Audit ini mengubah “rumus seharusnya bekerja” menjadi klaim yang dapat diuji. Pelajaran berikutnya memakai gagasan yang sama untuk menentukan apakah sekumpulan representasi merupakan ruang vektor. Di sana, closure terhadap penjumlahan vektor dan perkalian skalar akan menjadi uji utama.
Uji pemahaman
Pertanyaan 1
Mengapa closure selalu dinyatakan relatif terhadap operasi tertentu?
Tampilkan solusi langkah demi langkah
Closure menanyakan apakah hasil dari satu operasi yang disebutkan tetap berada di dalam himpunan. Sebagai contoh, tertutup terhadap penjumlahan karena tetap berada di dalam himpunan, tetapi tidak tertutup terhadap pengurangan karena keluar. Himpunannya tidak berubah; operasinya yang berbeda.
Pertanyaan 2
Apakah (N₀, +) membentuk group? Identifikasi aturan group pertama yang gagal.
Tampilkan solusi langkah demi langkah
Himpunan tersebut tertutup terhadap penjumlahan, asosiatif, dan memiliki identitas . Masalahnya adalah aturan invers: invers dari di bawah penjumlahan adalah , tetapi . Karena itu struktur tersebut bukan group, walaupun beberapa aturan group lainnya terpenuhi.
Pertanyaan 3
Mengapa Z adalah ring tetapi bukan field di bawah penjumlahan dan perkalian biasa?
Tampilkan solusi langkah demi langkah
Pertama, adalah group aditif: setiap bilangan bulat memiliki lawan bilangan bulat, dan penjumlahan asosiatif dengan identitas . Perkalian bilangan bulat tertutup dan asosiatif, memiliki identitas , serta distributif terhadap penjumlahan, sehingga aturan ring terpenuhi. Field juga mengharuskan setiap bilangan bulat tak nol memiliki kebalikan bilangan bulat. Karena , syarat field gagal.
Pertanyaan 4
Dalam aritmetika modulo 5, apa invers perkalian dari 4, dan bagaimana cara memverifikasinya?
Tampilkan solusi langkah demi langkah
Uji residu tak nol sampai sebuah hasil kali kongruen dengan . Karena dan , invers dari 4 modulo 5 adalah 4. Verifikasinya adalah hasil kali lalu mengurangi hasilnya berdasarkan modulus.
Pertanyaan 5
Untuk x = [2, -1]ᵀ, y = [1, 3]ᵀ, dan λ = 1.5, hitung λ(x + y) dan λx + λy.
Tampilkan solusi langkah demi langkah
Jumlahkan terlebih dahulu: . Penskalakan memberikan . Secara terpisah, dan . Menjumlahkan kedua vektor itu juga menghasilkan , yang memverifikasi distributivitas untuk contoh ini.
Pertanyaan 6
Program NumPy menggunakan A * x ketika derivasi membutuhkan A @ x. Apa yang harus diperiksa sebelum menerima hasilnya?
Tampilkan solusi langkah demi langkah
Periksa operasi yang dimaksudkan dan bentuknya. Di NumPy, * mengalikan entri satu per satu, mungkin dengan broadcasting, sedangkan @ melakukan perkalian matriks dan membutuhkan dimensi dalam yang kompatibel. Karena itu, hasil yang berhasil melalui broadcasting dapat benar secara numerik tetapi salah secara semantik. Bandingkan kode dengan persamaan model dan periksa apakah bentuk output sesuai dengan vektor atau matriks hasil derivasi.
Pertanyaan 7
Mengapa identitas tensor bernilai real dapat berbeda pada bit terakhir meskipun aljabarnya valid di atas R?
Tampilkan solusi langkah demi langkah
Derivasi memperlakukan entri sebagai bilangan real yang eksak, tetapi dtype floating point mesin menyimpan pendekatan yang dibatasi dan dibulatkan. Nilai desimal seperti 0.1 mungkin sudah tidak eksak sejak awal, dan urutan evaluasi yang berbeda dapat membulatkan pada langkah yang berbeda. Identitasnya tetap valid secara matematis; implementasi sebaiknya membandingkan hasil dengan toleransi yang mempertimbangkan skala, memantau nan dan inf, serta tidak menganggap perbedaan pada level bit sebagai kegagalan aljabar.