Kursus Matematika untuk AI · Pelajaran 18 dari 180

Matriks untuk AI: Membaca Baris, Kolom, dan Bentuk Jaringan Saraf

Pelajari cara membaca dimensi dan elemen matriks, memetakan baris dan kolom ke peran lapisan padat, serta menemukan kesalahan bentuk atau indeks di NumPy.

Bagikan artikel ini

Sebuah lapisan padat menerima tiga fitur dan menghasilkan dua nilai keluaran. Keenam bobotnya dapat disimpan dalam satu daftar panjang, tetapi daftar itu akan menyembunyikan fakta debugging yang paling berguna: setiap aturan keluaran memiliki tiga bobot. Susun angka yang sama dalam dua baris dan tiga kolom, maka strukturnya terlihat:

W=[0.8−0.40.20.10.6−0.5].W= \begin{bmatrix} 0.8 & -0.4 & 0.2\\ 0.1 & 0.6 & -0.5 \end{bmatrix}.

Bentuk matriks, 2×32\times3, adalah kontrak ringkas. Angka pertama menghitung aturan keluaran; angka kedua menghitung fitur masukan yang digunakan setiap aturan. Sebelum melakukan perkalian apa pun, kisi ini sudah memberi tahu kita apa arti setiap sumbu dan di mana setiap bobot berada.

Pada akhir pelajaran ini, Anda akan dapat membaca dimensi matriks, menemukan suatu elemen dari dua indeksnya, menafsirkan baris dan kolom dalam matriks bobot lapisan padat, mengulangi pemeriksaan tersebut di NumPy, serta mendiagnosis array yang nilainya tampak masuk akal tetapi sumbunya menjalankan tugas yang keliru.

Hasil pembelajaran: Membaca dimensi matriks dan menafsirkan baris serta kolom.

Pelajaran 14: Vektor sebagai Data AI menjelaskan bahwa daftar koordinat berurutan dapat merepresentasikan satu masukan AI. Matriks menambahkan sumbu kedua agar beberapa daftar terkait dapat mempertahankan organisasi yang sama. Situs pendamping resmi Mathematics for Machine Learning mendefinisikan notasi matriks, baris, kolom, dan elemen dalam Bagian 2.2 buku tersebut. Skenario lapisan padat, angka, diagram, kode, penjelasan, dan penilaian di bawah ini adalah karya orisinal.

Sebuah persegi panjang membawa dua hitungan terpisah

Dua indeks memiliki tugas yang berbeda. Indeks pertama bergerak secara vertikal di antara baris; indeks kedua bergerak secara horizontal di antara kolom. Untuk

B=[749258],B= \begin{bmatrix} 7 & 4 & 9\\ 2 & 5 & 8 \end{bmatrix},

B∈R2×3B\in\mathbb{R}^{2\times3}, b12=4b_{12}=4, dan b23=8b_{23}=8. Matriks tersebut memiliki 2⋅3=62\cdot3=6 elemen. Menjumlahkan dimensi, 2+32+3, kebetulan menghasilkan angka yang sama di sini, tetapi itu hanya kebetulan: matriks 3×43\times4 memiliki 1212 elemen, bukan 77.

Matriks tidak harus persegi. Matriks 2×32\times3 sama sahnya dengan matriks 3×33\times3. Notasi juga tidak menentukan apa yang direpresentasikan suatu sumbu. Baris dapat berupa sampel dalam dataset, aturan keluaran dalam lapisan, atau langkah waktu dalam urutan. Kontrak data-lah yang memberikan maknanya.

Dua aturan keluaran menjadi matriks 2 × 3

Misalkan sebuah lapisan pemeringkatan kecil membaca tiga fitur masukan:

  1. x1x_1: kecocokan topik;
  2. x2x_2: keterkinian; dan
  3. x3x_3: kualitas sumber.

Lapisan itu menyimpan satu koefisien untuk setiap fitur dalam masing-masing dari dua aturan keluaran:

r1(x)=0.8x1−0.4x2+0.2x3,r2(x)=0.1x1+0.6x2−0.5x3.\begin{aligned} r_1(\boldsymbol{x}) &= 0.8x_1-0.4x_2+0.2x_3,\\ r_2(\boldsymbol{x}) &= 0.1x_1+0.6x_2-0.5x_3. \end{aligned}

Aturan pertama akan menghasilkan nilai relevansi; aturan kedua akan menghasilkan nilai prioritas peninjauan. Pelajaran ini belum menghitung nilai tersebut. Tugasnya adalah menata koefisien tanpa kehilangan masukan dan keluaran yang dihubungkan oleh masing-masing koefisien.

