Kursus Matematika untuk AI · Pelajaran 40 dari 180

L1, L2, dan L-infinity Memaknai Besar Secara Berbeda

Bandingkan ukuran vektor L1, L2, dan L-infinity, lihat perubahan bentuk bola satuannya, serta bedakan penalti parameter dari batas anggaran ketahanan input.

Bagikan artikel ini

Model dapat peka terhadap perubahan yang tampak kecil di setiap koordinat input. Untuk menjelaskan perubahan tersebut, kita perlu memilih cara mengukur besarnya. Norma L1, L2, dan L-infinity memberikan jawaban yang berbeda—dan bola satuannya menunjukkan alasannya dengan jelas.

Setelah membaca, Anda akan dapat membandingkan norma-norma itu, memahami bentuknya dalam dua dimensi, serta membedakan penalti pada parameter model dari batas perubahan input.

Capaian pembelajaran: Jelaskan bagaimana norma yang berbeda mengubah geometri dan sensitivitas.

Pelajaran 39 (dalam bahasa Inggris) memperkenalkan norma sebagai aturan untuk mengukur vektor. Bagian 3.1 dari buku resmi Mathematics for Machine Learning membahas norma umum dan geometrinya. Contoh, perbandingan, gambar interaktif, dan aplikasi AI di bawah ini merupakan karya orisinal.

Satu vektor, tiga pengukuran

Untuk vektor riil x=(x1,…,xn)x=(x_1,\ldots,x_n), norma L1 menjumlahkan nilai absolut koordinat, norma L2 mengambil akar dari jumlah kuadrat koordinat, sedangkan norma L-infinity mengambil koordinat dengan nilai absolut terbesar:

Ambil x=(3,−4)x=(3,-4). Norma L1-nya adalah ∣3∣+∣−4∣=3+4=7|3|+|-4|=3+4=7. Norma L2-nya 32+(−4)2=9+16=5\sqrt{3^2+(-4)^2}=\sqrt{9+16}=5. Norma L-infinity-nya max⁡(3,4)=4\max(3,4)=4. Vektornya tidak berubah; tiap aturan menyoroti aspek koordinat yang berbeda. L1 mengakumulasi besar semua koordinat, L2 mengukur panjang Euclidean, dan L-infinity melaporkan satu perubahan terbesar.

NumPy dapat menghitung setiap norma vektor dengan mengatur ord secara eksplisit:

import numpy as np

x = np.array([3.0, -4.0])
np.linalg.norm(x, ord=1)      # 7.0
np.linalg.norm(x, ord=2)      # 5.0
np.linalg.norm(x, ord=np.inf) # 4.0

Di sini x berdimensi satu, sehingga ord=2 meminta norma Euclidean-nya. Untuk array dua dimensi, numpy.linalg.norm juga dapat menghitung norma matriks; saat mengolah sekumpulan vektor, tentukan orde norma dan sumbu vektornya. NumPy mendokumentasikan kasus vektor dan matriks ini secara terpisah.

Bola satuan memperjelas pilihan

Bola satuan suatu norma adalah himpunan vektor yang normanya paling besar satu. Dalam dua dimensi, bola satuan L1 berbentuk wajik, bola satuan L2 berbentuk lingkaran, dan bola satuan L-infinity berbentuk persegi sejajar sumbu. Contohnya, (0.6,0.8)(0.6,0.8) tepat berada pada batas L2 karena 0.62+0.82=1\sqrt{0.6^2+0.8^2}=1. Titik ini berada di luar bola L1 karena 0.6+0.8=1.40.6+0.8=1.4, dan di dalam bola L-infinity karena besar koordinat terbesarnya adalah 0.80.8.

Geser salah satu koordinat di bawah. Titik yang sama akan diuji terhadap ketiga batas, sementara tabel menampilkan nilai setiap norma dan apakah titik tersebut berada di dalam bola satuannya.

Satu vektor di dalam tiga bola satuan dengan bentuk berbeda
Pilih koordinat vektor

