Kursus Matematika untuk AI · Pelajaran 36 dari 180

Kernel dan Image Menunjukkan Informasi yang Hilang dan Jangkauan Lapisan Linear

Gunakan kernel dan image matriks untuk mengenali arah input yang dibuang, output yang dapat dicapai, serta batas rank pada proyeksi yang dipelajari.

Bagikan artikel ini

Proyeksi sebuah model dapat mengubah dua vektor fitur yang berbeda menjadi representasi yang sama. Setelah itu terjadi, lapisan berikutnya tidak dapat membedakan kedua input tersebut hanya dari representasi itu. Dua konsep menjelaskan efek ini secara tepat: kernel menunjukkan perubahan input yang dihapus oleh pemetaan linear, sedangkan image menjelaskan output yang dapat dihasilkannya.

Di akhir pelajaran ini, kamu akan dapat mencari kedua himpunan tersebut untuk sebuah matriks kecil dan menjelaskan apa yang diungkapkannya tentang hilangnya informasi dan output yang dapat direpresentasikan.

Hasil belajar: Temukan contoh sederhana null space dan image, lalu tafsirkan maknanya.

Pelajaran ini menghubungkan rank matriks dari Pelajaran 033 dengan representasi matriks untuk pemetaan linear dari Pelajaran 035. Bagian 2.7.3 dari Mathematics for Machine Learning memperkenalkan image dan kernel suatu pemetaan linear. Proyeksi, perhitungan, interpretasi AI, visual, dan pertanyaan di bawah ini adalah karya orisinal.

Satu proyeksi dapat menghapus arah sekaligus membatasi output

Perhatikan pemetaan P:R3→R3P: \mathbb{R}^3\to\mathbb{R}^3 yang direpresentasikan oleh

Pemetaan ini mempertahankan dua koordinat pertama dan menetapkan koordinat ketiga menjadi nol. Kernel dari pemetaan linear T:V→WT:V\to W adalah himpunan input di VV yang dipetakan ke vektor nol di WW. Image-nya adalah himpunan output di WW yang dapat dihasilkan oleh pemetaan itu dari suatu input. Kedua himpunan ini berada di ruang yang berbeda: kernel berkaitan dengan input, sedangkan image berkaitan dengan output.

Di sini, kernel berarti null space dari suatu pemetaan linear. Dalam machine learning, “kernel” juga berarti fungsi yang membandingkan contoh pada metode kernel; itu konsep yang berbeda.

Untuk PP, input mencapai nol tepat ketika x=0x=0 dan y=0y=0, sementara zz boleh bernilai apa saja. Jadi, kernel-nya adalah sumbu zz:

ker⁡(P)={(0,0,z):z∈R}=span⁡{(0,0,1)}.\ker(P)=\{(0,0,z):z\in\mathbb{R}\} =\operatorname{span}\{(0,0,1)\}.

Setiap output berbentuk (x,y,0)(x,y,0), dan setiap vektor seperti itu dapat dicapai dengan input (x,y,0)(x,y,0). Jadi, image-nya adalah bidang xyxy:

Im⁡(P)={(x,y,0):x,y∈R}=span⁡{(1,0,0),(0,1,0)}.\operatorname{Im}(P)=\{(x,y,0):x,y\in\mathbb{R}\} =\operatorname{span}\{(1,0,0),(0,1,0)\}.

Gambar ini memisahkan kedua pertanyaan tersebut. Arah kernel vertikal menandai variasi input yang lenyap; bidang image yang diarsir menandai output yang masih dapat dicapai.

Satu pemetaan, dua subruang yang berbedaP(x, y, z) = (x, y, 0): perubahan z menggerakkan input sepanjang kernel, sementara setiap output tetap berada pada bidang xy.

Ruang input ℝ³

Ruang input ℝ³Bidang xy diarsir. Dua panah input yang berbeda berakhir pada titik dengan ketinggian berbeda. Segmen vertikal putus-putus di antara keduanya berlabel k = (0, 0, 2), yaitu arah kernel.x₁x₂x₃bidang xyxx + kk
  • x = (2, 1, 0)
  • x + k = (2, 1, 2)
  • k = (0, 0, 2)

Output yang dapat dicapai: Im(P)

Output yang dapat dicapai: Im(P)Bidang output yang dapat dicapai adalah z = 0. Kedua input dipetakan ke titik yang sama, (2, 1, 0), dan arah kernel dipetakan ke vektor nol.y₁y₂y₃z = 0

Koordinat ketiga setiap output adalah 0

