Kursus Matematika untuk AI · Pelajaran 35 dari 180

Matriks Merepresentasikan Pemetaan Linear

Pelajari mengapa vektor basis hasil transformasi menjadi kolom matriks, cara merekonstruksi pemetaan dari respons basis, dan cara menghindari kekeliruan baris-versus-kolom pada bobot model.

Bagikan artikel ini

Sebuah model mengekspos proyeksi linear, tetapi menyembunyikan matriks bobotnya. Bisakah beberapa masukan yang dipilih dengan cermat mengungkap seluruh transformasi? Bisa: masukkan vektor-vektor basis koordinat dan catat keluarannya. Respons tersebut tepat menjadi kolom-kolom matriks, dan linearitas memberi tahu kita cara menggabungkannya untuk setiap masukan lainnya.

Setelah membaca, Anda akan mampu menurunkan matriks dari respons pemetaan terhadap basis, merekonstruksi keluaran dari koordinatnya, dan memahami hubungan tata letak bobot suatu pustaka dengan konvensi vektor kolom.

Hasil pembelajaran: Menurunkan matriks pemetaan dari vektor-vektor basis yang ditransformasikan.

Pelajaran 19 menjelaskan cara matriks mengalikan masukan dengan menghitung jumlah berbobot dari kolom-kolomnya. Pelajaran 34 menunjukkan bahwa pemetaan linear mempertahankan kombinasi. Bagian 2.7 dari buku resmi Mathematics for Machine Learning menghubungkan gagasan ini: setelah basis dipilih, pemetaan ditentukan oleh tindakannya pada basis tersebut. Penurunan, contoh proyeksi, visual, dan pertanyaan di bawah ini adalah karya orisinal.

Setiap kolom matriks mencatat satu respons basis

Di Rn\mathbb{R}^n, vektor basis standar adalah e1=(1,0,…,0)e_1=(1,0,\ldots,0), e2=(0,1,…,0)e_2=(0,1,\ldots,0), dan seterusnya. Setiap masukan x=(x1,…,xn)x=(x_1,\ldots,x_n) dapat dibentuk darinya:

x=x1e1+x2e2+⋯+xnen.x=x_1e_1+x_2e_2+\cdots+x_ne_n.

Misalkan T:Rn→RmT:\mathbb{R}^n\to\mathbb{R}^m adalah pemetaan linear. Karena pemetaan ini mempertahankan penjumlahan dan perkalian skalar, keluarannya harus berupa

T(x)=x1T(e1)+x2T(e2)+⋯+xnT(en).T(x)=x_1T(e_1)+x_2T(e_2)+\cdots+x_nT(e_n).

Keluaran T(ej)T(e_j) adalah vektor-vektor di Rm\mathbb{R}^m. Letakkan masing-masing sebagai satu kolom untuk membentuk matriks berukuran m×nm\times n:

Konstruksi ini berlaku untuk dimensi berhingga apa pun: nn koordinat masukan menghasilkan nn kolom, sedangkan setiap respons memiliki mm koordinat keluaran sehingga menghasilkan mm baris. Gagasan yang sama berlaku untuk basis masukan berurutan apa pun, B=(b1,…,bn)B=(b_1,\ldots,b_n), dan basis keluaran C=(c1,…,cm)C=(c_1,\ldots,c_m). Nyatakan respons terhadap setiap vektor basis masukan dalam koordinat keluaran:

T(bj)=a1jc1+⋯+amjcm.T(b_j)=a_{1j}c_1+\cdots+a_{mj}c_m.

Koefisiennya menjadi kolom ke-jj dari matriks transformasi AC←BA_{C\leftarrow B}:

AC←B=[[T(b1)]C⋯[T(bn)]C].A_{C\leftarrow B}=\begin{bmatrix}[T(b_1)]_C&\cdots&[T(b_n)]_C\end{bmatrix}.

Jika [x]B[x]_B adalah vektor koordinat xx dalam basis BB, maka [T(x)]C=AC←B[x]B[T(x)]_C=A_{C\leftarrow B}[x]_B. Jadi, matriks bergantung pada sistem koordinat yang dipilih, sedangkan pemetaan dasarnya TT tidak berubah.