Konstruksi ini berhasil karena label baris dan kolom tetap stabil. Jika urutan fitur berubah menjadi [source quality, topic match, recency] sementara angkanya tetap, matriks masih memiliki bentuk dan nilai yang sama tetapi akan menggambarkan aturan yang berbeda.

Matriks bobot 2 × 3 menyimpan dua aturan keluaran dalam baris dan menyelaraskan tiga fitur masukan dalam kolom. Sel yang diberi garis adalah bobot yang menghubungkan kualitas sumber dengan aturan prioritas peninjauan.
Baris dan kolom matriks bobot lapisan padatMatriks dengan dua baris dan tiga kolom. Kolomnya adalah kecocokan topik, keterkinian, dan kualitas sumber. Barisnya adalah relevansi dan prioritas peninjauan. Elemen pada baris 2, kolom 3 bernilai negatif 0.5 dan ditandai sebagai pilihan.kolom mengidentifikasi fitur masukanx₁ kecocokan topikx₂ keterkinianx₃ kualitas sumberbaris menyimpan aturan keluaranbaris 1 · relevansibaris 2 · prioritas peninjauan0.8w₁₁−0.4w₁₂0.2w₁₃0.1w₂₁0.6w₂₂−0.5★ w₂₃bentuk: 2 baris × 3 kolom★ dipilih: w₂₃ = −0.5Baris 2 memilih aturan prioritas peninjauan; kolom 3 memilih kualitas sumber.
Alternatif semantik: dua aturan keluaran yang disimpan dalam matriks bobot 2 × 3
Aturan keluaran (baris)Kecocokan topik (kolom 1)Keterkinian (kolom 2)Kualitas sumber (kolom 3)Interpretasi baris
baris 1 · relevansi0.8 (w₁₁)−0.4 (w₁₂)0.2 (w₁₃)Tiga bobot yang terkait dengan keluaran relevansi.
baris 2 · prioritas peninjauan0.1 (w₂₁)0.6 (w₂₂)★ −0.5 (w₂₃)Tiga bobot yang terkait dengan keluaran prioritas peninjauan; w₂₃ adalah −0.5.

Elemen yang diberi garis dalam visual diidentifikasi dengan dua cara yang terpisah: bintang dan garis putus-putus menandainya secara visual, sedangkan label dan tabel menyatakan w23=−0.5w_{23}=-0.5 secara langsung. Baris 2 memilih aturan prioritas peninjauan. Kolom 3 memilih kualitas sumber. Perpotongan keduanya mengidentifikasi satu hubungan dalam lapisan.

Sebuah sel mencatat hubungan baris–kolom

Elemen bukan sekadar angka yang berdiri sendiri. Berdasarkan konvensi di atas, wijw_{ij} menjawab pertanyaan yang tepat:

Bobot mana yang menghubungkan fitur masukan jj dengan aturan keluaran ii?

Jawabannya mengikuti indeks, bukan hanya warna atau posisi. Misalnya, w21=0.1w_{21}=0.1 termasuk dalam aturan keluaran 2 dan fitur masukan 1. Seluruh baris kedua,

[0.10.6−0.5],\begin{bmatrix}0.1&0.6&-0.5\end{bmatrix},

menyimpan koefisien untuk satu keluaran. Seluruh kolom kedua,

[−0.40.6],\begin{bmatrix}-0.4\\0.6\end{bmatrix},

mengumpulkan koefisien keterkinian dari kedua keluaran.

Interpretasi baris ini berlaku untuk konvensi bobot dalam pelajaran ini; bukan hukum universal bahwa setiap baris matriks berarti “keluaran”. Matriks dataset, misalnya, dapat menempatkan satu observasi pada setiap baris. Selalu nyatakan kontrak sumbu sebelum menalar dari suatu bentuk.

NumPy membuat kedua sumbu dapat diperiksa

NumPy merepresentasikan kisi ini sebagai ndarray dua dimensi. Properti shape mengembalikan tuple panjang sumbu. ndarray indexing dasar menggunakan indeks mulai dari nol, sehingga posisi Python 0 berpadanan dengan indeks matematika 11.

import numpy as np

weights = np.array([
    [0.8, -0.4,  0.2],
    [0.1,  0.6, -0.5],
], dtype=float)

