Kursus Matematika untuk AI · Pelajaran 7 dari 180
Pangkat untuk AI: Mengapa Menggandakan Konteks Dapat Melipatgandakan Kerja Attention Empat Kali
Pelajari hukum pangkat dan akar, lalu gunakan penjelajah skala logaritmik dan NumPy untuk melihat mengapa dimensi model atau konteks yang digandakan dapat menghasilkan empat kali lebih banyak kuantitas.
Sebuah urutan sepanjang token berisi pasangan token berurutan. Gandakan urutan itu menjadi token dan jumlah pasangan menjadi —empat kali lebih banyak. Tidak ada yang berubah pada angka ; yang berubah adalah operasi yang diterapkan padanya.
Operasi itu adalah pangkat. Pangkat memadatkan perkalian berulang menjadi superskrip kecil, dan superskrip memberi tahu kita bagaimana suatu kuantitas merespons ketika skala masukannya berubah. Pada akhir pelajaran ini, Anda akan dapat memanipulasi eksponen positif, nol, negatif, dan pecahan; memperlakukan akar sebagai pangkat invers dengan batas domain bilangan real; serta menghitung kapan kuantitas AI bertumbuh secara linear atau kuadratik.
Pelajaran ini dibangun di atas pandangan Pelajaran 2 tentang fungsi sebagai aturan yang dapat digunakan ulang. Di sini, aturannya dapat berupa , dan pertanyaannya adalah bagaimana keluarannya berubah ketika berubah. Situs pendamping resmi Mathematics for Machine Learning memisahkan fondasi matematika dari sistem pembelajaran mesin yang menggunakannya. Bab pengantarnya memotivasi fondasi tersebut sebagai alat untuk memahami model dan asumsinya; aljabar eksponen di bawah ini adalah jembatan prasyarat orisinal yang dikembangkan untuk kursus ini.
Satu superskrip mengendalikan aturan pertumbuhan
Dalam , adalah basis dan adalah eksponen. Eksponen menyatakan bagaimana basis berpartisipasi dalam operasi.
Intuisinya adalah “kalikan basis dengan dirinya sendiri sebanyak kali”, tetapi itu hanya mendefinisikan eksponen bilangan bulat positif. Titik awal formalnya adalah:
Eksponen nol dan negatif memperluas definisi ini sambil mempertahankan hukum aljabar yang sama. Untuk setiap yang bukan nol,
Syarat penting. Pangkat negatif menghasilkan kebalikan, dan pembagian dengan nol tidak terdefinisi. Misalnya,
sedangkan tidak memiliki nilai real.
Aturan eksponen nol mengikuti hukum hasil bagi, bukan dari “tidak ada perkalian sama sekali”. Jika , maka
Kedua ekspresi hanya dapat sama jika . Karena pembatalan ini menggunakan , argumen tersebut tidak menentukan ; batas ini memerlukan konteksnya sendiri.
Hukum eksponen memperhitungkan setiap faktor
Untuk bilangan bulat positif dan , mengalikan dua pangkat dengan basis sama berarti menyambungkan faktor-faktor berulangnya:
Gagasan menghitung yang sama menghasilkan hukum inti berikut. Eksponen negatif membutuhkan basis tak nol, sedangkan eksponen pecahan membutuhkan perhatian pada domain yang diperkenalkan di bagian berikutnya.
| Operasi | Hukum | Kehati-hatian yang diperlukan |
|---|---|---|
| Mengalikan basis sama | Kedua pangkat harus terdefinisi | |
| Membagi basis sama | ||
| Memangkatkan pangkat | Periksa domain bilangan real untuk pangkat pecahan | |
| Memangkatkan hasil kali | Selalu aman untuk bilangan bulat; berhati-hati untuk eksponen real |
Ada pola yang menggoda tetapi bukan hukum eksponen:
Untuk , , dan , sisi kiri adalah , sedangkan sisi kanan yang diusulkan adalah . Penjumlahan di dalam tanda kurung harus ditangani lebih dahulu, atau dikembangkan dengan hukum distributif.
Akar membalikkan pangkat, dengan domain yang menyertainya
Akar kuadrat utama dari bilangan real nonnegatif , ditulis , adalah bilangan real nonnegatif yang kuadratnya sama dengan :
Jadi . Walaupun dan sama-sama bernilai , simbol radikal menunjuk akar nonnegatif. Menyelesaikan persamaan adalah tugas yang berbeda dan memiliki dua solusi real, dan .
Untuk , akar kuadrat adalah pangkat satu per dua:
Secara lebih umum, untuk positif dan bilangan bulat positif , . Eksponen rasional menggabungkan akar dan pangkat:
Akar kuadrat bukan berarti “membagi dengan dua”. Nilai adalah , sedangkan karena . Eksponennyalah yang dibagi dua: untuk real. Secara umum, , bukan selalu ; untuk , kedua sisi sama-sama .
Uji penggandaan menunjukkan pertumbuhan linear dan kuadratik
Misalkan suatu kuantitas mengikuti aturan pangkat
dengan sebagai ukuran masukan, sebagai eksponen penskalaan, dan sebagai konstanta yang tidak berubah selama perbandingan. Jika masukan dikalikan faktor skala , maka
Jadi keluaran berubah sebesar faktor . Saat menggandakan, :
| Eksponen | Aturan | Efek | Nama yang digunakan |
|---|---|---|---|
| kali | pertumbuhan linear | ||
| kali | pertumbuhan kuadratik | ||
| kali | pertumbuhan kubik | ||
| sebesar dari semula | pertumbuhan invers |
Penjelajah menempatkan pangkat-pangkat dari 2 pada jarak yang sama di setiap sumbu. Itu adalah skala logaritmik: langkah yang sama mewakili faktor perkalian yang sama, bukan penambahan yang sama. Gerakkan kontrol panjang urutan dengan penunjuk atau tombol panah, lalu bandingkan garis solid lurus dengan kurva kotak putus-putus .
Pilih panjang yang merupakan pangkat dari 2, dari 128 hingga 8.192 token. Tombol panah bergerak satu penggandaan setiap kali.
- Panjang yang dipilih
- 1.024
- Pertumbuhan linear
- 8×
- Pertumbuhan kuadratik
- 64×
- Posisi skor n²
- 1.048.576
Pada n = 1.024, pertumbuhan linear adalah 8× baseline dan pertumbuhan kuadratik adalah 64×, menghasilkan 1.048.576 posisi skor.
Tampilkan data grafik sebagai tabel
| Panjang urutan n | Linear n | Kuadratik n² | Posisi skor n² | Keadaan saat ini |
|---|---|---|---|---|
| 128 | 1× | 1× | 16.384 | |
| 256 | 2× | 4× | 65.536 | |
| 512 | 4× | 16× | 262.144 | |
| 1.024 | 8× | 64× | 1.048.576 | ← Dipilih |
| 2.048 | 16× | 256× | 4.194.304 | |
| 4.096 | 32× | 1.024× | 16.777.216 | |
| 8.192 | 64× | 4.096× | 67.108.864 |
Keadaan awal yang dirender di server memilih . Relatif terhadap , panjangnya kali lebih besar, tetapi kuadratnya kali lebih besar. Tabel di bawah grafik mempertahankan setiap nilai yang diplot tanpa bergantung pada bentuk visual atau JavaScript.
Attention padat mengubah pasangan token menjadi persegi
Makalah Transformer asli mendefinisikan scaled dot-product attention dengan : setiap query dibandingkan dengan setiap key sebelum skor diskalakan, dinormalisasi, dan digunakan untuk menggabungkan value. Dalam analisis self-attention padat klasik, makalah tersebut melaporkan suku kompleksitas per lapisan sebesar , dengan sebagai panjang urutan dan sebagai lebar representasi (Vaswani dkk., Attention Is All You Need).
Notasi matriks itu dapat dibaca sebagai grid bahkan sebelum kursus ini memperkenalkan matriks secara formal. Dengan posisi token:
- ada baris query;
- setiap baris memiliki satu posisi skor untuk masing-masing dari key; dan
- seluruh grid skor karena itu berisi posisi per head.
Jika setiap perbandingan query-key menggunakan fitur, pembentukan dot product tersebut memiliki suku aritmetika utama yang sebanding dengan . Dengan mempertahankan tetap dan hanya mengubah , kita memperoleh perhitungan penggandaan dari pembukaan:
Hitungan ini adalah sifat matematis dari grid skor padat penuh. Ini tidak menjamin waktu jam dinding atau memori puncak akan naik tepat kali. Perangkat keras paralel, tiling, kernel yang difusikan atau dihitung ulang, masking, dan mekanisme attention yang menghindari grid penuh dapat mengubah apa yang disimpan implementasi dan seberapa cepat ia berjalan. Klaim yang aman lebih sempit: self-attention padat klasik memiliki posisi skor query-key, dan kompleksitas aritmetika standarnya memuat suku panjang urutan kuadratik.
Pertumbuhan parameter bergantung pada dimensi mana yang berubah
Lapisan padat yang memetakan fitur masukan ke fitur keluaran membutuhkan satu bobot untuk setiap pasangan masukan-keluaran:
Bias opsional menambah parameter, tetapi tabel bobot berpasangan adalah hubungan penskalaan utama dalam contoh ini.
Misalkan lapisan berubah dari masukan dan keluaran menjadi masukan dan keluaran. Kedua dimensi digandakan:
Rasionya memperlihatkan eksponen:
Jika hanya lebar keluaran yang digandakan, jumlahnya juga hanya akan berlipat dua. Menyebut semua pertumbuhan parameter “kuadratik” menyembunyikan dimensi mana yang benar-benar berubah. Hukum kuadrat hanya muncul di sini ketika dua dimensi yang dikalikan meningkat bersama.
NumPy memungkinkan formula dan inversnya saling memeriksa
np.logspace milik NumPy membangun nilai pada interval yang sama di skala log; dengan basis , titik akhir bilangan bulat hingga menghasilkan panjang konteks hingga . np.power menaikkan elemen array yang bersesuaian ke pangkat, sedangkan np.sqrt mengembalikan akar kuadrat nonnegatif elemen demi elemen.
import numpy as np
lengths = np.logspace(7, 13, num=7, base=2, dtype=np.int64)
score_positions = np.power(lengths, 2)
quadratic_growth = score_positions // score_positions[0]
recovered_lengths = np.sqrt(score_positions)
print("lengths:", lengths)
print("score positions:", score_positions)
print("quadratic growth:", quadratic_growth)
print("recovered lengths:", recovered_lengths)
lengths: [ 128 256 512 1024 2048 4096 8192]
score positions: [ 16384 65536 262144 1048576 4194304 16777216 67108864]
quadratic growth: [ 1 4 16 64 256 1024 4096]
recovered lengths: [ 128. 256. 512. 1024. 2048. 4096. 8192.]
Baris terakhir memeriksa hubungan invers pada masukan nonnegatif: karena setiap panjang urutan dalam array positif. Untuk array yang dapat memuat negatif, identitas yang benar adalah .
Kasus batas adalah bagian dari operasi
Notasi eksponen cukup ringkas untuk menyembunyikan kesalahan domain. Kasus-kasus ini harus tetap terlihat saat membaca persamaan atau kode:
- bergantung pada konteks. Aturan di atas mengasumsikan , sedangkan untuk positif. Pada , kedua perluasan itu bertemu tanpa menentukan satu nilai. Sebagian rumus kombinatorial dan sistem perangkat lunak mendefinisikannya sebagai demi kemudahan; aljabar eksponen real elementer sering membiarkannya tak terdefinisi. Nyatakan konvensinya, jangan memilih diam-diam.
- Akar genap dari bilangan real negatif bukan bilangan real. Tidak ada real yang memenuhi , sehingga tidak memiliki nilai real. Bilangan kompleks memperluas domain, tetapi berada di luar pelajaran ini.
- Basis negatif dengan eksponen pecahan memerlukan kehati-hatian khusus. Akar pangkat tiga real ada, sehingga ekspresi rasional eksak dapat ditafsirkan sebagai . Namun eksponen floating-point seperti
1 / 3adalah pendekatan, dannp.powerbernilai real milik NumPy mengembalikannanuntuk basis negatif dengan eksponen non-integral. Jangan menganggap perangkat lunak akan memulihkan pecahan yang dimaksud. - Pangkat tidak terdistribusi atas penjumlahan. Contoh tandingan cukup untuk menolak jalan pintas itu.
- Akar tidak membagi nilai dengan indeksnya. , bukan . Akar membagi eksponen jika asumsi domain yang sesuai terpenuhi.
Penjelajah skala logaritmik sudah mengisyaratkan pertanyaan berikutnya. Jika , operasi apa yang memulihkan ? Pelajaran 8 memperkenalkan logaritma sebagai pangkat invers dan menggunakannya untuk mengubah skala perkalian menjadi langkah penjumlahan. Sampai pelajaran itu aktif, halaman kursus Math for AI mempertahankan urutan publikasi yang telah diverifikasi.
Periksa pemahaman Anda
Pertanyaan 1
Hitung 3⁴ dengan mengembangkan pangkatnya, lalu identifikasi basis dan eksponennya.
Tampilkan solusi langkah demi langkah
Dalam , basisnya adalah dan eksponennya . Eksponen bilangan bulat positif menghitung faktor basis yang berulang:
Kalikan bertahap:
Jadi . Mengalikan akan mencampuradukkan jumlah faktor dengan perkalian biasa.
Pertanyaan 2
Untuk x ≠ 0, sederhanakan x³x⁻⁵, tulis hasilnya tanpa eksponen negatif, lalu periksa pada x = 2.
Tampilkan solusi langkah demi langkah
Basisnya sama, jadi eksponen dijumlahkan ketika dikalikan:
Eksponen negatif berarti kebalikan, dan asumsi membuat kebalikan itu valid:
Pada ,
Bentuk sederhananya juga menghasilkan , sehingga perhitungannya terverifikasi.
Pertanyaan 3
Hitung 64⁻²ᐟ³ dan jelaskan peran tanda negatif, pembilang 2, dan penyebut 3 pada eksponennya.
Tampilkan solusi langkah demi langkah
Tanda negatif meminta kebalikan:
Penyebut meminta akar pangkat tiga, dan pembilang kemudian meminta kuadrat:
Menggabungkan langkah-langkah tersebut menghasilkan
Basis positif dan bukan nol, sehingga akar dan kebalikannya valid dalam bilangan real.
Pertanyaan 4
Sebuah lapisan padat bertumbuh dari 300 × 200 bobot menjadi 600 × 400 bobot. Hitung kedua jumlah dan jelaskan mengapa menggandakan kedua dimensi menghasilkan perubahan empat kali lipat.
Tampilkan solusi langkah demi langkah
Lapisan awal memiliki satu bobot untuk setiap pasangan masukan-keluaran:
Lapisan yang lebih besar memiliki
Rasionya adalah
Secara ekuivalen, setiap dimensi mendapat faktor , sehingga hasil kalinya mendapat . Penalaran ini hanya menghitung bobot; bias opsional menambah satu nilai per keluaran, bukan satu tabel pasangan penuh lagi.
Pertanyaan 5
Self-attention padat klasik meningkatkan urutan dari 512 menjadi 1.024 token sementara lebar head tetap. Hitung posisi skor query-key sebelum dan sesudah, lalu nyatakan apa yang dibuktikan dan tidak dibuktikan oleh rasionya.
Tampilkan solusi langkah demi langkah
Untuk grid query-key padat penuh, jumlah posisinya adalah . Sebelum peningkatan,
Setelah panjang digandakan,
Rasionya adalah
Ini membuktikan bahwa grid penuh memiliki empat kali lebih banyak posisi skor dan bahwa aritmetika attention padat standar memiliki suku panjang kuadratik ketika lebar head tetap. Ini tidak membuktikan perubahan tepat pada latensi terukur atau memori puncak, karena implementasi dan perilaku perangkat keras adalah variabel tambahan.
Pertanyaan 6
Seorang siswa mengklaim (a + b)² = a² + b². Uji klaim itu dengan a = 2 dan b = 3, lalu berikan pengembangan yang benar.
Tampilkan solusi langkah demi langkah
Mensubstitusikan dan ke sisi kiri menghasilkan
Sisi kanan yang diklaim menghasilkan
Karena , satu contoh tandingan membantah identitas yang diklaim. Pengembangan yang benar mengikuti distribusi kedua faktor:
Untuk dan , hasilnya , sesuai dengan sisi kiri.
Pertanyaan 7
Dalam bilangan real, klasifikasikan 0⁻², √(−9), (−8)¹ᐟ³, √((−5)²), dan 0⁰. Berikan alasan atau peringatan konvensi untuk masing-masing.
Tampilkan solusi langkah demi langkah
Pertimbangkan setiap ekspresi dengan domain yang diperlukannya:
- akan membagi dengan nol, jadi tidak terdefinisi.
- tidak memiliki nilai real karena tidak ada bilangan real yang kuadratnya .
- dapat dibaca sebagai akar pangkat tiga real karena indeks akarnya ganjil. Fungsi pangkat floating-point mungkin tidak mempertahankan interpretasi rasional eksak ini.
- . Akar kuadrat utama tidak negatif, sehingga ini sama dengan , bukan .
- bergantung pada konteks. Penurunan eksponen nol mengasumsikan basis tak nol, sehingga tidak menyelesaikan kasus ini. Rumus atau sistem perangkat lunak harus menyatakan apakah ia memakai nilai seperti atau membiarkan ekspresi itu tak terdefinisi.
Pelajaran umumnya adalah bahwa notasi saja tidak menghapus asumsi yang digunakan untuk mendefinisikan operasi.