Kursus Matematika untuk AI · Pelajaran 39 dari 180
Norma Vektor Mengukur Besar, Bukan Makna
Hitung norma vektor L1, L2, dan L-infinity, periksa aturan definisinya, serta pahami apa yang dapat dan tidak dapat disimpulkan dari magnitudo sebuah embedding.
Dua vektor embedding dapat menunjuk ke arah yang sama tetapi memiliki magnitudo berbeda. Misalnya, dan adalah kelipatan satu sama lain: vektor kedua dua kali lebih panjang. Norma mengubah vektor menjadi bilangan tak negatif yang merangkum besarnya menurut aturan tertentu. Bilangan itu dapat membantu membandingkan skala atau menjelaskan penalti parameter, tetapi tidak menentukan seberapa bermakna sebuah embedding.
Setelah mempelajari materi ini, Anda akan dapat menghitung norma vektor , , dan , memeriksa sifat-sifat yang menjadikan suatu fungsi sebagai norma, serta menggunakan NumPy untuk menghitung besar vektor tanpa keliru menganggap sekumpulan vektor sebagai satu matriks.
Capaian pembelajaran: Menghitung norma vektor yang umum dan memeriksa sifat-sifat norma.
Materi ini melanjutkan Pelajaran 014: Vektor sebagai Data AI, yang membahas koordinat sebagai fitur dalam urutan tetap. Bagian 3.1 dari Mathematics for Machine Learning memperkenalkan norma sebagai cara mengukur panjang vektor. Contoh, kode, visual, dan asesmen di sini dibuat khusus untuk materi ini.
Norma adalah aturan besar dengan tiga janji
Misalkan dan adalah vektor di , dan adalah bilangan real sembarang. Fungsi disebut norma vektor jika memenuhi ketiga aturan berikut:
Aturan pertama menyatakan bahwa besar sebuah vektor tidak mungkin negatif dan hanya vektor nol yang besarnya nol. Aturan kedua berarti mengalikan vektor dengan bilangan negatif tetap mengalikan besarnya dengan nilai mutlak skalar tersebut. Aturan ketiga menyatakan bahwa hasil penjumlahan dua vektor tidak mungkin lebih besar daripada jumlah besar masing-masing vektor.
Tiga aturan umum untuk satu vektor yang sama
Untuk , norma yang umum digunakan adalah
Subskrip menunjukkan aturan yang digunakan. menjumlahkan besar absolut setiap koordinat, menggunakan panjang Euclidean yang lazim, dan mengambil koordinat dengan nilai absolut terbesar. Ketiganya merangkum vektor yang sama dengan cara berbeda; koordinatnya sendiri tidak berubah.
Ambil vektor . Koordinat kedua yang negatif berpengaruh pada operasi tertentu, tetapi semua aturan besar ini memakai nilai absolut atau kuadrat:
Bola satuan Euclidean adalah himpunan vektor dua koordinat yang norma -nya paling besar satu. Titik berada pada batasnya karena .
Bola satuan L₂: ‖x‖₂ ≤ 1
Daerah berarsir menyatakan sebuah aturan, bukan sekadar bentuk: daerah itu memuat titik asal dan setiap vektor yang panjang -nya tidak lebih dari satu. Panjang pada batasnya sama dengan satu. Di dimensi yang lebih tinggi, himpunan yang sama tetap disebut bola meskipun tidak lagi dapat digambar sebagai cakram.
Periksa ketiga janji
Sifat positif definit terlihat langsung dari rumusnya. Jumlah nilai absolut atau jumlah kuadrat hanya dapat bernilai nol jika setiap koordinat bernilai nol. Nilai maksimum dari nilai absolut juga hanya nol jika setiap koordinat nol. Semua rumus bernilai tak negatif dan menghasilkan nol untuk vektor nol.
Untuk sifat homogen absolut, ambil dan kalikan dengan :
Nilai mutlak pada penting. Skalar negatif membalik arah vektor, tetapi tidak membuat panjangnya menjadi negatif.
Ketaksamaan segitiga juga dapat diperiksa dari rumusnya. Untuk , ketaksamaan koordinat berlaku pada setiap koordinat. Menjumlahkan ketaksamaan itu menghasilkan . Untuk , ini adalah fakta geometri yang lazim: satu sisi segitiga tidak lebih panjang daripada jumlah dua sisi lainnya. Untuk ,
Karena itu, setiap norma lolos dari ketiga pemeriksaan. Satu contoh numerik dapat menguji pemahaman Anda terhadap suatu aturan, sedangkan penalaran di atas menjelaskan mengapa aturan itu berlaku untuk semua vektor.
Hitung besar vektor dengan NumPy
NumPy menyediakan perhitungan ini melalui numpy.linalg.norm. Untuk array satu dimensi, tentukan ord untuk memilih norma vektor:
import numpy as np
x = np.array([3.0, -4.0])
print(np.linalg.norm(x, ord=1))
print(np.linalg.norm(x, ord=2))
print(np.linalg.norm(x, ord=np.inf))
Hasilnya adalah 7.0, 5.0, dan 4.0. Jika ord tidak ditentukan untuk array satu dimensi, norma menjadi nilai bawaan.
Tabel embedding sering berupa array dua dimensi dengan satu embedding di setiap baris. Untuk menghitung satu norma bagi setiap embedding, tentukan sumbu baris:
embeddings = np.array([[3.0, 4.0], [6.0, 8.0]])
row_norms = np.linalg.norm(embeddings, ord=2, axis=1)
print(row_norms)
Hasilnya [5. 10.]. Norma vektor kedua dua kali norma vektor pertama, meskipun keduanya menunjuk ke arah yang sama. Jika input dua dimensi tidak diberi axis, NumPy menafsirkannya sebagai matriks; norma matriks berbeda dari perhitungan norma vektor untuk setiap baris. Dokumentasi menjelaskan axis sebagai pilihan dimensi yang menjadi arah perhitungan norma vektor.
Norma vektor menyatakan seberapa besar sebuah representasi menurut aturan koordinat yang dipilih. Norma tidak menyatakan bahwa embedding yang lebih besar lebih relevan, akurat, atau penting secara semantik. Kesimpulan seperti itu memerlukan tugas dan evaluasi yang spesifik terhadap model; magnitudo skalar saja tidak cukup.
Penalti parameter berkaitan dengan norma, tetapi tidak selalu merupakan norma itu sendiri
Sebuah fungsi objektif optimisasi dapat menambahkan suku untuk menghukum vektor parameter yang besar. Misalnya, penalti menambahkan , sedangkan penalti kuadrat menambahkan , dengan sebagai pengatur bobot penalti. Untuk , , sedangkan .
Kuadrat pada ekspresi kedua penting: bukan norma. Sifat homogen norma membuat nilainya berubah sebesar faktor , bukan : . Kedua rumus penalti itu juga memiliki skala numerik berbeda, sehingga memilih yang sama tidak membuat efeknya sebanding. Norma vektor menjelaskan besaran yang diukur oleh penalti; fungsi objektif dan koefisiennya menentukan dampak pengukuran itu terhadap pelatihan.
Ada satu detail perangkat lunak yang perlu diperhatikan. Parameter ord NumPy mendukung nilai di bawah 1 untuk keperluan numerik, tetapi dokumentasinya secara jelas menyatakan bahwa hasil tersebut bukan norma secara matematis. Misalnya, jika , maka dan , sedangkan . Karena , ketaksamaan segitiga gagal. Gunakan ord=0.5 saat memang memerlukan ekspresi numerik tersebut, bukan saat memerlukan norma vektor dengan tiga jaminan di atas.
Setelah memahami ketiga sifat dan perbedaan implementasinya, langkah berikutnya adalah membandingkan geometri yang dihasilkan oleh norma-norma valid yang berbeda, serta bagaimana pilihan itu mengubah pengertian jarak dan batasan.
Uji pemahaman
Question 1
Sebutkan tiga sifat yang harus dipenuhi suatu fungsi agar menjadi norma vektor.
Show the step-by-step solution
Norma bersifat positif definit, homogen absolut, dan memenuhi ketaksamaan segitiga. Positif definit berarti nilainya tidak negatif dan hanya nol pada vektor nol. Homogen absolut mengharuskan . Ketaksamaan segitiga mengharuskan untuk setiap pasangan vektor.
Question 2
Untuk x = (2, −1, 2), hitung norma L₁, L₂, dan L-infinity. Tunjukkan perhitungannya.
Show the step-by-step solution
Untuk , jumlahkan nilai absolut koordinat: . Untuk , akarkan jumlah kuadrat: . Untuk , ambil nilai absolut koordinat terbesar, yaitu . Jadi ketiga nilainya adalah , , dan .
Question 3
Misalkan x = (3, −4). Hitung ketiga norma dari −2x dan periksa sifat homogen absolut untuk masing-masing.
Show the step-by-step solution
Pertama, . Norma -nya adalah , sama dengan . Norma -nya . Norma -nya . Ketiganya sama dengan norma awal dikalikan , jadi skalar negatif mengubah arah tanpa membuat besar vektor menjadi negatif.
Question 4
Untuk u = (1, −2) dan v = (−3, 1), periksa ketaksamaan segitiga L₁ dengan menghitung kedua sisinya.
Show the step-by-step solution
Jumlahkan kedua vektor terlebih dahulu: , sehingga . Secara terpisah, dan , sehingga sisi kanan bernilai . Jadi . Contoh ini memenuhi ketaksamaan; ketaksamaan nilai absolut per koordinat menjelaskan mengapa berlaku untuk setiap pasangan vektor.
Question 5
Mengapa f(x) = (Σᵢ |xᵢ|^(1/2))² bukan norma? Uji pada (1, 0) dan (0, 1).
Show the step-by-step solution
Kedua vektor koordinat itu masing-masing memiliki . Jumlahnya adalah , dengan . Ketaksamaan segitiga akan mensyaratkan , tetapi itu salah. Jadi fungsi ini gagal memenuhi salah satu sifat norma. NumPy mendukung hasil ord < 1 semacam ini untuk perhitungan numerik, tetapi dokumentasinya tidak menyebutnya sebagai norma matematis.
Question 6
Untuk embeddings = [[3, 4], [6, 8]], ekspresi NumPy apa yang menghasilkan satu norma L₂ per baris, dan apa hasilnya?
Show the step-by-step solution
Kedua baris adalah vektor yang terpisah, jadi hitung sepanjang sumbu koordinat baris: np.linalg.norm(embeddings, ord=2, axis=1). Hasil pertama adalah ; hasil kedua . Keluarannya [5. 10.]. Menetapkan axis=1 mencegah seluruh array dua dimensi diperlakukan sebagai satu norma matriks.
Question 7
Untuk w = (3, −4), hitung penalti L₁ dan penalti kuadrat L₂ saat λ = 0.1. Apakah besaran kuadrat L₂ itu sendiri merupakan norma?
Show the step-by-step solution
Penalti adalah . Penalti kuadrat adalah . Besaran kuadrat itu bukan norma: mengalikan dengan membuatnya berubah sebesar faktor , sedangkan homogenitas norma mengharuskan faktor .
Question 8
Embedding (3, 4) dan (6, 8) memiliki norma L₂ masing-masing 5 dan 10. Apa yang dapat ditunjukkan oleh perbandingan ini, dan apa yang tidak dapat disimpulkan tentang maknanya?
Show the step-by-step solution
Perbandingan itu menunjukkan bahwa dalam koordinat yang diberikan, magnitudo Euclidean vektor kedua dua kali vektor pertama. Kedua vektor juga menunjuk ke arah yang sama karena . Normanya saja tidak dapat menunjukkan embedding mana yang lebih relevan atau penting secara semantik; hal itu memerlukan konteks pelatihan model dan evaluasi yang sesuai dengan tugas tertentu.