print("shape:", weights.shape)
print("number of axes:", weights.ndim)
print("number of entries:", weights.size)
print("row 2:", weights[1, :])
print("column 3:", weights[:, 2])
print("w_23:", weights[1, 2])

Keluaran terverifikasi:

shape: (2, 3)
number of axes: 2
number of entries: 6
row 2: [ 0.1  0.6 -0.5]
column 3: [ 0.2 -0.5]
w_23: -0.5

Tanda baca pada indeks penting:

Pilihan yang dimaksudDeskripsi matematikaEkspresi NumPyHasil
Satu elemenbaris 2, kolom 3weights[1, 2]-0.5
Satu barissetiap kolom pada baris 2weights[1, :][0.1, 0.6, -0.5]
Satu kolomsetiap baris pada kolom 3weights[:, 2][0.2, -0.5]

Titik dua berarti “ambil setiap posisi sepanjang sumbu ini.” Bilangan bulat menetapkan satu sumbu. Ini membentuk urutan debugging yang berguna: periksa bentuk keseluruhan, lalu satu baris, lalu satu kolom, dan akhirnya elemen tepat yang maknanya dipertanyakan.

Pemeriksaan bentuk sebaiknya menyandikan kontrak model, bukan sekadar mencetaknya:

expected_shape = (2, 3)  # two outputs, three input features

if weights.shape != expected_shape:
    raise ValueError(
        f"expected {expected_shape}, got {weights.shape}; "
        "check the output and input axes"
    )

Pemeriksaan ini dapat menangkap array yang ditransposisikan. Pemeriksaan ini tidak dapat menangkap perubahan urutan fitur yang diam-diam terjadi karena [topic match, recency, source quality] dan [recency, source quality, topic match] sama-sama memiliki panjang tiga. Nama dan asal data harus melindungi kontrak semantik.

Lapisan padat memperlihatkan kontrak masukan dan keluarannya

Jika masukan ditulis sebagai vektor kolom x∈R3\boldsymbol{x}\in\mathbb{R}^{3}, lapisan dapat diringkas sebagai

y=Wx+b,W∈R2×3,b∈R2,y∈R2.\boldsymbol{y}=W\boldsymbol{x}+\boldsymbol{b}, \qquad W\in\mathbb{R}^{2\times3}, \quad \boldsymbol{b}\in\mathbb{R}^{2}, \quad \boldsymbol{y}\in\mathbb{R}^{2}.

Ukuran yang bersebelahan memberi petunjuk operasi berikutnya:

(2×3)(3×1)⟶(2×1).(2\times3)(3\times1)\longrightarrow(2\times1).

Tiga koordinat masukan cocok dengan tiga kolom WW; dua baris menghasilkan dua koordinat keluaran. Pelajaran 19 akan menghitung hasil kali matriks-vektor itu sebagai jumlah berbobot. Untuk saat ini, dimensi saja sudah mengungkapkan apakah objek yang diajukan cocok dengan konvensi ini.

Dokumentasi torch.nn.Linear saat ini menggunakan tata letak bobot tersimpan yang sama: lapisan dengan in_features=3 dan out_features=2 memiliki tensor bobot berbentuk (out_features, in_features), atau (2, 3). PyTorch biasanya menulis masukan berkelompok dengan fitur pada sumbu terakhir dan menyatakan operasinya sebagai y=xAT+b\boldsymbol{y}=\boldsymbol{x}A^{\mathsf T}+\boldsymbol{b}. Notasi batch berorientasi baris itu menjelaskan transposisi yang tampak; notasi itu tidak mengubah kontrak bobot tersimpan dua baris kali tiga kolom.

Bias bukan kolom matriks ketiga dalam definisi ini. Bias adalah vektor dua koordinat terpisah, satu offset untuk setiap keluaran. Karena itu, lapisan yang menggunakan bias dalam contoh ini memiliki enam skalar bobot ditambah dua skalar bias.

Tiga jalan pintas bentuk menghasilkan model mental yang keliru

Ada pula batas perangkat lunak yang sering dibiarkan tersirat oleh notasi kelas biasa. Pelajaran ini menetapkan m,n≥1m,n\ge1, sehingga setiap matriks memiliki setidaknya satu baris dan satu kolom. Namun NumPy tetap dapat membuat array berbentuk (0, 3) atau (2, 0). Array semacam itu memiliki dua sumbu dan nol elemen, tetapi tidak dapat menjadi kisi bobot dua keluaran, tiga masukan di atas. Aturan bentuk framework dan makna model matematika harus sama-sama lolos.

Baris siap untuk operasi berikutnya

