Lensa ML

Peran Aljabar Linear dalam Machine Learning

Langkah 1 dari 6: Apa Itu Vector?

Angka yang punya arah, bahan dasar data

xy[3.0, 2.0]
Komponen X3.0
Komponen Y2.0
Magnitude
3.61
Arah
33.7°

Vector adalah daftar angka. Di sini, dua angka [x, y] menentukan sebuah panah. Panah itu punya magnitude (panjang) dan arah (sudut). Geser slider untuk mengubah komponennya, dan panah akan mengikuti.

Geser slider Komponen X dan Komponen Y di antara −5 dan 5. Pada titik awal [3, 2], panjangnya √(3² + 2²) = √13 ≈ 3.61 dan sudutnya sekitar 33,7°. Vector dijumlahkan dengan menyambung ujung ke pangkal dan diskalakan dengan meregangkannya: 2·[3, 2] = [6, 4] menunjuk ke arah yang sama dan dua kali lebih panjang. Dua operasi itu, penjumlahan dan penskalaan, adalah seluruh makna "linear". Semua ide lain dalam bidang ini dibangun darinya.

Langkah 2 dari 6: Vector sebagai Data

Setiap titik data sebenarnya adalah vector

NamaTinggiBeratAlice16558Bob18082Carol15552Dave17575Eve16063→TinggiBerat

Setiap baris dalam dataset sebenarnya adalah vector. Orang dengan tinggi 165 dan berat 58 adalah titik [165, 58] di ruang 2D. Klik baris atau titik untuk melihat hubungannya.

Klik baris pada tabel atau titik pada scatter plot untuk menghubungkan keduanya. Menumpuk kelima orang itu menghasilkan matriks data X berukuran 5×2, satu baris per orang dan satu kolom per feature. Dataset sungguhan bekerja dengan cara yang sama, hanya kolomnya lebih banyak: gambar grayscale 28×28 menjadi vector berisi 784 nilai pixel. Perhatikan perbedaan skala di sini: tinggi berkisar 155 sampai 180 dan berat 52 sampai 82. Jarak antar-vector seperti ini bergantung pada satuan, jadi feature biasanya distandardisasi lebih dulu.

Langkah 3 dari 6: Dot Product

Mengukur kemiripan antar-vector

a[1.00, 0.00]b[0.87, 0.50]
Sudut antar-vector30°
Dot product a·b
0.866
Sudut
30°
BerlawananOrtogonalMirip

Dot product mengukur seberapa searah dua vector. Saat vector sejajar (0°), nilainya maksimum. Pada 90° nilainya nol: kedua vector ortogonal. Pada 180° nilainya paling negatif, karena keduanya menunjuk ke arah berlawanan.

Geser slider Sudut antar-vector dari 0° ke 180°. Kedua panah di sini panjangnya 1, jadi dot product sama dengan cos(θ). Secara umum, a · b = a₁b₁ + a₂b₂ + … = |a||b|cos(θ), yang menghubungkan rumus aljabar dengan sudut geometris. Membagi dengan panjangnya menghasilkan cosine similarity, cara standar membandingkan embedding dalam pencarian dan retrieval. Skor attention pada transformer juga berupa dot product, antara query vector dan setiap key vector.

Langkah 4 dari 6: Apa Itu Matriks?

Kisi angka yang mentransformasi data

Matriks1.0 0.00.0 1.0
a1.0
b0.0
c0.0
d1.0

Matriks adalah kisi angka yang mentransformasi ruang. Persegi putus-putus adalah bentuk asalnya; bentuk padat adalah hasil transformasinya. Preset menunjukkan rotasi, penskalaan, pergeseran (shear), dan refleksi.

Klik preset, lalu geser a, b, c, dan d di antara −2 dan 2. Kolom pertama [a, c] adalah tujuan vector [1, 0], dan kolom kedua [b, d] adalah tujuan [0, 1]. Dua hasil itu sudah menentukan seluruh transformasi, karena setiap vector adalah kombinasi dari [1, 0] dan [0, 1]. Preset Rotasi 45° memakai cos 45° ≈ 0.71 di keempat entri, dengan satu tanda dibalik. Preset Refleksi menegatifkan x, sehingga perseginya tercermin.

Langkah 5 dari 6: Perkalian Matriks

Menggabungkan transformasi langkah demi langkah

A (2×3)123456×B (3×2)789101112=C (2×2)58???1×7 + 2×9 + 3×11 = 58← MundurMaju →▶ OtomatisSel [1,1] dari 4

Perkalian matriks menghitung setiap sel output sebagai dot product dari baris A dan kolom B. Telusuri sel satu per satu, atau tekan Otomatis untuk mengisi keempatnya.