Dua respons basis menentukan seluruh transformasi 2DKisi masukan berubah bentuk mengikuti bayangan panah basisnya. Setiap sel satuan dipetakan menjadi jajar genjang.
Dari vektor basis ke kolom matriksDi sebelah kiri, basis standar e1=(1, 0) dan e2=(0, 1) membentuk kisi persegi satuan di sekitar titik asal. Di sebelah kanan, matriks dengan kolom (2, 1) dan (1, 1) mengirim panah basis ke koordinat tersebut dan memetakan setiap sel kisi menjadi jajar genjang. Animasi kisi berjalan sekali, kecuali jika gerakan dikurangi diminta.Basis masukanBasis hasil pemetaane₁e₂
  • T(e₁) = (2, 1) — kolom 1
  • T(e₂) = (1, 1) — kolom 2

Maka A adalah2  11  1. Setiap masukanx = (x1,x2) maps tox1(2, 1) + x2(1, 1).

Visual ini menggunakan T(e1)=(2,1)T(e_1)=(2,1) dan T(e2)=(1,1)T(e_2)=(1,1). Setiap panah masukan menjadi satu kolom, dan persegi satuan berubah menjadi jajar genjang yang dibentang oleh kedua kolom itu. Bentuk teks transformasinya adalah A=[2111]A=\begin{bmatrix}2&1\\1&1\end{bmatrix}, sehingga kesimpulannya tetap jelas tanpa gerakan atau warna.

Pulihkan aturan dari dua respons

Misalkan suatu pemetaan linear mengirim dua vektor basis standar menjadi

Urutan penting: jika responsnya ditukar, kolomnya ikut tertukar dan pemetaan yang direpresentasikan pun berubah. Baris menjawab pertanyaan lain: setiap baris mencantumkan cara satu koordinat keluaran menggabungkan seluruh koordinat masukan.

Selidiki proyeksi terlatih dengan NumPy

Gagasan yang sama dapat digunakan untuk memeriksa proyeksi linear meskipun bobotnya tidak tersedia secara langsung, asalkan proyeksi itu menerima masukan pilihan dan memang linear. Misalkan tiga masukan basis menghasilkan (1,2)(1,2), (−2,1)(-2,1), dan (0,3)(0,3). Koordinat ini adalah keluaran di R2\mathbb{R}^2, sehingga pemetaan yang dipulihkan memetakan tiga fitur masukan menjadi dua fitur keluaran. column_stack dari NumPy menempatkan respons berdimensi satu ke kolom-kolom matriks (dokumentasi NumPy):

import numpy as np

responses = [
    np.array([1.0, 2.0]),
    np.array([-2.0, 1.0]),
    np.array([0.0, 3.0]),
]
A = np.column_stack(responses)  # shape (2 outputs, 3 inputs)
x = np.array([2.0, -1.0, 1.0])

print(A)
# [[ 1. -2.  0.]
#  [ 2.  1.  3.]]
print(A @ x)
# [4. 6.]

Keluarannya adalah 2(1,2)−(−2,1)+(0,3)=(4,6)2(1,2)-(-2,1)+(0,3)=(4,6). Untuk sekumpulan masukan vektor kolom, kalikan AA dari kiri; jika contoh disimpan sebagai baris, operasi yang sama ditulis dengan transpose di sebelah kanan.

Orientasi itu berguna saat membaca parameter jaringan saraf. torch.nn.Linear dari PyTorch menyimpan bobot dengan bentuk (out_features, in_features) dan menerapkan masukan batch berorientasi baris sebagai XWT+bXW^\mathsf{T}+b (dokumentasi PyTorch). Dengan bias=False, tensor bobotnya WW adalah matriks AA yang sama dalam persamaan vektor kolom T(x)=AxT(x)=Ax. Jika bias diaktifkan, modul tersebut memetakan xx menjadi Ax+bAx+b: kurangi respons masukan nol bb sebelum memperlakukan keluaran basis sebagai kolom. Jika operasi non-linear seperti aktivasi mengikuti lapisan itu, keseluruhan pemetaan tidak lagi linear, sehingga respons basis dari lapisan saja tidak menentukan perilakunya untuk semua masukan.