Gunakan tombol panah untuk mengubah koordinat sebesar 0.1. Setiap norma mengukur vektor yang sama.

Untuk x = (0,6, 0,8): L1 adalah 1,4 (di luar); L2 adalah 1 (pada batas); L-infinity adalah 0,8 (di dalam).

Bola satuan L1, L2, dan L-infinity pada bidang koordinat yang samaVektornya adalah (0,6, 0,8). Wajik merupakan bola satuan L1, lingkaran merupakan bola satuan L2, dan persegi merupakan bola satuan L-infinity. Untuk x = (0,6, 0,8): L1 adalah 1,4 (di luar); L2 adalah 1 (pada batas); L-infinity adalah 0,8 (di dalam).-1-1011x₁x₂

Batas bola satuan

  • L1: batas wajik
  • L2: batas lingkaran
  • L-infinity: batas persegi
Nilai norma dan keanggotaan bola satuan untuk vektor yang dipilih
NormaNilaiPosisi
L11,4di luar
L21pada batas
L-infinity0,8di dalam

Tabel status tetap tersedia tanpa perlu menafsirkan warna atau bentuk pada grafik.

Bentuknya menentukan arah mana yang masih masuk dalam anggaran tetap. Misalnya, pada (0.7,0.7)(0.7,0.7), norma L-infinity bernilai 0.70.7 dan L2 sekitar 0.990.99, sehingga titik itu berada di dalam kedua bola satuan; L1 bernilai 1.41.4, sehingga titiknya berada di luar wajik. Anggaran berbentuk persegi membatasi tiap koordinat secara terpisah, sedangkan anggaran berbentuk lingkaran membatasi panjang Euclidean gabungannya.

Norma-norma ini tetap saling membatasi. Untuk setiap x∈Rnx\in\mathbb{R}^n,

∥x∥∞≤∥x∥2≤∥x∥1≤n ∥x∥2≤n ∥x∥∞.\lVert x\rVert_{\infty}\leq\lVert x\rVert_2\leq\lVert x\rVert_1 \leq\sqrt{n}\,\lVert x\rVert_2\leq n\,\lVert x\rVert_{\infty}.

Koordinat terbesar tidak mungkin melebihi akar dari jumlah kuadrat semua koordinat, yang juga tidak mungkin melebihi jumlah nilai absolutnya. Ketaksamaan Cauchy–Schwarz memberikan batas berikutnya, ∥x∥1≤n∥x∥2\lVert x\rVert_1\leq\sqrt{n}\lVert x\rVert_2; dengan membatasi setiap kuadrat koordinat oleh kuadrat koordinat terbesar, kita memperoleh ∥x∥2≤n∥x∥∞\lVert x\rVert_2\leq\sqrt{n}\lVert x\rVert_{\infty}. Jadi, perbedaan antarukuran ini dapat tumbuh seiring dimensi dan dapat mengurutkan dua vektor secara berbeda. Untuk u=(3,0)u=(3,0) dan v=(2,2)v=(2,2), L1 menyatakan vv lebih besar (4>34>3), sedangkan L2 menyatakan uu lebih besar (3>83>\sqrt{8}).

Penalti parameter dan batas input menjawab pertanyaan yang berbeda

Saat model dilatih, regularisasi menambahkan suku pada fungsi objektif untuk mencegah nilai parameter tertentu. Fungsi objektif pelatihan dapat memuat λ1∥w∥1\lambda_1\lVert w\rVert_1 atau λ2∥w∥22\lambda_2\lVert w\rVert_2^2, dengan ww sebagai vektor parameter yang dipelajari dan tiap λ\lambda menentukan kekuatan penalti. Penalti L1 dapat mendorong koefisien yang jarang; penalti kuadrat L2 cenderung mengecilkan banyak koefisien tanpa membuatnya nol. Skala fitur dan kekuatan penalti memengaruhi hasilnya. Ekspresi L2 kuadrat adalah norma yang dikuadratkan, bukan norma itu sendiri.