P(x) = P(x + k) = (2, 1, 0)

Vektor kernel menjelaskan input mana yang melebur

Ambil x=(2,1,0)x=(2,1,0) lalu tambahkan vektor kernel k=(0,0,2)k=(0,0,2). Kedua input ini berbeda, tetapi nilai hasil pemetaannya sama:

Jadi, kernel bukanlah daftar input yang diabaikan matriks satu per satu. Kernel adalah kumpulan arah yang dapat dilalui input tanpa mengubah hasilnya. Jika model hanya menerima vektor hasil proyeksi, model tidak dapat memulihkan posisi awal input di sepanjang arah tersebut.

Image membatasi apa yang dapat diterima kode di tahap berikutnya

Rank PP yang sama adalah dua karena image-nya memiliki dua arah independen. Dimensi kernel-nya juga satu. Kedua angka ini berjumlah sama dengan dimensi ruang input:

dim⁡(ker⁡(P))⏟nullity 1+dim⁡(Im⁡(P))⏟rank 2=dim⁡(R3)⏟3.\underbrace{\dim(\ker(P))}_{\text{nullity }1} +\underbrace{\dim(\operatorname{Im}(P))}_{\text{rank }2} =\underbrace{\dim(\mathbb{R}^3)}_{3}.

Inilah teorema rank-nullity untuk pemetaan linear dari ruang input berdimensi hingga. Teorema ini menghubungkan jumlah arah output independen dengan jumlah arah input independen yang dipetakan menjadi nol. Untuk matriks m×nm\times n yang bekerja pada vektor kolom, image adalah span kolom-kolomnya, kernel diperoleh dengan menyelesaikan Ax=0Ax=0, dan rank ditambah nullity sama dengan nn, yaitu jumlah koordinat input.

Angka terakhir itu penting saat membaca bentuk tensor dalam kode. Operator @ NumPy berarti perkalian matriks: matriks m×nm\times n dikalikan vektor dengan nn elemen menghasilkan vektor dengan mm elemen. Untuk proyeksi ini, perhitungan singkat berikut memastikan bahwa outputnya sama dan arah kernel lenyap:

import numpy as np

P = np.diag([1, 1, 0])
x = np.array([2, 1, 2])
k = np.array([0, 0, 2])

print(P @ x)        # [2 1 0]
print(P @ (x - k))  # [2 1 0]
print(P @ k)        # [0 0 0]

Pembedaan yang sama membantu mendiagnosis proyeksi yang dipelajari

Matriks bobot hasil pembelajaran juga memetakan satu vektor fitur ke vektor fitur lain. torch.nn.Linear dari PyTorch menerapkan pemetaan afin y=xAT+by=xA^\mathsf{T}+b pada input yang disusun sebagai baris; menetapkan bias=False menyisakan pemetaan matriks saja. Dalam notasi vektor kolom, operasi yang sama adalah Au+bAu+b. Pemetaan bobot menentukan perbedaan input mana yang lenyap: jika A(u−v)=0A(u-v)=0, kedua input menghasilkan output yang sama karena bias yang sama saling meniadakan. Image pemetaan bobot menjelaskan arah output yang tersedia dari bobot; dengan bias, himpunan output lengkap adalah subruang yang bergeser, b+Im⁡(A)b+\operatorname{Im}(A) (dokumentasi PyTorch).

Kernel dan image menjawab pertanyaan debugging yang berbeda. Kernel tak nol berarti beberapa vektor fitur berbeda menjadi tak dapat dibedakan setelah melewati lapisan ini. Image yang terbatas berarti kombinasi fitur output tertentu sama sekali tidak dapat dihasilkan. Pemetaan dari R3\mathbb{R}^3 ke R2\mathbb{R}^2 dapat memiliki kernel nontrivial sambil tetap mencapai setiap titik dalam ruang output dua dimensinya. Sebaliknya, pemetaan dari R2\mathbb{R}^2 ke R3\mathbb{R}^3 dapat mempertahankan semua perbedaan input sementara outputnya terletak pada sebuah bidang. Bentuk output matriks saja tidak dapat menjawab kedua pertanyaan itu; rank dan subruang yang sebenarnya yang memberi tahu kita.

Langkah berikutnya adalah mencari arah mana yang redundan sebelum memampatkan representasi. Jika pilihan itu dipelajari alih-alih ditentukan sebelumnya, memeriksa rank, kernel, dan image pemetaan bobot akan menunjukkan apa yang masih dapat dibedakan dan diekspresikan oleh model di tahap berikutnya.

