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.

Bagikan artikel ini

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 V=R3V=\mathbb{R}^3, dan U⊆VU\subseteq V adalah himpunan kandidat. Menyebut UU subruang berarti vektor tetap berada di dalam UU saat menggunakan penjumlahan dan perkalian skalar yang telah didefinisikan pada VV. 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 0u=00u=0 untuk setiap u∈Uu\in U. 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 α=β=1\alpha=\beta=1 untuk memperoleh penjumlahan, ambil β=0\beta=0 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

U={[x1x2x3]∈R3:x3=x1+x2}.U=\left\{ \begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}\in\mathbb{R}^3 :x_3=x_1+x_2 \right\}.

Persamaan ini membatasi tiga koordinat yang ditampilkan dengan satu relasi. Pilih x1=ax_1=a dan x2=bx_2=b secara bebas; maka x3=a+bx_3=a+b. Jadi, setiap vektor dalam UU berbentuk

[aba+b]=a[101]+b[011].\begin{bmatrix}a\\b\\a+b\end{bmatrix} =a\begin{bmatrix}1\\0\\1\end{bmatrix} +b\begin{bmatrix}0\\1\\1\end{bmatrix}.

Dua bilangan, aa dan bb, menentukan ketiga koordinat. Secara geometris, hasilnya adalah bidang di dalam ruang tiga dimensi. Bidang itu melalui titik asal karena a=b=0a=b=0 menghasilkan $(0,0,0).

Sekarang lakukan setiap bagian uji. Tuliskan dua anggota sembarang sebagai

u=[aba+b],v=[cdc+d].u=\begin{bmatrix}a\\b\\a+b\end{bmatrix}, \qquad v=\begin{bmatrix}c\\d\\c+d\end{bmatrix}.

Jumlah keduanya adalah

u+v=[a+cb+da+b+c+d].u+v =\begin{bmatrix}a+c\\b+d\\a+b+c+d\end{bmatrix}.

Koordinat ketiga sama dengan jumlah dua koordinat pertama: (a+c)+(b+d)=a+b+c+d(a+c)+(b+d)=a+b+c+d. Jadi, u+v∈Uu+v\in U. Perkalian uu dengan sembarang λ\lambda real menghasilkan

λu=[λaλbλ(a+b)]=[λaλbλa+λb],\lambda u =\begin{bmatrix}\lambda a\\\lambda b\\\lambda(a+b)\end{bmatrix} =\begin{bmatrix}\lambda a\\\lambda b\\\lambda a+\lambda b\end{bmatrix},

yang juga memenuhi persamaan definisinya. Bersama pemeriksaan vektor nol, ini membuktikan bahwa UU adalah subruang R3\mathbb{R}^3.

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.

Subruang bidang di dalam ruang koordinat tiga dimensiBidang biru melalui titik asal menunjukkan himpunan x tiga sama dengan x satu ditambah x dua. Vektor u, v, dan u dikurangi v berada pada bidang. Vektor r putus-putus berakhir di luar bidang dan dihubungkan ke titik pasangannya pada bidang dengan celah putus-putus.U: x₃ = x₁ + x₂u = [1, 0, 1]v = [0, 1, 1]u − v = [1, −1, 0]r = [1, 0, 0]gagal memenuhi 0 = 1 + 00
Bidang ini hanya memerlukan dua koordinat yang dipilih bebas meskipun vektornya ditulis dengan tiga koordinat. Melewati nol dan tertutup terhadap penjumlahan serta perkalian skalar menjadikannya subruang.
Pemeriksaan koordinat pada diagram bidang
VektorKoordinatUji keanggotaanHasil
u[1, 0, 1]1 = 1 + 0Di dalam U
v[0, 1, 1]1 = 0 + 1Di dalam U
u − v[1, −1, 0]0 = 1 + (−1)Di dalam U
r[1, 0, 0]0 ≠ 1 + 0Di 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:

W={x∈R3:x3=x1+x2+1}.W=\{x\in\mathbb{R}^3:x_3=x_1+x_2+1\}.

Ini tetap merupakan bidang datar, tetapi (0,0,0)(0,0,0) gagal memenuhi persamaan karena 0≠0+0+10\neq0+0+1. Jadi, WW bukan subruang vektor. Perkalian skalar juga memperlihatkan masalahnya: jika w∈Ww\in W, maka 2w2w umumnya memenuhi x3=x1+x2+2x_3=x_1+x_2+2, bukan persamaan yang mendefinisikan WW.