Matriks memperoleh keringkasannya dengan menjaga dua janji sekaligus. Sumbu pertamanya mempertahankan kumpulan aturan keluaran; sumbu keduanya menyelaraskan setiap aturan dengan fitur masukan berurutan yang sama. Organisasi itu membuat wijw_{ij} dapat dibaca sebelum aritmetika dimulai dan membuat transposisi yang salah terlihat sebelum mencapai proses pelatihan.

Pelajaran berikutnya yang aman terhadap prasyarat akan meletakkan sebuah vektor masukan di samping kisi ini. Setiap baris kemudian membentuk satu jumlah berbobot, mengubah organisasi 2×32\times3 menjadi hasil dua koordinat. Halaman kursus Math for AI menyatukan pelajaran berurutan dan prasyaratnya.

Uji pemahaman Anda

Question 1

Misalkan B = [[3, −1, 4], [0, 5, 2]]. Nyatakan dimensinya, jumlah total elemen, b₁₃, dan b₂₁.

Show the step-by-step solution

Hitung baris terlebih dahulu: BB memiliki dua baris horizontal, sehingga m=2m=2. Setiap baris memiliki tiga elemen, sehingga n=3n=3. Maka

B∈R2×3danmn=2⋅3=6.B\in\mathbb{R}^{2\times3} \quad\text{dan}\quad mn=2\cdot3=6.

Untuk b13b_{13}, pilih baris 1 lalu kolom 3; nilainya adalah 44. Untuk b21b_{21}, pilih baris 2 lalu kolom 1; nilainya adalah 00. Jadi b13=4b_{13}=4 dan b21=0b_{21}=0. Urutan indeks adalah baris terlebih dahulu, kemudian kolom.

Question 2

Dua aturan keluaran menggunakan masukan x₁, x₂, dan x₃: s₁ = 2x₁ + 0x₂ − x₃ dan s₂ = 0.5x₁ + 3x₂ + 4x₃. Bangun matriks dengan satu aturan per baris dan verifikasi dua elemen.

Show the step-by-step solution

Ada dua aturan keluaran, jadi matriks membutuhkan dua baris. Setiap aturan menggunakan tiga masukan berurutan, jadi membutuhkan tiga kolom. Pertahankan koefisien setiap aturan dalam urutan x1,x2,x3x_1,x_2,x_3:

S=[20−10.534]∈R2×3.S= \begin{bmatrix} 2 & 0 & -1\\ 0.5 & 3 & 4 \end{bmatrix} \in\mathbb{R}^{2\times3}.

Koefisien x3x_3 pada aturan 1 berada di baris 1, kolom 3, sehingga s13=−1s_{13}=-1. Koefisien x2x_2 pada aturan 2 berada di baris 2, kolom 2, sehingga s22=3s_{22}=3. Pemeriksaan tersebut sesuai dengan dua aturan semula.

Question 3

Untuk matriks bobot W dalam pelajaran ini, ekspresi NumPy mana yang memilih elemen matematika w₂₃, seluruh baris 2, dan seluruh kolom 3? Jelaskan pergeseran dari indeks satu ke indeks nol.

Show the step-by-step solution

Indeks matematika dalam pelajaran ini dimulai dari 11, sedangkan posisi NumPy dimulai dari 0. Kurangi satu dari setiap indeks matematika saat menulis pilihan NumPy langsung:

  • w23w_{23} menjadi weights[1, 2] dan mengembalikan -0.5;
  • baris 2 menjadi weights[1, :] dan mengembalikan [0.1, 0.6, -0.5]; dan
  • kolom 3 menjadi weights[:, 2] dan mengembalikan [0.2, -0.5].

Titik dua membiarkan sumbu tersebut tidak dibatasi. Bilangan bulat menetapkan sumbu lainnya pada satu posisi berbasis nol.

Question 4

Sebuah lapisan padat memiliki lima fitur masukan, empat unit keluaran, dan satu bias per keluaran. Apa bentuk matriks bobotnya, dan berapa banyak skalar yang dapat dilatih dalam lapisan tersebut?

Show the step-by-step solution

Dengan konvensi (out_features, in_features), empat unit keluaran menyediakan baris dan lima fitur masukan menyediakan kolom:

W∈R4×5.W\in\mathbb{R}^{4\times5}.

Matriks bobot berisi 4⋅5=204\cdot5=20 skalar. Vektor bias memiliki satu elemen untuk masing-masing dari empat keluaran, sehingga menambah 44. Totalnya adalah

