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.

Bagikan artikel ini

Sebuah lapisan jaringan saraf menerima keadaan dengan tiga koordinat

x=[2−10.5]\boldsymbol{x}=\begin{bmatrix}2\\-1\\0.5\end{bmatrix}

dan menghitung sebuah pembaruan

u=[−0.51.51].\boldsymbol{u}=\begin{bmatrix}-0.5\\1.5\\1\end{bmatrix}.

Koneksi residual tidak memilih antara keadaan lama dan pembaruan. Koneksi ini menjumlahkan koordinat yang bersesuaian, menghasilkan y=x+u=[1.5,0.5,1.5]T\boldsymbol{y}=\boldsymbol{x}+\boldsymbol{u}=[1.5,0.5,1.5]^\mathsf{T}. 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 jj 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 a,b∈Rn\boldsymbol{a},\boldsymbol{b}\in\mathbb{R}^{n} adalah dua vektor real dengan dimensi positif nn yang sama. Tuliskan koordinatnya sebagai aja_j dan bjb_j, dengan jj berkisar dari 1 sampai nn.

Istilah koordinat yang bersesuaian memuat dua syarat. Pertama, vektor harus memiliki dimensi yang sama. Kedua, setiap pasangan aj,bja_j,b_j 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 [a1,a2]T[a_1,a_2]^\mathsf{T} dan [b1,b2]T[b_1,b_2]^\mathsf{T} akan menghasilkan vektor empat koordinat. Menjumlahkannya tetap menghasilkan dua koordinat:

[a1a2]+[b1b2]=[a1+b1a2+b2].\begin{bmatrix}a_1\\a_2\end{bmatrix}+\begin{bmatrix}b_1\\b_2\end{bmatrix}=\begin{bmatrix}a_1+b_1\\a_2+b_2\end{bmatrix}.

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:

KoordinatKeadaan saat ini xjx_jPembaruan uju_jKeluaran yj=xj+ujy_j=x_j+u_j
12.0−0.51.5
2−1.01.50.5
30.51.01.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 a\boldsymbol{a} dan b\boldsymbol{b} secara geometris, bergerak sepanjang a\boldsymbol{a} lalu tempatkan salinan b\boldsymbol{b} di ujungnya. Titik akhirnya adalah a+b\boldsymbol{a}+\boldsymbol{b} karena perpindahan horizontalnya a1+b1a_1+b_1 dan perpindahan vertikalnya a2+b2a_2+b_2.

Urutannya dapat dibalik. Bergerak sepanjang b\boldsymbol{b} lalu sepanjang salinan a\boldsymbol{a} 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.

Jajaran genjang vektor interaktif: ubah kedua vektor dan bandingkan jalur dua langkah dengan jumlah diagonal.
Pilih koordinat horizontal dan vertikal

Setiap slider berjalan dari −4 hingga 4 dengan langkah 1 dan dapat digunakan dengan tombol panah.

+3
+1
-1
+2

Perhitungan saat ini: a = (+3, +1), b = (-1, +2), jadi a + b = (+2, +3).

Vektor a — panah solidVektor b — panah putus-putusJumlah a + b — diagonal tebal

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.

Alternatif numerik untuk jajaran genjang saat ini
VektorKoordinat horizontalKoordinat vertikalPeran geometris
Vektor a — panah solid+3+1Perpindahan pertama dan satu sisi
Vektor b — panah putus-putus-1+2Perpindahan kedua dan satu sisi
Jumlah a + b — diagonal tebal+2+3Titik akhir dan diagonal

Diagram memakai dua koordinat karena halaman datar dapat menampilkannya. Aturan komponen tidak bergantung pada gambar: untuk vektor di Rn\mathbb{R}^{n}, jumlahkan setiap dari nn koordinat yang bersesuaian, bahkan ketika nn 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 jj.

Urutan tidak mengubah jumlah. Karena aj+bj=bj+aja_j+b_j=b_j+a_j untuk bilangan real,