Klik Mundur dan Maju, atau tekan Otomatis, untuk mengisi keempat sel. Matriks 2×3 dikali matriks 3×2 menghasilkan 2×2, di sini [[58, 64], [139, 154]]; ukuran bagian dalamnya harus sama. Mengalikan dua matriks berarti menyusun transformasinya, jadi AB artinya terapkan B dulu, baru A. Itu juga sebabnya AB biasanya berbeda dari BA. Mengalikan sepasang matriks n×n butuh sekitar n³ operasi kali-tambah, dan tensor core pada GPU adalah perangkat keras yang dibuat khusus untuk ini.

Langkah 6 dari 6: Kenapa Ini Penting untuk ML

Layer hanyalah perkalian matriks

Input x0.8x10.3x2Matriks weight W[ 0.6, -0.2][ 0.3, 0.8][-0.5, 0.4]Output yy = σ(W · x)
Input x10.80
Input x20.30

Satu layer neural network adalah perkalian matriks yang diikuti activation function. Input vector dikalikan dengan matriks weight untuk menghasilkan output. Di sini matriks 3×2 memetakan 2 input ke 3 output, lalu sigmoid memampatkan masing-masing nilainya. Dense layer di setiap network bekerja dengan cara ini.

Geser slider x1 dan x2 di antara 0 dan 1. Pada input awal [0.8, 0.3], matriks weight menghasilkan output mentah [0.42, 0.48, −0.28], lalu sigmoid mengubahnya menjadi sekitar [0.60, 0.62, 0.43]. Tanpa aktivasi, tumpukan layer akan runtuh: W₂(W₁x) = (W₂W₁)x adalah satu pemetaan linear, jadi kedalaman tidak menambah apa-apa. Dalam praktik, satu batch input ditumpuk menjadi matriks dan diproses dengan satu perkalian matriks.

Apa itu aljabar linear dalam machine learning?

Aljabar linear adalah matematika tentang vector, matriks, dan transformasi linear di antara keduanya. Vector adalah daftar angka yang berurutan, matriks adalah kisi angka, dan mengalikan vector dengan matriks memetakannya ke vector baru. Aturannya sederhana dan sama, baik di dua dimensi maupun dua juta dimensi.

Machine learning menyimpan hampir semuanya sebagai vector dan matriks: dataset adalah matriks dengan satu baris per contoh, word embedding adalah vector, dan weight satu layer adalah matriks. Training dan inference sebagian besar terdiri dari perkalian matriks. Karena itu GPU, yang dibuat untuk menjalankan banyak operasi kali-tambah secara paralel, membuat deep learning modern bisa dipraktikkan. PCA, regresi linear, attention, dan recommender system semuanya pada dasarnya adalah aljabar linear.

Ide utama

  • Vector adalah daftar angka berurutan yang bisa dibaca sebagai titik atau panah.
  • Setiap baris dataset adalah vector, dan seluruh dataset adalah matriks.
  • Dot product a · b = |a||b|cos(θ) mengukur seberapa sejajar dua vector.
  • Matriks adalah transformasi linear, dan kolom-kolomnya menunjukkan tujuan basis vector.
  • Setiap entri hasil perkalian matriks adalah dot product antara baris dan kolom.
  • Dense layer pada neural network adalah perkalian matriks-vector yang diikuti aktivasi non-linear.

Pertanyaan umum

Seberapa banyak aljabar linear yang dibutuhkan untuk machine learning?

Untuk menerapkan model standar, vector, matriks, dot product, perkalian matriks, dan transpose sudah mencakup sebagian besar kebutuhan. Membaca riset atau menurunkan metode juga memerlukan eigenvalue, SVD, kalkulus matriks, dan proyeksi. Kuliah seperti MIT 18.06 dari Strang mencakup semuanya.

Apa bedanya vector, matriks, dan tensor?

Vector punya satu indeks, matriks punya dua, dan tensor adalah nama umum untuk array dengan jumlah indeks berapa pun. Batch gambar RGB adalah tensor 4 dimensi: batch, channel, tinggi, lebar. Pustaka deep learning menyebut semua array seperti ini tensor.

Apa itu transpose matriks?

Transpose Aᵀ menukar baris dan kolom, jadi entri (i, j) menjadi entri (j, i). Transpose mengubah column vector menjadi row vector, sehingga dot product bisa ditulis sebagai aᵀb. Dalam backpropagation, gradient yang mengalir mundur melewati layer dengan weight W dikalikan dengan Wᵀ.

Apa artinya vector yang linearly independent?

Tidak ada vector dalam himpunan itu yang bisa ditulis sebagai kombinasi dari yang lain. Dalam dataset, kolom yang merupakan kombinasi persis dari kolom lain, seperti total yang sama dengan jumlah dua kolom lain, membuat kolom-kolomnya saling bergantung. Akibatnya XᵀX menjadi singular dan solusi closed-form untuk regresi linear gagal.

Penjelasan terkait

Referensi

  1. Strang, MIT 18.06 Linear Algebra, MIT OpenCourseWare
  2. Deisenroth, Faisal & Ong, "Mathematics for Machine Learning", ch. 2 Linear Algebra
  3. Goodfellow, Bengio & Courville, "Deep Learning", ch. 2 Linear Algebra

Terakhir diperbarui