20+4=2420+4=24

skalar yang dapat dilatih. Jumlah bias ditambahkan secara terpisah; itu tidak mengubah matriks dari 4×54\times5 menjadi 4×64\times6.

Question 5

Seorang pengembang bermaksud membuat lapisan tiga masukan, dua keluaran tetapi menemukan weights.shape == (3, 2). Identifikasi kesalahan sumbunya dan nyatakan langkah aman berikutnya.

Show the step-by-step solution

Tata letak tersimpan yang dimaksud adalah (out_features, in_features). Dengan dua keluaran dan tiga masukan, bentuk yang diharapkan adalah (2, 3), bukan (3, 2).

Bentuk yang diamati menempatkan kelompok tiga fitur masukan pada sumbu baris dan kelompok dua keluaran pada sumbu kolom. Jika nilai-nilai itu memang sengaja dibangun dengan satu aturan keluaran per kolom, weights.T akan menghasilkan bentuk (2, 3). Namun, melakukan transposisi secara buta tidak aman: verifikasi label fitur dan keluaran terlebih dahulu, lalu transposisikan hanya jika label tersebut mengonfirmasi bahwa sumbu memang sengaja dibalik. Perbaikan bentuk harus mempertahankan makna semantik.

Question 6

Matriks C = [[1, 2, 3, 4]] dan D = [[1], [2], [3], [4]] memuat empat nilai yang sama. Mengapa keduanya tidak dapat dipertukarkan?

Show the step-by-step solution

CC memiliki satu baris dan empat kolom, sehingga C∈R1×4C\in\mathbb{R}^{1\times4}. Matriks itu dapat menyimpan satu aturan yang menggunakan empat masukan berurutan. DD memiliki empat baris dan satu kolom, sehingga D∈R4×1D\in\mathbb{R}^{4\times1}. Matriks itu dapat menyimpan empat baris satu elemen atau merepresentasikan vektor kolom.

Jumlah elemen keduanya sama-sama 44, tetapi panjang sumbunya berbeda dan dapat membawa makna yang berbeda. Transposisi menghubungkan keduanya, D=CTD=C^{\mathsf T}, tetapi operasi itu menukar baris dan kolom. Nilai dan jumlah elemen yang sama tidak menyiratkan bentuk atau kontrak matriks yang sama.

Question 7

NumPy dapat membuat np.empty((0, 3)). Apa bentuk dan ukurannya, dan mengapa array itu tidak dapat menggantikan matriks bobot dua keluaran, tiga masukan dalam pelajaran ini?

Show the step-by-step solution

Tuple yang diberikan kepada np.empty adalah bentuk array, sehingga hasilnya berbentuk (0, 3): nol baris dan tiga kolom. Jumlah elemennya adalah hasil kali panjang sumbu,

0⋅3=0.0\cdot3=0.

Lapisan dalam pelajaran ini memerlukan dua aturan keluaran, sehingga memerlukan dua baris. Array kosong itu tidak menyimpan apa pun. Sumbu tiga kolomnya kebetulan cocok dengan jumlah fitur masukan, tetapi sumbu keluaran yang hilang melanggar kontrak model. Array NumPy yang bentuknya valid tidak otomatis menjadi matriks yang berguna untuk lapisan tertentu.

Question 8

Dalam peta matriks, w₂₃ = −0.5. Nyatakan hubungan yang dinamainya. Apakah satu bobot negatif itu membuktikan keluaran akhir prioritas peninjauan akan negatif?

Show the step-by-step solution

Baca indeksnya sesuai urutan. Indeks pertama, 22, memilih baris 2: aturan keluaran prioritas peninjauan. Indeks kedua, 33, memilih kolom 3: fitur masukan kualitas sumber. Jadi w23=−0.5w_{23}=-0.5 adalah koefisien yang menghubungkan kualitas sumber dengan aturan prioritas peninjauan.

Koefisien tunggal itu tidak menentukan tanda keluaran akhir. Keluaran juga bergantung pada nilai aktual x3x_3, dua kontribusi masukan berbobot lainnya, dan bias apa pun. Elemen matriks menamai satu hubungan; perhitungan jumlah berbobot pada pelajaran berikutnya menggabungkan seluruh kontribusi.

Sumber

  1. Mathematics for Machine Learning companion website
  2. Mathematics for Machine Learning book PDF
  3. NumPy documentation: ndarray.shape
  4. NumPy documentation: indexing on ndarrays
  5. PyTorch documentation: torch.nn.Linear