Uji pemahaman

Question 1

Apa kernel dari P(x, y, z) = (x, y, 0), dan apa image-nya?

Show the step-by-step solution

Agar input dipetakan ke nol, dua koordinat pertamanya harus nol, sedangkan koordinat ketiganya boleh berupa bilangan real apa saja. Jadi, ker⁡(P)={(0,0,z):z∈R}=span⁡{(0,0,1)}\ker(P)=\{(0,0,z):z\in\mathbb{R}\}=\operatorname{span}\{(0,0,1)\}. Setiap output memiliki koordinat ketiga nol, dan setiap (x,y,0)(x,y,0) dihasilkan oleh input (x,y,0)(x,y,0). Karena itu, Im⁡(P)={(x,y,0):x,y∈R}\operatorname{Im}(P)=\{(x,y,0):x,y\in\mathbb{R}\}, yaitu bidang xyxy.

Question 2

Hitung P(4, −2, 5). Informasi apa yang dipertahankan dan dibuang oleh output?

Show the step-by-step solution

Terapkan matriks pada setiap koordinat: P(4,−2,5)=(4,−2,0)P(4,-2,5)=(4,-2,0). Koordinat pertama dan kedua dipertahankan, sedangkan koordinat ketiga dihapus. Karena itu, dua input dengan dua koordinat pertama yang sama akan memiliki output yang sama.

Question 3

Mengapa (2, 1, 0) dan (2, 1, 6) memiliki output yang sama di bawah P?

Show the step-by-step solution

Selisih keduanya adalah (0,0,6)(0,0,6), yang berada di dalam kernel karena P(0,0,6)=(0,0,0)P(0,0,6)=(0,0,0). Berdasarkan linearitas, P(2,1,6)=P((2,1,0)+(0,0,6))=P(2,1,0)+P(0,0,6)=(2,1,0)P(2,1,6)=P((2,1,0)+(0,0,6))=P(2,1,0)+P(0,0,6)=(2,1,0).

Question 4

Jika pemetaan linear memiliki ruang input berdimensi tiga dan rank 2, berapa nullity-nya?

Show the step-by-step solution

Teorema rank-nullity menyatakan rank+nullity=dim⁡(V)\text{rank}+\text{nullity}=\dim(V). Substitusi memberi 2+nullity=32+\text{nullity}=3, sehingga nullity-nya adalah 11. Ada satu arah input independen yang dipetakan menjadi nol.

Question 5

Dapatkah pemetaan dari ℝ³ ke ℝ² memiliki kernel tak nol dan tetap mencapai setiap output di ℝ²?

Show the step-by-step solution

Ya. Pemetaan koordinat (x,y,z)↦(x,y)(x,y,z)\mapsto(x,y) memiliki kernel {(0,0,z):z∈R}\{(0,0,z):z\in\mathbb{R}\}, yang bukan nol, dan image-nya adalah seluruh R2\mathbb{R}^2 karena setiap (a,b)(a,b) dicapai dari (a,b,0)(a,b,0). Hilangnya informasi input dan ketercapaian output adalah sifat yang terpisah.

Question 6

Jika lapisan linear menambahkan bias tetap b, apakah bias itu mengubah perbedaan input yang melebur menjadi output yang sama?

Show the step-by-step solution

Tidak. Jika F(x)=Ax+bF(x)=Ax+b, maka F(u)−F(v)=(Au+b)−(Av+b)=A(u−v)F(u)-F(v)=(Au+b)-(Av+b)=A(u-v). Bias saling meniadakan, sehingga F(u)=F(v)F(u)=F(v) tepat ketika u−vu-v berada di kernel pemetaan bobot AA. Himpunan output yang mungkin bergeser dari Im⁡(A)\operatorname{Im}(A) menjadi b+Im⁡(A)b+\operatorname{Im}(A).

Question 7

Apa yang diberitahukan oleh pemetaan bobot yang rank-nya kurang penuh tentang kemungkinan representasi pada lapisan model?

Show the step-by-step solution

Rank yang kurang penuh berarti image memiliki lebih sedikit arah independen daripada dimensi ruang output, sehingga beberapa arah output tak dapat dicapai. Jika rank juga lebih kecil daripada dimensi input, teorema rank-nullity menunjukkan bahwa kernel juga tak nol: beberapa input berbeda melebur. Periksa kedua dimensi sebelum menyimpulkan bahwa kedua efek tersebut terjadi.

Sumber

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