Anggaran perturbasi input menerapkan norma pada vektor yang berbeda. Jika δ\delta ditambahkan ke input xx, batasan ∥δ∥∞≤ε\lVert\delta\rVert_{\infty}\leq\varepsilon berarti setiap koordinat berubah paling banyak sebesar ε\varepsilon. Jika nilai gambar sudah diskalakan ke [0,1][0,1], maka ε\varepsilon diukur pada skala itu; memotong gambar yang diubah kembali ke rentang input yang valid merupakan batasan terpisah.

Metode tanda gradien cepat dari Goodfellow, Shlens, dan Szegedy menggunakan geometri L-infinity. Untuk serangan tak tertarget, misalkan J(θ,x,y)J(\theta,x,y) adalah kerugian model pada parameter θ\theta, input xx, dan label yy. Satu langkahnya adalah

δ=ε sign⁡ ⁣(∇xJ(θ,x,y)).\delta=\varepsilon\,\operatorname{sign}\!\left(\nabla_xJ(\theta,x,y)\right).

Gradien memperkirakan bagaimana perubahan kecil pada input memengaruhi kerugian. Memilih tanda setiap koordinat sesuai arah itu memaksimalkan kenaikan orde pertama dengan tetap menjaga setiap koordinat dalam batas ε\varepsilon. Ini merupakan konstruksi lokal satu langkah: metode ini tidak menjamin salah klasifikasi, dan keberhasilannya bergantung pada model dan input. Nilai L-infinity yang kecil juga tidak menjamin perubahan sulit dilihat atau realistis. Batas tersebut menyatakan anggaran per koordinat; manusia perlu menilai apakah anggaran itu sesuai dengan ancaman yang ingin diperhatikan.

Saat mengevaluasi sensitivitas model, catat vektor mana yang boleh berubah, norma apa yang membatasinya, serta satuan anggarannya. Dengan begitu, pernyataan seperti “tangguh dalam rentang ε\varepsilon” memiliki makna geometris yang jelas, alih-alih menyembunyikan asumsi dalam kata kecil.

Periksa pemahaman Anda

Question 1

Untuk x = (3, −4), hitung norma L1, L2, dan L-infinity. Tunjukkan operasi untuk masing-masing norma.

Show the step-by-step solution

L1 menjumlahkan nilai absolut: ∣3∣+∣−4∣=7|3|+|-4|=7. L2 menguadratkan, menjumlahkan, lalu mengambil akar: sqrt(3² + (−4)²) = sqrt(9 + 16) = 5. L-infinity mengambil koordinat dengan nilai absolut terbesar: max⁡(3,4)=4\max(3,4)=4.

Question 2

Untuk x = (−2, 1, −3), norma mana yang terbesar, dan berapa nilai ketiga normanya?

Show the step-by-step solution

L1 adalah 2+1+3=62+1+3=6. L2 adalah sqrt((−2)² + 1² + (−3)²) = sqrt(4 + 1 + 9) = sqrt(14) ≈ 3.74. L-infinity adalah max⁡(2,1,3)=3\max(2,1,3)=3. Di sini L1 terbesar karena menjumlahkan nilai taknegatif menghasilkan nilai yang setidaknya sebesar kombinasi Euclidean atau koordinat tunggal terbesar.

Question 3

Apakah (0.7, 0.7) berada di dalam setiap bola satuan dua dimensi? Hitung normanya sebelum memutuskan.

Show the step-by-step solution

L1 adalah 0.7+0.7=1.40.7+0.7=1.4, jadi titik tersebut berada di luar bola L1. L2 adalah sqrt(0.7² + 0.7²) = sqrt(0.98) ≈ 0.99, jadi titik berada di dalam bola L2. L-infinity adalah max⁡(0.7,0.7)=0.7\max(0.7,0.7)=0.7, jadi titik berada di dalam bola L-infinity yang berbentuk persegi.

Question 4

Jelaskan mengapa norma L-infinity tidak dapat melebihi norma L2, dan mengapa norma L2 tidak dapat melebihi norma L1.

Show the step-by-step solution