Respons basis hanya cukup jika pemetaannya linear

Rekonstruksi ini memiliki dua unsur: basis memungkinkan setiap masukan dinyatakan sebagai jumlah berbobot, dan linearitas memungkinkan pemetaan meneruskan bobot tersebut ke dalam penjumlahan. Keduanya menjelaskan mengapa matriks mereproduksi TT sekaligus mengapa tidak ada matriks kedua yang dapat menghasilkan keluaran berbeda pada suatu masukan sambil mencocokkan semua respons basis yang sama.

Jika sebuah sistem mengembalikan T(ej)T(e_j) untuk setiap vektor basis masukan, respons tersebut menentukan matriksnya. Namun, menguji masukan itu tidak membuktikan bahwa sistem yang belum diketahui bersifat linear. Misalnya, sistem non-linear dapat memiliki respons basis yang sama, tetapi berperilaku berbeda pada e1+e2e_1+e_2. Kombinasi yang disisihkan sebagai pengujian dapat memeriksa asumsi ini: bandingkan T(e1+e2)T(e_1+e_2) dengan T(e1)+T(e2)T(e_1)+T(e_2). Pelajaran berikutnya menggunakan matriks untuk mengajukan pertanyaan lebih lanjut: arah masukan mana yang menghilang, dan keluaran mana yang dapat dicapai pemetaan?

Uji pemahaman Anda

Question 1

Sebuah pemetaan linear mengirim e₁ ke (4, −1) dan e₂ ke (2, 3). Tuliskan matriksnya dalam koordinat standar dan tentukan dimensi masukan serta keluarannya.

Show the step-by-step solution

Dua masukan membentuk basis standar R2\mathbb{R}^2, jadi ada dua kolom. Setiap keluaran memiliki dua koordinat, jadi ada dua baris. Letakkan respons pertama di kolom pertama dan respons kedua di kolom kedua:

A=[42−13].A=\begin{bmatrix}4&2\\-1&3\end{bmatrix}.

Jadi pemetaannya adalah T:R2→R2T:\mathbb{R}^2\to\mathbb{R}^2.

Question 2

Gunakan pemetaan pada contoh untuk menghitung T(1, 2) dari respons basisnya. Tunjukkan bagaimana koordinat menentukan kombinasinya.

Show the step-by-step solution

Masukannya diuraikan sebagai (1,2)=1e1+2e2(1,2)=1e_1+2e_2. Linearitas meneruskan koefisien tersebut ke keluarannya:

T(1,2)=T(e1)+2T(e2)=(3,1)+2(−1,2)=(3,1)+(−2,4)=(1,5).T(1,2)=T(e_1)+2T(e_2) =(3,1)+2(-1,2) =(3,1)+(-2,4) =(1,5).

Pemeriksaan yang sama dengan matriks adalah [3−112][12]=[15]\begin{bmatrix}3&-1\\1&2\end{bmatrix}\begin{bmatrix}1\\2\end{bmatrix} =\begin{bmatrix}1\\5\end{bmatrix}.

Question 3

Pemetaan dari ℝ³ ke ℝ² mengirim e₁ ke (1, 0), e₂ ke (0, 2), dan e₃ ke (−1, 1). Susun matriksnya dan hitung bayangan (2, −1, 3).

Show the step-by-step solution

Ada tiga vektor basis masukan, jadi letakkan responsnya dalam tiga kolom:

A=[10−1021].A=\begin{bmatrix}1&0&-1\\0&2&1\end{bmatrix}.

Terapkan matriks ini pada masukan, atau gabungkan respons sesuai koordinat masukan:

T(2,−1,3)=2(1,0)−1(0,2)+3(−1,1)=(2,0)+(0,−2)+(−3,3)=(−1,1).T(2,-1,3)=2(1,0)-1(0,2)+3(-1,1) =(2,0)+(0,-2)+(-3,3)=(-1,1).

