Kursus Matematika untuk AI · Pelajaran 28 dari 180
Subruang untuk AI: Menguji Keluarga Fitur Terbatas
Pelajari uji subruang, buktikan bahwa bidang tertutup terhadap operasi vektor, dan gunakan NumPy untuk memeriksa arah representasi berdimensi lebih rendah.
Encoder dapat menghasilkan ratusan koordinat untuk setiap masukan, meskipun representasi di sekitarnya hanya bergerak ke beberapa arah yang selaras. Untuk memahami pembatasan itu, sekumpulan titik saja tidak cukup. Kita memerlukan himpunan yang tetap valid ketika arahnya dijumlahkan dan diskalakan.
Himpunan itu disebut subruang vektor. Setelah pelajaran ini, Anda dapat melakukan uji subruang, membuktikan bahwa bidang yang melalui titik asal lolos uji, menolak contoh tandingan yang tampak meyakinkan, serta menafsirkan model linear berdimensi lebih rendah untuk offset representasi yang dipelajari.
Hasil belajar: Menguji syarat subruang dan menafsirkan wilayah berdimensi lebih rendah.
Pelajaran 27: Ruang vektor menentukan representasi yang sah menetapkan aturan ruang induk untuk penjumlahan vektor dan perkalian skalar. Subruang mempertahankan operasi yang sama, tetapi mempersempit vektor yang diizinkan. Situs pendamping resmi Mathematics for Machine Learning membahas subruang vektor pada Bagian 2.4.3 dalam PDF buku. Skenario representasi, perhitungan, kode, visual, dan asesmen di bawah ini merupakan karya orisinal.
Pembatasan harus tetap berlaku setelah operasi
Misalkan ruang vektor induk adalah , dan adalah himpunan kandidat. Menyebut subruang berarti vektor tetap berada di dalam saat menggunakan penjumlahan dan perkalian skalar yang telah didefinisikan pada . Ruang induk menyediakan operasinya; himpunan bagian harus membuktikan bahwa ia tertutup terhadap operasi tersebut.
Pemeriksaan vektor nol cepat dan menentukan. Setiap subruang harus memuat nol karena ketertutupan skalar mensyaratkan untuk setiap . Ketertutupan penjumlahan berarti dua arah yang diizinkan dapat digabungkan. Ketertutupan skalar berarti arah yang diizinkan tetap diizinkan saat diperbesar, diperkecil, dibalik, atau dijadikan nol.
Uji kombinasi linear yang ringkas merangkum semua syarat itu. Ambil untuk memperoleh penjumlahan, ambil untuk memperoleh perkalian skalar, dan jadikan kedua koefisien nol untuk memperoleh vektor nol. Operasi kombinasi linear ini sama dengan yang diperkenalkan pada Pelajaran 17, kini digunakan untuk menguji keanggotaan seluruh keluarga vektor.
Contoh: bidang yang melalui titik asal
Perhatikan himpunan
Persamaan ini membatasi tiga koordinat yang ditampilkan dengan satu relasi. Pilih dan secara bebas; maka . Jadi, setiap vektor dalam berbentuk
Dua bilangan, dan , menentukan ketiga koordinat. Secara geometris, hasilnya adalah bidang di dalam ruang tiga dimensi. Bidang itu melalui titik asal karena menghasilkan $(0,0,0).
Sekarang lakukan setiap bagian uji. Tuliskan dua anggota sembarang sebagai
Jumlah keduanya adalah
Koordinat ketiga sama dengan jumlah dua koordinat pertama: . Jadi, . Perkalian dengan sembarang real menghasilkan
yang juga memenuhi persamaan definisinya. Bersama pemeriksaan vektor nol, ini membuktikan bahwa adalah subruang .
Peta bidang dalam ruang
Subruang mempertahankan setiap kombinasi linear pada bidang
Bidang biru memuat titik asal dan setiap vektor yang koordinat ketiganya sama dengan jumlah dua koordinat pertama. Panah utuh tetap pada bidang; panah putus-putus tidak memenuhi persamaan.
| Vektor | Koordinat | Uji keanggotaan | Hasil |
|---|---|---|---|
| u | [1, 0, 1] | 1 = 1 + 0 | Di dalam U |
| v | [0, 1, 1] | 1 = 0 + 1 | Di dalam U |
| u − v | [1, −1, 0] | 0 = 1 + (−1) | Di dalam U |
| r | [1, 0, 0] | 0 ≠ 1 + 0 | Di luar U |
Gambar menyarankan hasil, sedangkan aljabar membuktikannya: gambar hanya dapat menunjukkan beberapa panah, tetapi ketertutupan harus berlaku untuk setiap pasangan vektor dan setiap koefisien real.
Diagram ini menjawab pertanyaan geometris: “Ke mana fitur-fitur ini dapat bergerak?” Bidang tersebut berdimensi lebih rendah daripada ruang induknya karena satu koordinat ditentukan oleh dua koordinat lainnya. Namun, pembuktian lebih penting daripada gambar perspektif. Beberapa panah yang berakhir di bidang tidak dapat membuktikan ketertutupan untuk tak terhingga banyak vektor yang mungkin.
Tiga himpunan menarik yang gagal
Subruang adalah himpunan bagian yang istimewa. Bentuk, simetri, dan tampilan datar saja tidak cukup.
Pertama, geser bidang contoh sejauh satu satuan:
Ini tetap merupakan bidang datar, tetapi gagal memenuhi persamaan karena . Jadi, bukan subruang vektor. Perkalian skalar juga memperlihatkan masalahnya: jika , maka umumnya memenuhi , bukan persamaan yang mendefinisikan .
Kedua, vektor dengan panjang satu tidak membentuk subruang. Embedding ternormalisasi dapat memenuhi , sedangkan panjang adalah dan panjang adalah . Himpunan ini tidak tertutup terhadap perkalian skalar dan tidak memuat vektor nol. Karena itu, embedding ternormalisasi yang dibahas pada Pelajaran 27 dapat berguna sebagai masukan model tanpa membentuk ruang vektor atau subruang.
Ketiga, kumpulan data berhingga biasanya bukan subruang. Meskipun setiap representasi yang tercatat memenuhi , baris yang tersimpan belum tentu mencakup jumlah, negatif, atau semua perkalian skalar realnya. Keluarga yang didefinisikan oleh kendala adalah subruang; sampel berhingga yang digunakan untuk menemukan atau mengestimasinya hanyalah himpunan bagian dari .
NumPy dapat memeriksa contoh, bukan menggantikan pembuktian
Untuk bidang contoh, simpan kedua arah pembangkit sebagai baris. Setiap baris coefficients memberi tahu NumPy berapa banyak dari tiap arah yang harus digabungkan:
import numpy as np
directions = np.array([
[1.0, 0.0, 1.0],
[0.0, 1.0, 1.0],
])
coefficients = np.array([
[2.0, -1.0],
[-1.0, 3.0],
[0.5, 0.25],
])
offsets = coefficients @ directions
constraint = np.array([1.0, 1.0, -1.0])
constraint_residuals = offsets @ constraint
print(offsets)
print(constraint_residuals)
print(np.allclose(
constraint_residuals,
0.0,
rtol=0.0,
atol=1e-12,
))
Keluaran adalah
[[ 2. -1. 1. ]
[-1. 3. 2. ]
[ 0.5 0.25 0.75]]
[0. 0. 0.]
True
@ pertama membentuk tiga kombinasi linear. @ kedua menghitung untuk setiap hasil. Dokumentasi NumPy matmul menjelaskan aturan bentuk yang diterapkan oleh @; di sini, matriks koefisien dikalikan matriks arah menghasilkan tiga vektor dalam .
Contoh eksak ini menghasilkan nol, tetapi aktivasi model nyata menggunakan aritmetika presisi terbatas. Dokumentasi NumPy allclose menjelaskan perbandingan toleransi dan memperingatkan bahwa toleransi absolut bawaannya mungkin tidak sesuai untuk nilai yang jauh lebih kecil dari satu. Menetapkan rtol=0.0 dan memilih atol secara eksplisit memperjelas uji nol yang dimaksud. Toleransi tetap harus sesuai dengan skala aktivasi dan galat yang dapat diterima aplikasi; 1e-12 sesuai untuk contoh float64 yang dibuat ini, bukan ambang universal.
Program ini memeriksa vektor yang dipilih terhadap kendala yang diketahui. Program ini tidak membuktikan bahwa sembarang kumpulan aktivasi model berada pada bidang tersebut. Klaim yang lebih luas itu memerlukan model yang telah di-fit, analisis residual, dan bukti bahwa pendekatan linear yang dipilih memadai untuk wilayah yang diteliti.
Manifold representasi biasanya hanya datar secara lokal
Misalkan encoder memetakan masukan ke representasi . Pilih representasi jangkar dan amati offset di sekitarnya
Jika offset tersebut dapat didekati dengan baik oleh kombinasi sejumlah kecil arah, subruang memberikan model linear lokal yang berguna. Dalam koordinat asli, pendekatan tersebut adalah himpunan bergeser
Keluarga offset melalui titik nol. Potongan representasi yang bergeser melalui dan umumnya bukan subruang . Pemusatanlah yang memisahkan arah yang sah dari lokasi absolut.
Sudut pandang ini merupakan pendekatan, bukan klaim bahwa setiap representasi yang dipelajari berada pada satu bidang global. Dalam makalah utama Yoshua Bengio tentang representasi mendalam, manifold learning dijelaskan sebagai pencarian wilayah berdimensi rendah dengan kepadatan tinggi beserta sistem koordinatnya. Makalah tersebut menyajikan PCA sebagai pendahulu linear manifold learning dan menjelaskan pula mengapa asumsi linear global dapat melewatkan struktur melengkung. Secara lokal, bidang dapat merangkum arah yang berubah di sekitar satu jangkar; lebih jauh, arah yang berguna dapat berputar atau galat pendekatan dapat membesar.
Bagi praktisi AI, hal ini menghasilkan aturan interpretasi yang konkret:
- subruang menggambarkan keluarga offset yang diizinkan dan tertutup terhadap pencampuran serta penskalaan;
- bidang bergeser menggambarkan kemungkinan representasi di dekat jangkar; dan
- manifold representasi melengkung mungkin memerlukan bidang lokal berbeda di lingkungan yang berbeda.
Uji subruang memberi tahu apakah objek linear itu konsisten secara internal. Uji tersebut tidak memberi tahu apakah objek itu cocok dengan data, menangkap fitur kausal, atau mempertahankan informasi yang dibutuhkan tugas lanjutan.
Kasus batas mempertajam pengujian
Ada dua subruang yang mudah terlewat. Himpunan yang hanya memuat vektor nol, , memenuhi semua syarat: nol ditambah nol tetap nol, dan setiap skalar dikalikan nol menghasilkan nol. Seluruh ruang induk juga merupakan subruang dari dirinya sendiri. Keduanya disebut subruang trivial, tetapi berguna sebagai kasus batas saat memeriksa argumen.
Himpunan kosong gagal karena tidak memuat nol. Himpunan yang hanya berisi satu vektor tak nol, , juga gagal pada bilangan real: tidak berada di dalamnya kecuali jika . Sebaliknya, seluruh garis lolos karena mencakup setiap perkalian real, jumlahnya, dan nol.
Subruang memberikan bahasa yang tepat untuk keluarga fitur terbatas. Setelah suatu himpunan lolos uji, setiap kombinasi linear tetap sah. Pelajaran berikutnya mengajukan pertanyaan berbeda tentang arah yang digunakan untuk mendeskripsikan himpunan itu: apakah sebagian di antaranya redundan.
Periksa pemahaman
Pertanyaan 1
Apa tiga syarat yang harus dipenuhi himpunan bagian tak kosong U dari ruang vektor real agar menjadi subruang?
Tampilkan solusi langkah demi langkah
Pertama, pastikan . Kedua, ambil sembarang dan tunjukkan bahwa . Ketiga, ambil skalar real dan sembarang, lalu tunjukkan bahwa . Vektor dan skalarnya harus sembarang karena memeriksa beberapa contoh tidak membuktikan ketertutupan seluruh himpunan.
Pertanyaan 2
Gunakan uji ringkas untuk menunjukkan bahwa U = {(a, b, a + b): a, b real} tertutup terhadap kombinasi linear.
Tampilkan solusi langkah demi langkah
Pilih dan dalam , dengan dan real. Maka
Koordinat ketiga sama dengan jumlah dua koordinat pertama. Jadi, hasilnya berbentuk sesuai syarat dan termasuk dalam . Karena tak kosong, uji ringkas juga memastikan bahwa vektor nol termasuk di dalamnya.
Pertanyaan 3
Untuk u = (2, -1, 1) dan v = (-1, 3, 2), hitung -u + 2v lalu uji apakah hasilnya berada pada bidang dalam pelajaran ini.
Tampilkan solusi langkah demi langkah
Lakukan penskalaan terlebih dahulu: dan . Jumlahnya adalah . Persamaan keanggotaannya adalah ; di sini . Persamaan itu terpenuhi, jadi hasilnya berada pada bidang, sesuai prediksi ketertutupan.
Pertanyaan 4
Mengapa bidang bergeser W = {x in R^3: x_3 = x_1 + x_2 + 1} langsung gagal dalam uji subruang?
Tampilkan solusi langkah demi langkah
Uji vektor nol sebelum melakukan perhitungan lebih panjang. Substitusi menghasilkan , yang salah, sehingga . Setiap subruang vektor harus memuat nol; jadi bukan subruang. Konstanta tambahan menggeser bidang menjauhi titik asal.
Pertanyaan 5
Apakah semua vektor embedding dengan panjang satu membentuk subruang? Tunjukkan operasi yang gagal.
Tampilkan solusi langkah demi langkah
Tidak. Misalkan panjang satu, sehingga . Ketertutupan skalar mensyaratkan dan tetap berada dalam himpunan. Panjangnya masing-masing 2 dan 0, jadi keduanya tidak memiliki panjang satu. Himpunan itu juga tidak memuat vektor nol. Normalisasi berguna, tetapi keluarga keluarannya bukan subruang vektor.
Pertanyaan 6
Kode NumPy melaporkan residual kendala [0, 0, 0]. Apa yang telah dibuktikan, dan apa yang belum terbukti?
Tampilkan solusi langkah demi langkah
Ini membuktikan bahwa tiga offset yang dibangun memenuhi hingga toleransi numerik yang dipilih. Ini juga memeriksa bentuk matriks dan aritmetika untuk contoh tersebut. Namun, ini tidak membuktikan bahwa setiap aktivasi model nyata berada pada bidang ini, bahwa bidang tersebut cocok dengan baik pada dataset yang lebih besar, atau bahwa arah yang direpresentasikan penting bagi tugas lanjutan. Klaim empiris tersebut memerlukan bukti tambahan.
Pertanyaan 7
Mengapa kita mengurangi jangkar h_0 sebelum memodelkan representasi di sekitarnya dengan subruang U?
Tampilkan solusi langkah demi langkah
Subruang menjelaskan arah dan harus melalui titik nol. Representasi di sekitar biasanya mengelompok di sekitar jangkar tak nol . Mengurangkannya menghasilkan offset , yang vektor nolnya berarti “tidak bergerak dari jangkar”. Kita dapat memodelkan offset tersebut dengan , lalu menambahkan kembali jangkar untuk memperoleh potongan lokal bergeser .
Pertanyaan 8
Klasifikasikan himpunan sebagai subruang R^3 atau bukan: {0}, R^3, himpunan kosong, dan {lambda u: lambda real} untuk u tetap tak nol.
Tampilkan solusi langkah demi langkah
adalah subruang karena penjumlahan dan perkalian skalar tidak pernah meninggalkan nol. adalah subruang dari dirinya sendiri karena operasi vektornya tertutup. Himpunan kosong bukan subruang karena tidak memiliki nol. Terakhir, adalah subruang: nol muncul saat , penskalaan hanya mengubah koefisien, dan penjumlahan tetap berada dalam himpunan yang sama.