Misalkan m=max⁡i∣xi∣m=\max_i|x_i|. Kuadrat salah satu koordinat bernilai m2m^2, dan kuadrat koordinat lain tidak negatif, sehingga ∑ixi2≥m2\sum_i x_i^2\geq m^2. Dengan mengambil akar diperoleh ∥x∥2≥m=∥x∥∞\lVert x\rVert_2\geq m=\lVert x\rVert_{\infty}. Selanjutnya, kuadrat jumlah nilai nonnegatif mencakup kuadrat setiap nilai ditambah suku silang yang nonnegatif, sehingga (∑i∣xi∣)2≥∑i∣xi∣2(\sum_i|x_i|)^2\geq\sum_i|x_i|^2. Dengan mengambil akar diperoleh ∥x∥1≥∥x∥2\lVert x\rVert_1\geq\lVert x\rVert_2.

Question 5

Perturbasi dengan 1.000 koordinat memenuhi ||δ||∞ ≤ 0.01. Batas per koordinat apa yang ditetapkan, dan batas atas apa yang mengikuti untuk ||δ||₁?

Show the step-by-step solution

Syarat L-infinity berarti ∣δi∣≤0.01|\delta_i|\leq0.01 untuk setiap koordinat ii. Menjumlahkan 1.000 nilai absolut memberikan ∥δ∥1=∑i∣δi∣≤1,000(0.01)=10\lVert\delta\rVert_1=\sum_i|\delta_i|\leq1{,}000(0.01)=10. Karena itu, perubahan maksimum per koordinat yang kecil tetap dapat menghasilkan total perubahan absolut yang lebih besar pada input berdimensi tinggi.

Question 6

Mengapa kode NumPy untuk menghitung norma setiap vektor dalam sekumpulan vektor perlu menentukan axis, dan mengapa nilai default matriks tidak boleh langsung dianggap sebagai norma operator L2?

Show the step-by-step solution

Pada array yang memuat beberapa vektor, argumen axis menunjukkan dimensi koordinat yang menjadi bagian dari setiap vektor; tanpanya, NumPy mungkin memperlakukan array dua dimensi sebagai matriks dan menghitung norma matriks. Norma-2 matriks adalah nilai singular terbesar, sedangkan norma-2 vektor adalah panjang Euclidean. Menyebutkan struktur array, ord, dan axis membuat besaran yang dimaksud menjadi jelas.

Question 7

Apakah penalti L2 pada bobot model menjamin ketahanan terhadap perubahan input yang dibatasi norma L-infinity? Jelaskan kedua vektor yang terlibat.

Show the step-by-step solution

Tidak. Penalti diterapkan pada vektor parameter ww saat model dilatih. Anggaran ketahanan L-infinity diterapkan pada vektor perturbasi input δ\delta. Keduanya membatasi besaran yang berbeda di bagian model yang berbeda, sehingga penalti bobot saja tidak membuktikan jaminan ketahanan input yang dinyatakan.

Question 8

Jika gradien kerugian terhadap input adalah g = (2, −1) dan ε = 0.01, perturbasi apa yang dipilih oleh langkah tanda gradien cepat tak tertarget, dan berapa perubahan kerugian orde pertama yang diprediksi g?

Show the step-by-step solution

Tanda koordinatnya adalah (+1,−1)(+1,-1), sehingga langkahnya δ=0.01(1,−1)=(0.01,−0.01)\delta=0.01(1,-1)=(0.01,-0.01). Prediksi perubahan orde pertama adalah g⋅δ=2(0.01)+(−1)(−0.01)=0.03g\cdot\delta=2(0.01)+(-1)(-0.01)=0.03. Ini merupakan pendekatan linear berdasarkan gradien, bukan jaminan bahwa kerugian sebenarnya naik 0.03 atau bahwa prediksi berubah.

Sumber

  1. Mathematics for Machine Learning book PDF, Section 3.1
  2. NumPy documentation: numpy.linalg.norm
  3. Goodfellow, Shlens, and Szegedy: Explaining and Harnessing Adversarial Examples