Kursus Matematika untuk AI · Pelajaran 15 dari 180
Penjumlahan Vektor untuk AI: Cara Pembaruan Residual Menggabungkan Sinyal
Pelajari penjumlahan vektor komponen demi komponen, jelajahi geometri jajaran genjangnya, dan temukan kesalahan bentuk, broadcasting, serta penyelarasan fitur di NumPy.
Sebuah lapisan jaringan saraf menerima keadaan dengan tiga koordinat
dan menghitung sebuah pembaruan
Koneksi residual tidak memilih antara keadaan lama dan pembaruan. Koneksi ini menjumlahkan koordinat yang bersesuaian, menghasilkan . Koordinat pertama turun, koordinat kedua naik, dan koordinat ketiga naik; satu aturan menangani ketiga perubahan tersebut.
Pada akhir pelajaran ini, Anda akan mampu menjumlahkan vektor komponen demi komponen, membaca operasi yang sama sebagai perpindahan atau pembaruan fitur, memverifikasinya di NumPy, serta menolak penjumlahan yang bentuk array-nya kebetulan cocok tetapi makna koordinatnya tidak selaras.
Hasil pembelajaran: Menjumlahkan vektor secara komponen dan menafsirkan perpindahan atau campuran fitur yang dihasilkan.
Pelajaran 14: Vektor sebagai Data AI menetapkan bahwa vektor adalah representasi berurutan: koordinat membawa fitur atau sinyal terpelajar tertentu. Penjumlahan vektor bergantung pada urutan itu. Mathematics for Machine Learning companion resmi mengembangkan vektor baris dan kolom serta penjumlahan matriks per elemen dalam Bagian 2.2. Pelajaran ini mengkhususkan aturan tersebut pada vektor; contoh keadaan model, penurunan, kode, geometri interaktif, dan asesmennya adalah karya orisinal.
Satu aturan koordinat menggabungkan seluruh vektor
Misalkan adalah dua vektor real dengan dimensi positif yang sama. Tuliskan koordinatnya sebagai dan , dengan berkisar dari 1 sampai .
Istilah koordinat yang bersesuaian memuat dua syarat. Pertama, vektor harus memiliki dimensi yang sama. Kedua, setiap pasangan harus merujuk pada sistem koordinat yang sama: urutan fitur, satuan, dan konvensi representasi yang sama. Matematika menyatakan syarat dimensinya. Pipeline data juga harus menegakkan syarat semantiknya.
Penjumlahan tidak menggabungkan dua vektor secara konkatenasi. Mengonkatenasi dan akan menghasilkan vektor empat koordinat. Menjumlahkannya tetap menghasilkan dua koordinat:
Ikuti pembaruan residual tanpa melewatkan koordinat
Kembali ke vektor pembuka. Anggap semua posisi termasuk dalam ruang representasi terpelajar yang sama. Hitung jumlahnya satu baris demi satu baris:
| Koordinat | Keadaan saat ini | Pembaruan | Keluaran |
|---|---|---|---|
| 1 | 2.0 | −0.5 | 1.5 |
| 2 | −1.0 | 1.5 | 0.5 |
| 3 | 0.5 | 1.0 | 1.5 |
Pembaruan positif menaikkan koordinat, pembaruan negatif menurunkannya, dan pembaruan nol membiarkannya tidak berubah. Deskripsi itu bersifat aritmetis, bukan tafsir semantik tentang apa “makna” koordinat internal jaringan saraf. Representasi terpelajar dapat menyebarkan informasi ke banyak koordinat, sehingga jumlah itu sendiri tidak mengungkap konsep yang dapat dibaca manusia.
Diagonal dan jalur dua langkah mencapai titik yang sama
Dalam dua dimensi, vektor dapat digambar sebagai panah dari titik asal. Untuk menjumlahkan dan secara geometris, bergerak sepanjang lalu tempatkan salinan di ujungnya. Titik akhirnya adalah karena perpindahan horizontalnya dan perpindahan vertikalnya .
Urutannya dapat dibalik. Bergerak sepanjang lalu sepanjang salinan yang ditranslasikan akan mencapai titik akhir yang sama. Kedua jalur membentuk sisi-sisi berdekatan sebuah jajaran genjang; diagonalnya dari titik asal adalah jumlah tersebut. Gerakkan empat koordinat di bawah untuk menguji arah positif, negatif, sejajar, dan saling meniadakan.
Kedua rute head-to-tail berakhir di koordinat pada baris jumlah. Panah b tertranslasi bergaris putus-putus dimulai di a; panah a tertranslasi bertitik dimulai di b.
| Vektor | Koordinat horizontal | Koordinat vertikal | Peran geometris |
|---|---|---|---|
| Vektor a — panah solid | +3 | +1 | Perpindahan pertama dan satu sisi |
| Vektor b — panah putus-putus | -1 | +2 | Perpindahan kedua dan satu sisi |
| Jumlah a + b — diagonal tebal | +2 | +3 | Titik akhir dan diagonal |
Diagram memakai dua koordinat karena halaman datar dapat menampilkannya. Aturan komponen tidak bergantung pada gambar: untuk vektor di , jumlahkan setiap dari koordinat yang bersesuaian, bahkan ketika terlalu besar untuk digambar.
Tiga fakta aljabar mengikuti koordinat demi koordinat
Penjumlahan vektor mewarisi sifat-sifat penjumlahan bilangan real yang sudah dikenal. Alasannya bersifat lokal: setiap identitas vektor dapat diperiksa pada koordinat .
Urutan tidak mengubah jumlah. Karena untuk bilangan real,
Semua koordinat sama, sehingga . Ini disebut komutativitas, dan jajaran genjang menunjukkan fakta yang sama sebagai dua rute menuju satu titik akhir.
Pengelompokan tidak mengubah jumlah tiga vektor. Untuk vektor lain ,
Asosiativitas ini menghasilkan vektor matematika yang sama persis pada pengelompokan mana pun. Kode dengan presisi terbatas dapat mengakumulasi galat pembulatan yang sedikit berbeda ketika urutan banyak penjumlahan diubah. Baik asosiativitas matematis maupun kedekatan numerik tidak memberi izin untuk mencampur sistem koordinat.
Vektor nol tidak mengubah apa pun. Misalkan . Maka
sehingga . Cabang residual yang mengembalikan vektor nol tidak membuat perubahan numerik pada titik penjumlahan tersebut.
Koneksi residual menggunakan mekanisme penjumlahan yang tepat ini
Makalah ResNet asli menulis blok residual sebagai : cabang terpelajar menghitung , sedangkan shortcut membawa ke operasi penjumlahan. Para penulis menyatakan bahwa ini adalah penjumlahan per elemen dan kedua suku harus memiliki dimensi yang sama. Jika dimensinya tidak sama, arsitekturnya dapat menggunakan proyeksi terpelajar pada shortcut sebelum menjumlahkan.
Transformer asli memberi contoh konkret lain. Encoder-nya menerapkan koneksi residual di sekitar setiap sublayer:
Dalam arsitektur itu, keluaran embedding dan sublayer menggunakan dimensi yang sama, sehingga jumlah per koordinat terdefinisi. Normalisasi setelah penjumlahan adalah operasi lain; penjumlahan vektor sendiri berakhir pada .
Contoh-contoh ini mendukung klaim implementasi yang sempit: koneksi residual menggabungkan input dan pembaruan yang kompatibel dengan penjumlahan per elemen. Persamaan itu sendiri tidak membuktikan bahwa setiap fitur input bertahan tanpa perubahan, bahwa setiap koordinat memiliki makna terisolasi, atau bahwa sembarang dua array dengan panjang sama merupakan pasangan residual yang valid.
NumPy menjumlahkan nilai dan melakukan broadcasting bentuk
Operasi add NumPy menjumlahkan argumennya secara per elemen. Untuk dua array satu dimensi dengan bentuk yang sama, np.add(state, update) dan state + update secara langsung mengimplementasikan aturan komponen:
import numpy as np
state = np.array([2.0, -1.0, 0.5])
update = np.array([-0.5, 1.5, 1.0])
if state.shape != update.shape:
raise ValueError("A residual update must match the state shape")
combined = np.add(state, update)
print("state shape:", state.shape)
print("update shape:", update.shape)
print("combined:", combined)
Keluaran yang terverifikasi adalah
state shape: (3,)
update shape: (3,)
combined: [1.5 0.5 1.5]
Satu batch mempertahankan satu keadaan per baris. Array dengan bentuk (2, 3) yang cocok menjumlahkan setiap pembaruan ke keadaan yang bersesuaian:
batch = np.array([
[2.0, -1.0, 0.5],
[0.0, 3.0, -2.0],
])
updates = np.array([
[-0.5, 1.5, 1.0],
[ 1.0, -1.0, 0.5],
])
print("batch shape:", batch.shape)
print("batch sums:\n", batch + updates)
Keluaran yang terverifikasi adalah
batch shape: (2, 3)
batch sums:
[[ 1.5 0.5 1.5]
[ 1. 2. -1.5]]
Baris keluaran pertama adalah contoh yang dihitung di atas. Baris kedua berasal dari .
Operasi array yang berhasil tetap dapat menjadi penjumlahan yang keliru
NumPy sengaja mendukung broadcasting: jika bentuk berbeda tetapi memenuhi aturan kompatibilitasnya, array yang lebih kecil dapat bekerja pada array yang lebih besar. Menambahkan pembaruan berbentuk (3,) ke batch berbentuk (2, 3) berhasil dan menerapkan tiga nilai yang sama ke kedua baris:
broadcast_update = np.array([0.5, 0.0, -0.5])
result = batch + broadcast_update
print("broadcast shape:", result.shape)
print("broadcast sums:\n", result)
broadcast shape: (2, 3)
broadcast sums:
[[ 2.5 -1. 0. ]
[ 0.5 3. -2.5]]
Itu mungkin operasi yang memang dimaksudkan—misalnya satu pembaruan bersama untuk setiap baris batch. Namun, ini bukan penjumlahan antara dua vektor individual dengan bentuk sama, dan berbahaya jika ekspansi tambahan itu tidak disengaja. Validasi kontrak yang diinginkan model, bukan sekadar bentuk yang diterima NumPy.
Bentuk yang sama juga belum cukup. Pertimbangkan array berikut:
NumPy mengembalikan , tetapi perhitungan pertamanya menjumlahkan clicks dengan returns. Tidak ada pemeriksaan bentuk numerik yang dapat memulihkan label yang hilang. Susun ulang satu vektor ke konvensi koordinat vektor lainnya—atau tolak operasinya—sebelum penjumlahan.
Penjumlahan vektor kini lebih dari sekadar rumus: ia adalah kontrak koordinat, jalur geometris, dan operasi penggabungan di dalam blok residual. Pelajaran berikutnya akan mengendalikan kekuatan satu vektor melalui perkalian skalar; jumlah hari ini menyediakan operasi yang kelak akan menyatukan sinyal-sinyal berskala tersebut.
Uji pemahaman Anda
Pertanyaan 1
Jumlahkan a = [3, −2, 1]ᵀ dan b = [−5, 4, 0.5]ᵀ. Tunjukkan setiap perhitungan koordinat dan nyatakan dimensi hasilnya.
Tampilkan solusi langkah demi langkah
Kedua input memiliki tiga koordinat, jadi jumlahnya—jika dihitung komponen demi komponen—juga berada di .
Kumpulkan hasilnya dalam urutan semula:
Penjumlahan mengubah nilainya, tetapi tidak memasukkan atau menghapus koordinat.
Pertanyaan 2
Untuk a = (2, 1) dan b = (−1, 3), telusuri rute head-to-tail a lalu b. Di mana rute itu berakhir, dan mengapa titik tersebut merupakan diagonal jajaran genjang?
Tampilkan solusi langkah demi langkah
Mulai dari titik asal . Mengikuti membawa kita ke . Salinan tertranslasi dari kemudian mengubah koordinat horizontal sebesar dan koordinat vertikal sebesar :
Membalik urutan menghasilkan
Kedua rute adalah dua pasang sisi sejajar sebuah jajaran genjang. Karena keduanya mencapai , panah dari titik asal ke adalah diagonalnya dan merepresentasikan .
Pertanyaan 3
Untuk setiap a, b ∈ ℝⁿ, jelaskan secara koordinat mengapa a + b = b + a. Jangan hanya mengandalkan gambar dua dimensi.
Tampilkan solusi langkah demi langkah
Pilih koordinat sembarang . Menurut definisi penjumlahan vektor,
Penjumlahan bilangan real bersifat komutatif, sehingga . Terapkan definisi vektor dalam arah sebaliknya untuk memperoleh
Jadi kedua jumlah sama pada koordinat sembarang tersebut. Argumen ini berlaku untuk setiap koordinat, sehingga vektornya sama: . Penalaran ini bekerja pada dimensi berhingga apa pun, termasuk dimensi yang tidak dapat digambar.
Pertanyaan 4
Sebuah cabang residual mengembalikan [0, 0, 0, 0]ᵀ untuk keadaan x ∈ ℝ⁴. Hitung keluaran x + 0 dan sebutkan asumsi yang diperlukan sebelum mengatakan cabang itu tidak membuat perubahan bermakna.
Tampilkan solusi langkah demi langkah
Tuliskan . Penjumlahan per koordinat menghasilkan
Jadi titik penjumlahan itu tidak membuat perubahan numerik. Menyebutnya “tidak ada perubahan bermakna” juga mengasumsikan bahwa keadaan dan pembaruan nol memakai representasi empat koordinat yang sama, dan tidak ada operasi lain—seperti normalisasi—yang mengubah nilainya setelah itu.
Pertanyaan 5
Dapatkah [1, 2]ᵀ + [3, 4, 5]ᵀ menjadi jumlah vektor? Diagnosis masalahnya, lalu nyatakan satu solusi tingkat arsitektur untuk blok residual dengan dimensi yang tidak cocok.
Tampilkan solusi langkah demi langkah
Vektor pertama berada di dan yang kedua di . Penjumlahan komponen membutuhkan input kedua yang bersesuaian untuk setiap koordinat keluaran, tetapi vektor pertama tidak memiliki koordinat ketiga. Karena itu, jumlah vektor tersebut tidak terdefinisi seperti ditulis.
Arsitektur residual dapat lebih dulu memetakan satu cabang ke dimensi cabang lainnya. Misalnya, proyeksi dapat menghasilkan dari . Penjumlahan yang terdefinisi kemudian adalah , asalkan proyeksi itu juga menetapkan semantik koordinat yang diinginkan. Padding adalah pilihan spesifik arsitektur lainnya, tetapi menghilangkan atau menciptakan koordinat secara diam-diam bukan penjumlahan vektor.
Pertanyaan 6
Dua array berbentuk (3,) memakai urutan fitur (clicks, purchases, returns) dan (returns, clicks, purchases). Mengapa penjumlahan berdasarkan posisi tidak valid, dan bagaimana array kedua harus disiapkan?
Tampilkan solusi langkah demi langkah
Kesamaan bentuk memasangkan posisi 1 dengan posisi 1, tetapi label menunjukkan bahwa ini akan menjumlahkan clicks dengan returns. Posisi 2 dan 3 juga tidak selaras. Operasi tersebut menghasilkan angka tanpa interpretasi fitur yang konsisten.
Pertama, pasangkan setiap nilai pada array kedua dengan labelnya. Lalu susun ulang nilai berlabel tersebut ke dalam
konvensi yang dipakai array pertama. Hanya setelah kedua array menyepakati dimensi, urutan, dan satuan, penjumlahan berdasarkan posisi boleh dijalankan. NumPy tidak dapat melakukan pemeriksaan semantik ini dari array numerik tanpa label fitur.
Pertanyaan 7
Sebuah batch berbentuk (4, 3), dan pembaruan berbentuk (3,). NumPy menerima batch + update. Apa bentuk keluaran dan perhitungan apa yang terjadi? Pertanyaan apa yang harus dijawab programmer sebelum mempercayainya?
Tampilkan solusi langkah demi langkah
NumPy membandingkan dimensi terakhir. Dimensi terakhir keduanya adalah 3, sedangkan dimensi awal update yang hilang bertindak seperti 1 dan dapat diperluas ke empat baris batch. Jadi, bentuk keluarannya (4, 3).
Untuk setiap indeks baris dan koordinat , NumPy menghitung
Program menerapkan pembaruan tiga koordinat yang sama ke keempat baris. Programmer harus menentukan apakah pembaruan bersama memang dimaksudkan. Broadcasting yang berhasil membuktikan kompatibilitas bentuk menurut aturan NumPy; itu tidak membuktikan bahwa kontrak model memang menghendaki satu pembaruan dipakai ulang untuk semua item.
Pertanyaan 8
Sebuah sublayer menerima x = [1, −2, 3]ᵀ dan mengembalikan F(x) = [0.5, 2, −1]ᵀ. Hitung jumlah residualnya, lalu jelaskan dengan tepat apa yang dibuktikan dan tidak dibuktikan oleh aritmetika tersebut.
Tampilkan solusi langkah demi langkah
Jumlahkan koordinat yang bersesuaian:
Aritmetika ini membuktikan bahwa input yang kompatibel dan keluaran sublayer digabungkan secara komponen menjadi satu hasil dengan tiga koordinat. Aritmetika ini tidak mengidentifikasi makna manusiawi koordinat mana pun, tidak membuktikan bahwa informasi asli dapat dipulihkan sepenuhnya, dan tidak menunjukkan apa yang akan dilakukan normalisasi atau layer berikutnya. Semua itu adalah sifat representasi terpelajar dan arsitektur di sekitarnya, bukan konsekuensi dari tanda plus semata.