Lensa ML

Cara Kerja Norm dan Jarak

Langkah 1 dari 6: Norm L2 (Euclidean)

Jarak garis lurus dari titik asal

x3.00
y2.00
-4-224-4-224(3.0, 2.0)‖v‖₂ = 3.61
x
3.00
y
2.00
Norm L2
3.606

Vector ini jauh dari titik asal, dan norm L2-nya adalah jarak garis lurus itu.

Geser slider x dan y antara −4 dan 4. Di titik awal (3, 2), panjangnya √13 ≈ 3.61. Di n dimensi, rumus yang sama menjumlahkan n kuadrat: vector (1, 1, …, 1) dengan 100 entri punya norm L2 sebesar 10. Kode ML sering memakai norm kuadrat |x|², karena tidak perlu akar kuadrat dan gradient-nya sederhana, yaitu 2x. Weight decay dan mean squared error sama-sama dibangun dari bentuk kuadrat ini.

Langkah 2 dari 6: Norm L1 (Manhattan)

Jarak yang diukur menyusuri sumbu: metrik taxicab

x3.00
y2.00
-4-224-4-224|x|=3.0|y|=2.0(3.0, 2.0)Jalur L1Garis L2
Norm L1
5.000
Norm L2
3.606
Rasio L1 / L2
1.387

Norm L1 (5,00) jauh lebih besar daripada L2 (3,61). Taksi mengikuti garis kisi, sedangkan garis lurus memotong langsung. Di luar sumbu, selisihnya paling besar pada 45°, tempat L1 = √2·L2.

Geser x dan y, lalu perhatikan kartu RASIO L1 / L2. Di (3, 2), norm L1 bernilai 5 dan rasionya sekitar 1,39. Di n dimensi, rasionya bisa mencapai √n, jadi selisih kedua norm membesar seiring dimensi. L1 kurang peka terhadap outlier: satu error sebesar 10 menambah 10 pada loss L1, tetapi 100 pada loss L2 kuadrat. Itu sebabnya mean absolute error lebih tahan sebagai loss regresi. L1 punya titik patah di nol, jadi optimizer memakai subgradient di titik itu.

Langkah 3 dari 6: Unit Ball dan Norm Lp

Lihat unit ball berubah bentuk saat p berubah

p (orde norm)2.00
-11-11xy‖x‖ p=2.0 = 1 unit ball
Nilai p
2.0
Bentuk
Lingkaran
Luas
3.142

Di dekat p = 2, unit ball berbentuk lingkaran, yaitu norm Euclidean. Semua arah diperlakukan sama, jadi norm ini invarian terhadap rotasi.

Geser p (orde norm) dari 0,5 ke 10 dan perhatikan kartu LUAS. Rumus umumnya |x|_p = (Σ|xᵢ|^p)^(1/p), dan unit ball adalah semua titik dengan norm 1. Luasnya bergerak dari 2 pada p = 1, ke π pada p = 2, lalu menuju 4 saat p membesar. Untuk p ≥ 1, ketidaksamaan segitiga berlaku dan bola itu konveks. Nilai di bawah 1 melanggarnya, jadi itu bukan norm sejati. Jumlah entri bukan nol, yang kadang disebut L0, adalah kasus ekstremnya.

Langkah 4 dari 6: Jarak Antar-Vector

L1, L2, dan L∞: tiga cara mengukur kedekatan

x₁-2.00
y₁1.00
x₂2.00
y₂3.00
-4-224-4-224A(-2.0,1.0)B(2.0,3.0)L1L2L∞
Jarak L1
6.000
Jarak L2
4.472
Jarak L∞
4.000

Tiga cara mengukur selisih yang sama: L1 (6,00) menyusuri kisi, L2 (4,47) terbang lurus, dan L∞ (4,00) hanya mengikuti sumbu yang dominan. L∞ ≤ L2 ≤ L1 selalu berlaku.

Geser kedua titik dengan slider x₁, y₁, x₂, y₂. Di awal, (−2, 1) dan (2, 3) berselisih (4, 2), jadi jaraknya 6 untuk L1, sekitar 4,47 untuk L2, dan 4 untuk L∞. L∞ juga disebut jarak Chebyshev, yaitu jumlah langkah yang dibutuhkan raja di papan catur. Riset adversarial robustness sering membatasi serangan dengan L∞, misalnya mengizinkan tiap pixel berubah paling banyak 8/255. Pilihan metrik juga mengubah tetangga yang ditemukan k-NN.

Langkah 5 dari 6: Cosine Similarity

Membandingkan arah, bukan besar

Sudut vector 1 (°)30
Sudut vector 2 (°)120
-11-11v₁v₂90°
Sudut
90°
cos(θ)
0.000
Dot product
0.000

Kedua vector hampir tegak lurus, jadi cosine similarity ≈ 0. Di ruang embedding, ini biasanya berarti kedua item tidak berkaitan.

Atur Sudut₁ dan Sudut₂, lalu bandingkan cos(θ) dengan dot product. Kedua vector di sini punya panjang 1, jadi kedua kartu selalu sama. Untuk vector dengan panjang berapa pun, cos(θ) = a·b / (|a||b|). Model embedding biasanya dilatih agar cosine similarity mencerminkan makna, dan banyak vector database menyimpan vector yang sudah dinormalisasi supaya dot product biasa langsung menghasilkan nilai kosinus. Sudut awalnya, 30° dan 120°, berjarak 90°, sehingga kemiripannya tepat 0.