Keluarannya memiliki dua koordinat, sesuai dengan pemetaan ke R2\mathbb{R}^2.

Question 4

Respons T(e₁) = (2, 1) dan T(e₂) = (−1, 3) ditempatkan sebagai baris, bukan kolom. Matriks apa yang dihasilkan, dan apa hasilnya jika bekerja pada (1, 0)?

Show the step-by-step solution

Menempatkan respons yang tercantum sebagai baris menghasilkan B=[21−13]B=\begin{bmatrix}2&1\\-1&3\end{bmatrix}. Mengalikannya dengan (1,0)(1,0) memilih kolom pertama, sehingga B(1,0)=(2,−1)B(1,0)=(2,-1). Respons yang sebenarnya seharusnya T(e1)=(2,1)T(e_1)=(2,1), jadi hasilnya berbeda. Menempatkan keluaran sebagai baris telah mengubah pemetaannya; aturan umumnya adalah menempatkan T(ej)T(e_j) pada kolom ke-jj.

Question 5

Sebuah modul proyeksi mengembalikan f(0) = (5, −2), f(e₁) = (7, 1), dan f(e₂) = (4, 0). Jika modul itu affine, pulihkan bagian matriks linearnya dan vektor biasnya.

Show the step-by-step solution

Untuk pemetaan affine f(x)=Ax+bf(x)=Ax+b, masukan nol memberikan f(0)=bf(0)=b, jadi b=(5,−2)b=(5,-2). Respons linear pertama adalah keluaran basis pertama setelah dikurangi bias: f(e1)−b=(7,1)−(5,−2)=(2,3)f(e_1)-b=(7,1)-(5,-2)=(2,3). Demikian pula, f(e2)−b=(4,0)−(5,−2)=(−1,2)f(e_2)-b=(4,0)-(5,-2)=(-1,2). Letakkan respons yang sudah dikoreksi itu dalam kolom:

A=[2−132],b=[5−2].A=\begin{bmatrix}2&-1\\3&2\end{bmatrix},\qquad b=\begin{bmatrix}5\\-2\end{bmatrix}.

Question 6

Mengapa respons terhadap basis standar menentukan T(x) untuk setiap x ketika T linear? Sebutkan asumsi yang memungkinkan kesimpulan itu.

Show the step-by-step solution

Setiap x=(x1,…,xn)x=(x_1,\ldots,x_n) memiliki uraian x=∑j=1nxjejx=\sum_{j=1}^n x_j e_j. Berdasarkan linearitas, T(x)=T(∑jxjej)=∑jxjT(ej)T(x)=T(\sum_j x_j e_j)=\sum_j x_jT(e_j). Jadi, respons basis yang tercatat menyediakan setiap suku yang diperlukan untuk menghitung keluaran apa pun. Kesimpulan ini bergantung pada TT yang mempertahankan penjumlahan dan perkalian skalar; tanpa linearitas, masukan lain dapat berperilaku berbeda meskipun semua respons basisnya sama.

Question 7

Sebuah fungsi kotak hitam cocok dengan pemetaan linear pada setiap vektor basis standar. Apakah itu membuktikan bahwa fungsinya linear? Berikan satu pengujian tambahan dalam dua dimensi.

Show the step-by-step solution

Tidak. Sejumlah respons yang cocok tidak menyingkirkan perilaku non-linear di tempat lain. Dalam dua dimensi, uji kombinasi masukan seperti e1+e2e_1+e_2: linearitas mengharuskan T(e1+e2)=T(e1)+T(e2)T(e_1+e_2)=T(e_1)+T(e_2). Ketidakcocokan membantah linearitas. Kecocokan menjadi bukti yang berguna untuk kombinasi tersebut, tetapi sendirian tidak membuktikan bahwa aturan itu berlaku untuk setiap masukan yang mungkin.

Sumber

  1. Mathematics for Machine Learning book PDF, Section 2.7
  2. NumPy documentation: numpy.column_stack
  3. PyTorch documentation: torch.nn.Linear