(a+b)j=aj+bj=bj+aj=(b+a)j.(\boldsymbol{a}+\boldsymbol{b})_j=a_j+b_j=b_j+a_j=(\boldsymbol{b}+\boldsymbol{a})_j.

Semua koordinat sama, sehingga a+b=b+a\boldsymbol{a}+\boldsymbol{b}=\boldsymbol{b}+\boldsymbol{a}. 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 c∈Rn\boldsymbol{c}\in\mathbb{R}^{n},

((a+b)+c)j=(aj+bj)+cj=aj+(bj+cj)=(a+(b+c))j.\begin{aligned} ((\boldsymbol{a}+\boldsymbol{b})+\boldsymbol{c})_j&=(a_j+b_j)+c_j\\ &=a_j+(b_j+c_j)\\ &=(\boldsymbol{a}+(\boldsymbol{b}+\boldsymbol{c}))_j. \end{aligned}

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 0=[0,…,0]T∈Rn\boldsymbol{0}=[0,\ldots,0]^\mathsf{T}\in\mathbb{R}^{n}. Maka

(a+0)j=aj+0=aj,(\boldsymbol{a}+\boldsymbol{0})_j=a_j+0=a_j,

sehingga a+0=a\boldsymbol{a}+\boldsymbol{0}=\boldsymbol{a}. 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 y=F(x)+x\boldsymbol{y}=\mathcal{F}(\boldsymbol{x})+\boldsymbol{x}: cabang terpelajar menghitung F(x)\mathcal{F}(\boldsymbol{x}), sedangkan shortcut membawa x\boldsymbol{x} 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:

LayerNorm⁡(x+Sublayer⁡(x)).\operatorname{LayerNorm}\left(\boldsymbol{x}+\operatorname{Sublayer}(\boldsymbol{x})\right).

Dalam arsitektur itu, keluaran embedding dan sublayer menggunakan dimensi dmodel=512d_{\text{model}}=512 yang sama, sehingga jumlah per koordinat terdefinisi. Normalisasi setelah penjumlahan adalah operasi lain; penjumlahan vektor sendiri berakhir pada x+Sublayer⁡(x)\boldsymbol{x}+\operatorname{Sublayer}(\boldsymbol{x}).

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 [0,3,−2]T+[1,−1,0.5]T=[1,2,−1.5]T[0,3,-2]^\mathsf{T}+[1,-1,0.5]^\mathsf{T}=[1,2,-1.5]^\mathsf{T}.

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:

p=[4,1,0]Tdengan urutan (clicks,purchases,returns),q=[2,3,5]Tdengan urutan (returns,clicks,purchases).\begin{aligned} \boldsymbol{p}&=[4,1,0]^\mathsf{T} &&\text{dengan urutan }(\texttt{clicks},\texttt{purchases},\texttt{returns}),\\ \boldsymbol{q}&=[2,3,5]^\mathsf{T} &&\text{dengan urutan }(\texttt{returns},\texttt{clicks},\texttt{purchases}). \end{aligned}

NumPy mengembalikan [6,4,5]T[6,4,5]^\mathsf{T}, 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 R3\mathbb{R}^{3}.

(a+b)1=3+(−5)=−2,(a+b)2=−2+4=2,(a+b)3=1+0.5=1.5.\begin{aligned} (\boldsymbol{a}+\boldsymbol{b})_1&=3+(-5)=-2,\\ (\boldsymbol{a}+\boldsymbol{b})_2&=-2+4=2,\\ (\boldsymbol{a}+\boldsymbol{b})_3&=1+0.5=1.5. \end{aligned}

Kumpulkan hasilnya dalam urutan semula:

a+b=[−221.5]∈R3.\boldsymbol{a}+\boldsymbol{b}=\begin{bmatrix}-2\\2\\1.5\end{bmatrix}\in\mathbb{R}^{3}.

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 (0,0)(0,0). Mengikuti a=(2,1)\boldsymbol{a}=(2,1) membawa kita ke (2,1)(2,1). Salinan tertranslasi dari b=(−1,3)\boldsymbol{b}=(-1,3) kemudian mengubah koordinat horizontal sebesar −1-1 dan koordinat vertikal sebesar 33:

(2,1)+(−1,3)=(2−1,1+3)=(1,4).(2,1)+(-1,3)=(2-1,1+3)=(1,4).

Membalik urutan menghasilkan

(−1,3)+(2,1)=(−1+2,3+1)=(1,4).(-1,3)+(2,1)=(-1+2,3+1)=(1,4).

Kedua rute adalah dua pasang sisi sejajar sebuah jajaran genjang. Karena keduanya mencapai (1,4)(1,4), panah dari titik asal ke (1,4)(1,4) adalah diagonalnya dan merepresentasikan a+b\boldsymbol{a}+\boldsymbol{b}.

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 j∈{1,…,n}j\in\{1,\ldots,n\}. Menurut definisi penjumlahan vektor,

(a+b)j=aj+bj.(\boldsymbol{a}+\boldsymbol{b})_j=a_j+b_j.

Penjumlahan bilangan real bersifat komutatif, sehingga aj+bj=bj+aja_j+b_j=b_j+a_j. Terapkan definisi vektor dalam arah sebaliknya untuk memperoleh

bj+aj=(b+a)j.b_j+a_j=(\boldsymbol{b}+\boldsymbol{a})_j.

Jadi kedua jumlah sama pada koordinat sembarang jj tersebut. Argumen ini berlaku untuk setiap koordinat, sehingga vektornya sama: a+b=b+a\boldsymbol{a}+\boldsymbol{b}=\boldsymbol{b}+\boldsymbol{a}. 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 x=[x1,x2,x3,x4]T\boldsymbol{x}=[x_1,x_2,x_3,x_4]^\mathsf{T}. Penjumlahan per koordinat menghasilkan

x+0=[x1+0x2+0x3+0x4+0]=[x1x2x3x4]=x.\boldsymbol{x}+\boldsymbol{0}=\begin{bmatrix}x_1+0\\x_2+0\\x_3+0\\x_4+0\end{bmatrix}=\begin{bmatrix}x_1\\x_2\\x_3\\x_4\end{bmatrix}=\boldsymbol{x}.

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 R2\mathbb{R}^{2} dan yang kedua di R3\mathbb{R}^{3}. 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 PP dapat menghasilkan Px∈R3P\boldsymbol{x}\in\mathbb{R}^{3} dari x∈R2\boldsymbol{x}\in\mathbb{R}^{2}. Penjumlahan yang terdefinisi kemudian adalah Px+uP\boldsymbol{x}+\boldsymbol{u}, 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

(clicks,purchases,returns),(\texttt{clicks},\texttt{purchases},\texttt{returns}),

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 i∈{0,1,2,3}i\in\{0,1,2,3\} dan koordinat j∈{0,1,2}j\in\{0,1,2\}, NumPy menghitung

result[i,j]=batch[i,j]+update[j].\texttt{result}[i,j]=\texttt{batch}[i,j]+\texttt{update}[j].

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:

y=x+F(x)=[1+0.5−2+23+(−1)]=[1.502].\begin{aligned} \boldsymbol{y}&=\boldsymbol{x}+\mathcal{F}(\boldsymbol{x})\\ &=\begin{bmatrix}1+0.5\\-2+2\\3+(-1)\end{bmatrix}\\ &=\begin{bmatrix}1.5\\0\\2\end{bmatrix}. \end{aligned}

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.

Sumber

  1. Mathematics for Machine Learning companion website
  2. Mathematics for Machine Learning book PDF
  3. NumPy documentation: numpy.add
  4. NumPy documentation: broadcasting
  5. Deep Residual Learning for Image Recognition
  6. Attention Is All You Need