Langkah 6 dari 6: Norm di ML

Cara regularization L1 dan L2 membatasi weight

w₁1.50
w₂2.00
λ (kekuatan regularization)0.50
-3-113-3-113w₁w₂(w₁, w₂)L1 (Lasso)L2 (Ridge)
Penalti L1
1.750
Penalti L2
3.125
w₁
1.50
w₂
2.00

Pada λ = 0.50, constraint-nya mengetat. Belah ketupat L1 punya sudut di sumbu, dan solusi cenderung jatuh di sana sehingga satu weight menjadi nol. Lingkaran L2 tidak punya sudut.

Atur w₁ dan w₂, lalu naikkan λ (kekuatan regularization). Pada nilai bawaan (1.5, 2.0) dengan λ = 0.5, penalti L1 adalah 0.5 × 3.5 = 1.75 dan penalti L2 adalah 0.5 × 6.25 = 3.125. Gradient menjelaskan perbedaan perilakunya. Gradient L1 adalah λ·sign(w), sama besar untuk setiap weight, jadi weight kecil terdorong sampai nol. Gradient L2 adalah 2λw, yang memudar saat w mengecil. Elastic net menggabungkan kedua penalti.

Apa itu norm vector dan metrik jarak?

Norm adalah fungsi yang memberi panjang pada sebuah vector. Norm L2 adalah panjang garis lurus biasa, √(x₁² + x₂² + …); norm L1 menjumlahkan nilai mutlak; dan norm L∞ mengambil nilai mutlak terbesar. Setiap norm mendefinisikan jarak: jarak antara a dan b adalah norm dari a − b.

Machine learning memakai norm dan jarak di mana pun ia membandingkan atau membatasi vector. K-nearest neighbors dan k-means mengandalkan jarak antartitik data, sistem retrieval memeringkat embedding dengan cosine similarity, dan penalti L1 dan L2 menjaga weight model tetap kecil. Loss function juga berupa norm: mean squared error berbasis L2 dan mean absolute error berbasis L1.

Ide utama

  • Norm mengukur panjang vector, dan jarak antara dua vector adalah norm dari selisihnya.
  • L2 adalah panjang garis lurus, L1 menjumlahkan nilai mutlak, dan L∞ mengambil nilai mutlak terbesar.
  • Untuk vector apa pun, L∞ ≤ L2 ≤ L1.
  • Bentuk unit ball berubah mengikuti p, dari belah ketupat pada p = 1, lingkaran pada p = 2, sampai persegi saat p → ∞.
  • Cosine similarity hanya membandingkan arah dan mengabaikan panjang.
  • Regularization L1 menghasilkan weight yang sparse, sedangkan L2 mengecilkan semua weight tanpa membuatnya nol.

Ulasan singkat tentang topik ini

Pertanyaan umum

Sebaiknya pakai cosine similarity atau jarak Euclidean?

Pakai cosine ketika hanya arah yang penting, seperti pada embedding teks yang panjangnya berbeda karena alasan yang tidak berkaitan dengan makna. Untuk vector berpanjang satu, keduanya memberi peringkat yang sama, karena |a − b|² = 2 − 2·cos(θ). Jarak Euclidean lebih tepat ketika besarnya membawa informasi, seperti pada pengukuran fisik.

Kenapa jarak jadi kurang berguna di dimensi tinggi?

Saat jumlah dimensi bertambah, jarak dari satu titik ke semua titik lain cenderung mengumpul, sehingga tetangga terdekat dan terjauh hampir sama jauhnya. Metode yang mengandalkan jarak, seperti k-NN, pun kehilangan daya beda. Dimensionality reduction, feature selection, atau embedding hasil belajar biasanya membantu.

Apa itu jarak Mahalanobis?

Jarak yang memperhitungkan skala dan korelasi data: d(x, y) = √((x − y)ᵀ Σ⁻¹ (x − y)), dengan Σ sebagai matriks covariance. Jika feature tidak berkorelasi dan variance-nya satu, jarak ini menjadi jarak Euclidean. Jarak ini dipakai dalam deteksi outlier dan model Gaussian.

Apakah feature perlu diskalakan sebelum menghitung jarak?

Biasanya perlu. Feature yang berskala ribuan, seperti pendapatan, akan mendominasi feature yang berskala satuan, seperti jumlah kamar per rumah, pada jarak L1 atau L2 apa pun. Menstandarkan tiap feature agar mean-nya nol dan variance-nya satu memberi pengaruh awal yang setara.

Penjelasan terkait

Referensi

  1. Deisenroth, Faisal & Ong, "Mathematics for Machine Learning", ch. 3 Analytic Geometry
  2. Goodfellow, Bengio & Courville, "Deep Learning", section 2.5 Norms
  3. James, Witten, Hastie & Tibshirani, "An Introduction to Statistical Learning", ch. 6 Linear Model Selection and Regularization
  4. Tibshirani (1996), "Regression Shrinkage and Selection via the Lasso"

Terakhir diperbarui