Kedua, vektor dengan panjang satu tidak membentuk subruang. Embedding ternormalisasi ee dapat memenuhi ∥e∥=1\lVert e\rVert=1, sedangkan panjang 2e2e adalah 22 dan panjang 0e0e adalah 00. 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 x3=x1+x2x_3=x_1+x_2, baris yang tersimpan belum tentu mencakup jumlah, negatif, atau semua perkalian skalar realnya. Keluarga yang didefinisikan oleh kendala UU adalah subruang; sampel berhingga yang digunakan untuk menemukan atau mengestimasinya hanyalah himpunan bagian dari UU.

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 x1+x2−x3x_1+x_2-x_3 untuk setiap hasil. Dokumentasi NumPy matmul menjelaskan aturan bentuk yang diterapkan oleh @; di sini, matriks koefisien 3×23\times2 dikalikan matriks arah 2×32\times3 menghasilkan tiga vektor dalam R3\mathbb{R}^3.

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 xx ke representasi h(x)∈Rdh(x)\in\mathbb{R}^d. Pilih representasi jangkar h0h_0 dan amati offset di sekitarnya

Δh=h(x)−h0.\Delta h=h(x)-h_0.

Jika offset tersebut dapat didekati dengan baik oleh kombinasi sejumlah kecil arah, subruang UU memberikan model linear lokal yang berguna. Dalam koordinat asli, pendekatan tersebut adalah himpunan bergeser

h0+U={h0+u:u∈U}.h_0+U=\{h_0+u:u\in U\}.

Keluarga offset UU melalui titik nol. Potongan representasi yang bergeser h0+Uh_0+U melalui h0h_0 dan umumnya bukan subruang Rd\mathbb{R}^d. 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, {0}\{0\}, memenuhi semua syarat: nol ditambah nol tetap nol, dan setiap skalar dikalikan nol menghasilkan nol. Seluruh ruang induk VV 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, {u}\{u\}, juga gagal pada bilangan real: 2u2u tidak berada di dalamnya kecuali jika u=0u=0. Sebaliknya, seluruh garis {λu:λ∈R}\{\lambda u:\lambda\in\mathbb{R}\} 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 0∈U0\in U. Kedua, ambil u,v∈Uu,v\in U sembarang dan tunjukkan bahwa u+v∈Uu+v\in U. Ketiga, ambil skalar real λ\lambda dan u∈Uu\in U sembarang, lalu tunjukkan bahwa λu∈U\lambda u\in U. 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 u=(a,b,a+b)u=(a,b,a+b) dan v=(c,d,c+d)v=(c,d,c+d) dalam UU, dengan α\alpha dan β\beta real. Maka

αu+βv=(αa+βc,  αb+βd,  α(a+b)+β(c+d)).\alpha u+\beta v =(\alpha a+\beta c,\;\alpha b+\beta d,\; \alpha(a+b)+\beta(c+d)).

Koordinat ketiga sama dengan jumlah dua koordinat pertama. Jadi, hasilnya berbentuk sesuai syarat dan termasuk dalam UU. Karena UU 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: −u=(−2,1,−1)-u=(-2,1,-1) dan 2v=(−2,6,4)2v=(-2,6,4). Jumlahnya adalah −u+2v=(−4,7,3)-u+2v=(-4,7,3). Persamaan keanggotaannya adalah x3=x1+x2x_3=x_1+x_2; di sini 3=−4+73=-4+7. 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 0=0+0+10=0+0+1, yang salah, sehingga 0∉W0\notin W. Setiap subruang vektor harus memuat nol; jadi WW 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 ee satu, sehingga ∥e∥=1\lVert e\rVert=1. Ketertutupan skalar mensyaratkan 2e2e dan 0e0e 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 x1+x2−x3=0x_1+x_2-x_3=0 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 h0h_0. Mengurangkannya menghasilkan offset Δh=h(x)−h0\Delta h=h(x)-h_0, yang vektor nolnya berarti “tidak bergerak dari jangkar”. Kita dapat memodelkan offset tersebut dengan UU, lalu menambahkan kembali jangkar untuk memperoleh potongan lokal bergeser h0+Uh_0+U.

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

{0}\{0\} adalah subruang karena penjumlahan dan perkalian skalar tidak pernah meninggalkan nol. R3\mathbb{R}^3 adalah subruang dari dirinya sendiri karena operasi vektornya tertutup. Himpunan kosong bukan subruang karena tidak memiliki nol. Terakhir, {λu:λ∈R}\{\lambda u:\lambda\in\mathbb{R}\} adalah subruang: nol muncul saat λ=0\lambda=0, penskalaan hanya mengubah koefisien, dan penjumlahan λu+μu=(λ+μ)u\lambda u+\mu u=(\lambda+\mu)u tetap berada dalam himpunan yang sama.

Sumber

  1. Mathematics for Machine Learning companion website
  2. Mathematics for Machine Learning book PDF
  3. NumPy documentation: numpy.matmul
  4. NumPy documentation: numpy.allclose
  5. Deep Learning of Representations