Kursus Matematika untuk AI · Pelajaran 27 dari 180
Ruang Vektor: Uji Apakah Representasi AI Memenuhi Aturan
Uji vektor nol, ketertutupan penjumlahan, dan perkalian skalar, lalu gunakan embedding ternormalisasi sebagai contoh tandingan yang membedakan himpunan representasi yang berguna dari ruang vektor.
Pipeline embedding dapat memaksa setiap vektor keluaran yang bukan nol memiliki panjang . Ini memudahkan perhitungan kemiripan, tetapi menimbulkan jebakan halus: keluaran yang dinormalisasi tidak membentuk ruang vektor di bawah penjumlahan vektor dan perkalian skalar biasa. Jumlahkan dua keluaran atau ubah skala salah satunya, dan hasilnya dapat keluar dari himpunan yang diizinkan.
Pelajaran ini menjadikan “ruang vektor” sebagai uji, bukan sekadar label. Setelah mempelajarinya, Anda dapat memeriksa vektor nol, ketertutupan penjumlahan dan perkalian skalar; menyusun satu contoh tandingan yang menentukan saat suatu aturan gagal; serta menjelaskan mengapa embedding ternormalisasi berada di dalam ruang vektor ambient tanpa membentuk ruang vektor itu sendiri.
Hasil belajar: Uji apakah suatu himpunan memenuhi aturan ketertutupan ruang vektor.
Pelajaran 17: Kombinasi linear membentuk vektor baru (dalam bahasa Inggris) memperkenalkan operasi . Pelajaran 26: Grup, gelanggang, dan lapangan menjelaskan operasi yang valid (dalam bahasa Inggris) menunjukkan mengapa suatu himpunan dan operasinya harus dipertimbangkan bersama. Bagian 2.4 dari buku resmi Mathematics for Machine Learning merumuskan kombinasi tersebut sebagai ruang vektor. Uji, contoh tandingan embedding, kode, visual, dan penilaian di bawah ini adalah materi orisinal.
Ruang vektor menjamin kombinasi linear tetap berada di dalamnya
Misalkan adalah himpunan yang unsur-unsurnya disebut vektor. Dalam ruang vektor real, tersedia dua operasi:
Operasi pertama menjumlahkan dua vektor. Operasi kedua mengalikan vektor dengan bilangan real, atau skalar. Panah yang berujung di menyatakan ketertutupan: kedua operasi harus menghasilkan anggota lain dari himpunan yang sama.
Ketertutupan saja belum merupakan definisi lengkap. Penjumlahan vektor juga harus memiliki vektor nol dan invers aditif; penjumlahan harus asosiatif dan komutatif; perkalian skalar harus memenuhi sifat asosiatif yang sesuai; serta aturan distributif dan identitas yang biasa harus berlaku.
Aturan untuk setiap skalar cukup ketat. Himpunan yang tetap tertutup saat dikalikan tetapi gagal untuk , atau tertutup untuk skalar positif tetapi gagal untuk , bukan ruang vektor real.
Operasi warisan menyederhanakan pengujian
Sebagian besar pertanyaan praktis dimulai dengan himpunan kandidat yang menggunakan penjumlahan dan perkalian skalar biasa yang telah didefinisikan di . Hukum aljabarnya diwarisi dari ruang ambient. Tugas yang tersisa adalah menentukan apakah hasil operasi pernah keluar dari .
Ada ketidaksimetrian penting dalam penggunaan uji ini:
- Untuk membuktikan adalah ruang vektor, argumen ketertutupan harus mencakup setiap input yang diizinkan.
- Untuk membuktikan bukan ruang vektor, satu contoh tandingan yang valid sudah cukup.
Memeriksa tiga vektor yang mudah dipilih tidak membuktikan ketertutupan universal. Menemukan satu pasangan yang jumlahnya keluar dari himpunan langsung membantahnya.
Contoh kerja: kendala yang tetap berlaku dalam kombinasi
Pertimbangkan himpunan
Setiap vektor di berbentuk . Vektor nol termasuk dalam dengan memilih . Sekarang ambil vektor sembarang
and arbitrary scalars .
Untuk pemeriksaan numerik, pilih , , , dan :
Perhitungan ini menggambarkan aturannya, sedangkan argumen simbolis membuktikannya untuk semua nilai.
Embedding ternormalisasi gagal dalam uji yang sama
Sekarang definisikan himpunan dengan panjang satu
Ini adalah bola satuan dalam ruang vektor ambient . Pustaka embedding dapat sengaja mengembalikan vektor dalam himpunan ini. Sebagai contoh, dokumentasi encode Sentence Transformers saat ini menjelaskan opsi normalize_embeddings yang menormalisasi vektor keluaran hingga panjang .
Dalam dua dimensi, ambil
Keduanya memiliki norma Euclidean , sehingga berada di . Jumlahnya adalah
Karena , jumlahnya berada di luar . Ketertutupan perkalian skalar juga gagal:
Vektor nol menjadi kegagalan ketiga karena normanya , bukan .
Contoh tandingan ketertutupan statis
Lingkaran satuan tidak tertutup terhadap kombinasi linear biasa
Lingkaran biru memuat semua vektor dua dimensi dengan norma Euclidean 1. Vektor satuan bergaris utuh dan putus-putus bermula di dalam himpunan, sedangkan jumlahnya, vektor yang diperbesar, dan vektor nol tidak memenuhi syarat keanggotaan.
| Uji ketertutupan | Input dalam S | Hasil | Norma hasil | Status |
|---|---|---|---|---|
| Penjumlahan | e₁ dan e₂ | e₁ + e₂ = (1, 1) | √2 | Di luar S |
| Perkalian skalar | 2 dan e₁ | 2e₁ = (2, 0) | 2 | Di luar S |
| Vektor nol | Identitas aditif yang diwajibkan | 0 = (0, 0) | 0 | Bukan anggota S |
Satu baris saja cukup untuk membantah bahwa himpunan ini ruang vektor. Ketiga baris menunjukkan persyaratan yang berbeda, sehingga memperbaiki satu kegagalan tidak memperbaiki kegagalan lainnya.
Visual menggunakan karena geometrinya muat dalam satu halaman. Contoh tandingan skalar yang sama berlaku di setiap dimensi: jika , maka . Jadi, embedding yang dinormalisasi satuan di bukan ruang vektor dengan operasi biasa.
Normalisasi ulang mengubah operasinya
Pipeline yang umum menjumlahkan atau merata-ratakan embedding ternormalisasi, lalu menormalisasi hasilnya lagi. Prosedur ini dapat berguna, tetapi normalisasi terakhir adalah operasi nonlinear baru:
dengan syarat penyebutnya bukan nol. Jumlah mentah mula-mula keluar dari bola satuan; normalisasi memetakannya kembali. Memetakan hasil kembali ke tidak membuat tertutup terhadap operasi penjumlahan semula.
Kasus nol penting. Jika , then , dan membaginya dengan norma berarti membagi dengan nol. Implementasi memerlukan kebijakan eksplisit untuk baris nol atau hampir nol.
Dokumentasi linalg.norm NumPy menjelaskan kontrol axis dan keepdims yang digunakan di bawah ini untuk menghitung satu norma per embedding sambil mempertahankan bentuk kolom yang dapat disiarkan (broadcast):
import numpy as np
def normalize_rows(vectors):
vectors = np.asarray(vectors, dtype=float)
norms = np.linalg.norm(vectors, axis=1, keepdims=True)
normalized = np.divide(
vectors,
norms,
out=np.zeros_like(vectors),
where=norms > 0,
)
return normalized
embeddings = np.array([
[3.0, 4.0],
[-4.0, 3.0],
[0.0, 0.0],
])
normalized = normalize_rows(embeddings)
print(normalized)
print(np.linalg.norm(normalized, axis=1))
Keluaran yang dihasilkan adalah
[[ 0.6 0.8]
[-0.8 0.6]
[ 0. 0. ]]
[1. 1. 0.]
Dua baris pertama berada pada lingkaran satuan. Baris nol tetap nol karena fungsi ini sengaja menggunakan nol sebagai nilai cadangan teknis. Nilai cadangan itu termasuk dalam tetapi tidak dalam , jadi pemanggil tidak boleh menyatakan bahwa setiap keluaran memiliki norma satu.
Pemeriksaan ketertutupan yang andal meninjau operasi yang sebenarnya
Saat deskripsi model menyebut kumpulan representasi sebagai “ruang”, kenali himpunan dan operasinya sebelum mengasumsikan adanya struktur linear. Embedding mentah dapat berada di . Embedding ternormalisasi satuan berada pada bola. Vektor probabilitas dengan koordinat nonnegatif yang berjumlah berada dalam himpunan terbatas lain. Masing-masing dapat mendukung algoritma yang berguna, tetapi penjumlahan biasa dan perkalian dengan sembarang skalar real belum tentu mempertahankan hasil di dalam himpunan.
Pelajaran berikutnya membahas subruang: subset terbatas yang lolos uji ketertutupan sehingga mempertahankan struktur linear ambient. Sebelum melanjutkan, gunakan pertanyaan di bawah untuk berlatih membuktikan ketertutupan universal dan menemukan kegagalan yang menentukan.
Periksa pemahaman Anda
Pertanyaan 1
Untuk subset tak kosong dari Rⁿ dengan operasi vektor biasa, tiga pemeriksaan keanggotaan apa yang memastikan bahwa subset itu merupakan ruang vektor?
Tampilkan solusi langkah demi langkah
Pertama, periksa apakah vektor nol termasuk dalam himpunan. Kedua, pilih dan sembarang di himpunan, lalu buktikan bahwa tetap berada di dalamnya. Ketiga, pilih skalar real dan sembarang di himpunan, lalu buktikan bahwa tetap berada di dalamnya. Hukum ruang vektor lainnya diwarisi dari .
Pertanyaan 2
Tunjukkan bahwa U = {(t, −t): t ∈ R} tertutup terhadap kombinasi linear a u + b v.
Tampilkan solusi langkah demi langkah
Ambil dan sembarang di , dengan dan real sembarang. Maka
Tetapkan . Hasilnya adalah , sesuai dengan bentuk definisi . Karena input dan skalarnya sembarang, ini membuktikan ketertutupan dan bukan sekadar memeriksa satu contoh.
Pertanyaan 3
Gunakan e₁ = (1, 0) dan e₂ = (0, 1) untuk membantah ketertutupan penjumlahan vektor ternormalisasi satuan.
Tampilkan solusi langkah demi langkah
Kedua input memiliki norma , sehingga keduanya termasuk dalam himpunan ternormalisasi satuan. Jumlahnya dengan norma , bukan . Jadi dua anggota yang valid menghasilkan keluaran di luar himpunan. Satu pasangan seperti ini membantah ketertutupan penjumlahan.
Pertanyaan 4
Apakah mengalikan setiap vektor satuan dengan −1 membantah ketertutupan skalar? Jika tidak, pilih skalar yang membantahnya.
Tampilkan solusi langkah demi langkah
Tidak. Jika , maka , sehingga skalar mempertahankan setiap vektor satuan pada bola. Namun, ketertutupan skalar harus berlaku untuk setiap skalar real. Dengan memilih , diperoleh , sehingga berada di luar bola satuan dan membantah ketertutupan.
Pertanyaan 5
Mengapa normalisasi baris harus menangani vektor nol secara eksplisit?
Tampilkan solusi langkah demi langkah
Rumus biasa membagi dengan . Untuk , normanya , sehingga rumus meminta pembagian dengan nol dan tidak terdefinisi. Kode harus mendeteksi kasus ini dan memilih kebijakan yang terdokumentasi, misalnya mengembalikan nol, memunculkan galat, atau menyaring baris tersebut. Mengembalikan nol praktis dalam beberapa pipeline, tetapi hasilnya tidak ternormalisasi satuan.
Pertanyaan 6
Sebuah pipeline merata-ratakan dua embedding satuan lalu menormalisasi rata-ratanya. Mengapa hal itu tidak membuktikan bola satuan adalah ruang vektor?
Tampilkan solusi langkah demi langkah
Pertama, hitung rata-rata biasa: . Normanya tidak harus , sehingga kombinasi linear ini dapat keluar dari bola. Pipeline lalu menerapkan pemetaan normalisasi terpisah untuk mengembalikannya ke bola. Uji ketertutupan memeriksa penjumlahan dan perkalian skalar asli; menambahkan langkah perbaikan mengubah operasi yang sedang dikaji.
Pertanyaan 7
Kuadran nonnegatif Q = {(x₁, x₂): x₁ ≥ 0 dan x₂ ≥ 0} memuat nol dan tertutup terhadap penjumlahan. Apakah Q merupakan ruang vektor real?
Tampilkan solusi langkah demi langkah
Bukan. Pilih yang termasuk dalam dan skalar real . Maka , dengan koordinat pertama negatif, sehingga hasilnya berada di luar . Himpunan ini gagal memenuhi ketertutupan skalar meskipun memuat nol dan tertutup terhadap penjumlahan.