Apakah Model Machine Learning Menghafal atau Melakukan Generalisasi?
(pair.withgoogle.com)- Grokking yang ditemukan pada model kecil adalah fenomena ketika model terlebih dahulu menghafal data pelatihan, lalu baru setelah dilatih jauh lebih lama tiba-tiba mampu menjawab input yang belum pernah dilihat; ini memberi petunjuk untuk membedakan hafalan dan generalisasi
- MLP 1 lapis dalam eksperimen penjumlahan modular awalnya menunjukkan bobot yang banyak noise, tetapi pada saat akurasi pengujian meningkat, model membentuk struktur periodik dan melakukan generalisasi
- Dalam eksperimen sekuens 0/1 sepanjang 30 digit, model yang melakukan generalisasi mengurangi bobot pada digit belakang yang bersifat pengganggu dan berfokus pada 3 digit pertama, sehingga perbedaan antara solusi hafalan dan solusi generalisasi terlihat jelas
- Tekanan utama dalam transisi ini adalah minimisasi loss dan weight decay, dan meskipun loss pengujian tampak turun tiba-tiba, bobot internal bergerak relatif mulus di antara kedua solusi
- Grokking muncul hanya ketika hyperparameter seperti ukuran model, ukuran data, dan weight decay sesuai; apakah model besar dapat ditafsirkan dengan cara yang sama masih menjadi pertanyaan terbuka
Pertanyaan yang Diajukan Grokking
- Pada 2021, para peneliti menemukan bahwa pada tugas mainan, model-model kecil setelah mampu mencocokkan data pelatihan tetap tidak mampu mencocokkan data pengujian selama beberapa waktu, lalu setelah dilatih lebih lama tiba-tiba melakukan generalisasi
- Fenomena ini disebut grokking, dan mengacu pada dinamika pembelajaran ketika generalisasi muncul jauh setelah model menyesuaikan diri dengan data pelatihan
- Model bahasa besar bisa tampak seperti memahami dunia, tetapi bisa juga sekadar menghafal dan mengulang kembali sebagian dari teks pelatihan yang sangat besar
- Berangkat dari model kecil memudahkan kita membangun intuisi tentang teknik interpretasi yang sulit diterapkan langsung pada model terbesar saat ini
- Pendekatannya adalah mengamati proses belajar model kecil dan merekayasa balik solusi yang ditemukan model, untuk menunjukkan contoh mechanistic interpretability
Struktur Periodik yang Muncul dalam Penjumlahan Modular
- Penjumlahan modular digunakan sebagai tugas kecil yang memudahkan pengamatan grokking
- Ini adalah masalah memprediksi
a + bdengan operasi modular ketika dua input angkaa,bdan modulus diberikan - Contoh eksperimen menggunakan angka dari 0 sampai 66; 67 dipilih agar visualisasi tidak menjadi terlalu sederhana atau terlalu rumit
- Ini adalah masalah memprediksi
- Model eksperimen adalah MLP 1 lapis dengan 24 neuron
- Semua pasangan
a, bdibagi secara acak menjadi data pelatihan dan data pengujian - Data pelatihan digunakan untuk menyesuaikan bobot model, sedangkan data pengujian hanya digunakan untuk memeriksa apakah model telah mempelajari solusi umum
- Semua pasangan
- Model memilih kolom embedding yang sesuai dengan input
a,b, menjumlahkannya, mengubah nilai negatif menjadi 0, lalu menggunakan kolom terdekat pada matriks output sebagai prediksi - Bobot pada awal pelatihan banyak mengandung noise, tetapi ketika akurasi pengujian meningkat dan model melakukan generalisasi, pola periodik muncul
- Pada akhir pelatihan, setiap neuron berulang kali naik-turun antara nilai tinggi dan rendah saat angka input meningkat dari 0 ke 66
- Jika neuron dikelompokkan menurut frekuensi periodik akhirnya, pola ini menjadi lebih jelas
- Periodisitas ini menunjukkan bahwa model sedang mempelajari suatu struktur matematis, dan bertepatan dengan saat model mulai menyelesaikan contoh pengujian
Hafalan dan Generalisasi Dilihat dari Tugas 0 dan 1
- Eksperimen yang lebih sederhana meminta model memprediksi apakah jumlah angka 1 pada 3 digit pertama dalam sekuens 0/1 sepanjang 30 adalah ganjil
- Misalnya, jika dimulai dengan
000...hasilnya bisa 0, dan jika dimulai dengan010...hasilnya bisa 1 - Pada dasarnya ini adalah masalah XOR yang sedikit lebih sulit, sementara digit-digit di belakangnya adalah noise pengganggu
- Misalnya, jika dimulai dengan
- Model yang melakukan generalisasi seharusnya hanya menggunakan 3 digit pertama
- Model yang menghafal data pelatihan juga menggunakan digit belakang yang bersifat pengganggu
- Eksperimen ini juga menggunakan MLP 1 lapis dan dilatih dengan 1.200 sekuens tetap
- Pada awalnya hanya akurasi pelatihan yang meningkat, sedangkan akurasi pengujian tetap hampir pada level acak
- Setelah itu, akurasi pengujian naik tajam dan model mempelajari solusi umum
- Model yang sedang menghafal menunjukkan bentuk padat dan penuh noise, dengan bobot bernilai besar tersebar di banyak input
- Setelah generalisasi selesai, bobot yang terhubung ke digit pengganggu menjadi sangat rendah, dan model berfokus pada input 3 digit pertama
Cara Weight Decay Mendorong Solusi Generalisasi
- Selama pelatihan, model menerima dua tekanan sekaligus
- Model harus mengurangi loss agar memberi probabilitas tinggi pada label yang benar
- Model dipengaruhi weight decay agar ukuran bobot tetap rendah
- Pada tugas 0/1, loss pelatihan sedikit meningkat tepat sebelum model melakukan generalisasi
- Sebab model melepaskan sebagian loss yang menaikkan probabilitas jawaban benar, lalu berpindah ke solusi dengan bobot lebih rendah
- Penurunan tajam loss pengujian membuat model tampak seolah-olah tiba-tiba beralih ke generalisasi
- Namun jika melihat bobot selama pelatihan, sebagian besar bobot berinterpolasi secara mulus antara solusi hafalan dan solusi generalisasi
- Generalisasi yang cepat terjadi ketika bobot-bobot terakhir yang terhubung ke digit pengganggu dihapus oleh weight decay
Kondisi Munculnya Grokking
- Grokking bukan fenomena yang selalu muncul, melainkan fenomena yang bergantung pada kondisi seperti ukuran model, weight decay, dan ukuran data
- Jika weight decay terlalu kecil, model tidak bisa keluar dari overfitting pada data pelatihan
- Jika decay diperbesar, model menghafal lalu melakukan generalisasi
- Jika diperbesar lagi, loss pengujian dan loss pelatihan turun bersama-sama dan model langsung melakukan generalisasi
- Jika decay terlalu besar, model tidak mempelajari apa pun
- Pada tugas 0/1, lebih dari 1.000 model dilatih dengan hyperparameter berbeda, dan untuk memperhitungkan noise pelatihan, 9 model dilatih untuk setiap kombinasi hyperparameter
Solusi Penjumlahan Modular dengan Lima Neuron
- Penjumlahan modular adalah masalah periodik: jika hasil penjumlahan melampaui 67, nilainya kembali berputar
- Jika angka input ditempatkan sebagai titik-titik pada sebuah lingkaran, periodisitas ini dapat dicerminkan langsung ke dalam struktur model
- Untuk setiap angka input yang mungkin, nilai
sindancosdihitung untuk membentuk matriks embedding
- Untuk setiap angka input yang mungkin, nilai
- Pada MLP 1 lapis dengan titik awal ini, jika hanya sebagian matriks yang dilatih, model menemukan solusi dengan akurasi sempurna hanya menggunakan 5 neuron
- Dari parameter yang terlatih, neuron-neuron berkonvergensi ke ukuran yang hampir sama, dan ketika komponen
sin·cosdigambar, posisinya hampir merata di atas lingkaran - Jika neuron yang berdekatan dihubungkan, muncul pola bahwa sisi
unembeddingberputar mengelilingi lingkaran dua kali lebih cepat daripada sisi embedding - Konstruksi ini menyediakan solusi dengan 20 parameter untuk menyelesaikan penjumlahan modular
Algoritme yang Sama di Dalam MLP 1 Lapis yang Lebih Besar
- Model awal dengan 3.216 parameter dilatih dari awal, dan dimulai tanpa periodisitas bawaan
- Berbeda dari solusi kecil yang dikonstruksi, model ini menggunakan beberapa frekuensi
- Dengan menggunakan Discrete Fourier Transform (DFT), pola periodik yang dipelajari di seluruh input dapat dipisahkan
- Untuk setiap neuron, diperoleh nilai
sin·cosdari kemungkinan frekuensi periodik 1 sampai 33 - Neuron dapat dikelompokkan berdasarkan frekuensi yang memiliki nilai
sin·costerbesar
- Untuk setiap neuron, diperoleh nilai
- Saat model melakukan generalisasi, weight decay membuat representasi ini menjadi lebih jarang
- Ketika neuron dikelompokkan menurut frekuensi akhir dan komponen DFT digambar, muncul bentuk bintang seperti yang terlihat pada konstruksi lima neuron
- Model terlatih menggunakan algoritme yang sama dengan solusi yang dikonstruksi
- Jika kontribusi output tiap kelompok neuron frekuensi dilihat, mereka membentuk gelombang yang sesuai dengan perhitungan
a + b mod 67 - Ketika loss pengujian membaik setelah stagnasi singkat di sekitar 45.000 langkah, kelompok neuron frekuensi 7 tersusun menjadi bentuk bintang dan outputnya makin mendekati gelombang
- Jika kontribusi output tiap kelompok neuron frekuensi dilihat, mereka membentuk gelombang yang sesuai dengan perhitungan
- Model menggunakan beberapa frekuensi untuk menurunkan loss tanpa memakai bobot yang lebih besar, dan memanfaatkan interferensi konstruktif
- Frekuensi 4, 5, 7, dan 26 itu sendiri tidak istimewa; pada proses pelatihan lain, variasi dari algoritme ini dipelajari
Pertanyaan yang Masih Tersisa
- Sekadar melatih model berbentuk
W = W_L W_Rsecara langsung tidak memunculkan generalisasi pada aritmetika modular, bahkan ketika weight decay ditambahkan- Setidaknya satu matriks harus difaktorkan
- Setelah DFT, solusi generalisasi bersifat jarang, tetapi matriks gabungannya memiliki norm yang besar
- Memberikan weight decay langsung pada
WdanUtidak menyediakan bias induktif yang sesuai untuk tugas ini
- Weight decay dapat menjauhkan berbagai model dari hafalan data pelatihan
- Teknik lain untuk menghindari overfitting mencakup dropout, model yang lebih kecil, dan algoritme optimasi yang tidak stabil secara numerik
- Pendekatan-pendekatan ini berinteraksi secara kompleks dan nonlinier, sehingga sulit memprediksi sebelumnya konfigurasi mana yang akan mendorong generalisasi
- Salah satu teori tentang mengapa hafalan terjadi lebih dulu daripada generalisasi adalah bahwa mungkin ada jauh lebih banyak cara untuk menghafal set pelatihan dibandingkan solusi yang melakukan generalisasi
- Tanpa regularisasi, atau jika regularisasi lemah, secara statistik hafalan lebih mungkin terjadi lebih dulu
- Teknik regularisasi seperti weight decay membuat solusi tertentu lebih diprioritaskan, misalnya solusi yang jarang dibanding solusi yang padat
- Representasi yang terstruktur dengan baik bisa berkaitan dengan generalisasi, tetapi bukan syarat perlu maupun syarat cukup
- Beberapa variasi MLP tanpa input simetris mempelajari representasi yang kurang melingkar saat menyelesaikan penjumlahan modular
- Model kecil yang dilatih tanpa weight decay pernah mulai melakukan generalisasi, tetapi kemudian kembali beralih ke hafalan meski memiliki embedding periodik
- Pada beberapa hyperparameter, transisi generalisasi → hafalan → generalisasi juga mungkin terjadi
Interpretabilitas yang Mengarah ke Model Lebih Besar
- Grokking telah diamati pada tugas algoritmik di Transformer kecil dan MLP, lalu kemudian juga ditemukan pada tugas yang lebih kompleks untuk data gambar, teks, dan tabular dalam rentang hyperparameter tertentu
- Model-model terbesar yang dapat menjalankan berbagai jenis tugas mungkin sedang melakukan grokking pada banyak hal dengan kecepatan berbeda selama pelatihan
- Ada juga hasil-hasil yang mencoba memprediksi grokking sebelum benar-benar terjadi
- Beberapa metode membutuhkan pengetahuan tentang solusi generalisasi atau seluruh domain data
- Beberapa metode hanya menggunakan analisis loss pelatihan, dan mungkin dapat diterapkan pada model yang lebih besar
- Salah satu jalan ke depan adalah menggunakan model yang lebih sederhana secara berulang
- Melatih model sederhana dengan bias induktif lebih kuat dan lebih sedikit komponen bergerak
- Menggunakan model tersebut untuk menjelaskan bagian model besar yang sulit diinterpretasikan
- Jika perlu, mengulangi proses ini
- Pendekatan mechanistic interpretability seperti ini dapat membantu mengidentifikasi atau mengotomatisasi pola untuk menemukan algoritme yang dipelajari jaringan saraf
1 komentar
Komentar Hacker News
Alasan memori manusia menakjubkan tampaknya karena, meski tidak punya kapasitas penyimpanan sebesar mesin, manusia memiliki kemampuan kompresi pola yang menyimpan informasi dengan sangat diperkecil
Pola-pola itu lalu diikat lagi dengan pola lain dan dikompresi, lalu sesuatu diekstraksi darinya; ini kompresi lossy yang luar biasa besar, tetapi tujuannya tercapai
Otak lebih seperti secara aktif menyuling pengetahuan yang tidak perlu dihafal secara harfiah menjadi elemen-elemen inti, menghindari overfitting, dan memperoleh “intuisi serta pemahaman yang tergeneralisasi”
Referensi: https://www.scientificamerican.com/article/new-estimate-boosts-the-human-brain-s-memory-capacity-10-fold/
https://youtu.be/hpTCZ-hO6iI
Secara teknis batas atasnya “tak terbatas”, tetapi antara jumlah konsep yang disimpan dan jumlah informasi fundamental yang dapat disimpan per konsep ada trade-off, mirip dengan prinsip kompromi lain seperti prinsip ketidakpastian
Saya tidak tahu apakah otak hewan juga demikian, tetapi saya menduga otak terutama merupakan algoritma kompresi untuk prediksi, dan tidak menyimpan banyak data itu sendiri
Geometri bagus untuk latihan semacam ini, dan sering berguna juga dalam pembuktian fisika
Intinya tampaknya weight decay mendorong sparsity sehingga membantu mempelajari representasi yang “sebenarnya” dibanding representasi yang overfit
Pada otak manusia juga ada mekanisme yang tampak serupa dan banyak muncul selama perkembangan, yaitu synaptic pruning. Saya ingin mendengar dari pakar bidang ini apakah hal itu menjadi inspirasi untuk weight decay atau, lebih langsung, pruning jaringan saraf
Alasan weight decay bekerja adalah, ketika diterapkan sebagai regularisasi, ia membuat jaringan mendekati minimum description length (MDL), sehingga mengurangi regret selama pembelajaran. Ini sampai batas tertentu terkait dengan pruning di otak, tetapi otak tampaknya pada dasarnya menggunakan sparsity untuk mendorong representasi, bukan kompresi, jadi motifnya sebenarnya lebih berbeda. Coba pikirkan bias implisit dari representasi yang berbeda-beda, dan dampak lanjutannya terhadap representasi yang dipelajari atau dapat dipelajari
Namun obat terbaik untuk overfitting adalah memperbesar dataset dan memastikan keragaman data. Dataset LLM sangat besar sehingga biasanya hanya dilatih satu epoch
Regularisasi L1 menghasilkan sparsity yang jauh lebih besar, tetapi performanya tidak sebaik itu
Di ranah AI, kata grok sedang dirusak
Aslinya kurang lebih berarti “memahami sepenuhnya dan seutuhnya”, jadi memakai kata yang sama untuk generalisasi berarti tidak benar-benar grok grokking
Fenomena ini juga dibahas di komentar sebuah tulisan yang mengusulkan agar disebut “pemulihan akhir dari overfitting”: https://www.lesswrong.com/posts/GpSzShaaf8po4rcmA/qapr-5-grokking-is-maybe-not-that-big-a-deal
Makna konotatifnya merentang dari “menghirup dalam-dalam” secara harfiah maupun kiasan hingga mengonsumsi jasad orang terkasih yang telah tiada. Saya sangat merekomendasikan Stranger in A Strange Land, dan sebaiknya pilih edisi terbit ulang tanpa sensor yang muncul sekitar 1990
Ini terasa cukup masuk akal karena mengingatkan pada unsur pemahaman intuitif serta peningkatan pemahaman yang mendadak dan besar, yang juga mirip dengan perubahan yang terjadi pada loss
Saya tidak yakin ingatan saya benar, tetapi dalam wawancara Raphaël Millière di Mindscape, sepertinya ia mengatakan bahwa ketika model machine learning memiliki banyak dimensi, perbedaan antara interpolasi dan ekstrapolasi tidak sejelas di ranah yang biasanya kita pakai untuk bernalar
Saya tidak begitu yakin apakah ini mirip dengan yang dibahas dalam tulisan ini
Saya penasaran bagaimana chart-chart itu dibuat
Sepertinya dibuat setengahnya dengan suatu library lalu dipoles manual, dan SVG animasi yang dihasilkan indah
Ada juga beberapa library kecil untuk anotasi, mencampur SVG dan canvas, serta membuat d3 tidak terlalu bertele-tele
https://github.com/PAIR-code/ai-explorables/tree/master/source/grokking
https://1wheel.github.io/swoopy-drag/
https://github.com/gka/d3-jetpack
https://roadtolarissa.com/hot-reload/
Jika ingin tahu detail topik ini, sebaiknya baca artikelnya di komputer. Ada data visualisasi yang tidak bisa dijelajahi di mobile
Pertama-tama, ini tulisan blog yang bagus dengan banyak contoh hebat, mengingatkan pada distill.pub dulu
Seperti yang dikatakan dengan benar di artikel, biasanya memakai peluruhan bobot L2 menghasilkan banyak bobot berukuran kecil. Saya penasaran apakah jika menginginkan model yang lebih mampu melakukan generalisasi, selalu lebih baik memakai peluruhan bobot L1 untuk mendorong sparsity dan melatih lebih lama. Saya juga penasaran apakah model deep learning yang hanya memakai fitur Fourier sparse, alih-alih layer linear padat, mungkin bekerja lebih baik
Jawaban panjangnya: model deep learning biasanya berusaha mencari basis nonlinier optimal untuk merepresentasikan input. Jika input bisa direpresentasikan dengan baik—yakni secara sparse—dalam suatu basis yang sudah diketahui sebelumnya, biasanya membantu untuk menaruhnya pada basis itu, seperti melakukan FFT pada sinyal RF. Namun, basis optimal keseluruhan bisa berbeda dari basis minimum lokal mana pun, jadi diperlukan trik untuk mendorong jaringan ke arah sana
Saya penasaran seberapa representatif fungsi targetnya
Memang umum menginginkan model mempelajari bagian penting dari input, tetapi hanya memperhatikan tiga bit pertama dari sebuah string bit terasa cukup dibuat-buat. Saya tidak tahu apakah mereka melatih tabel kebenaran dengan ukuran parameter relevan 8 menggunakan 4,8 juta sampel, atau saya yang salah paham
Alasan memakai tugas sederhana adalah agar saat hal seperti ini terjadi, kita bisa menafsirkan apa yang sedang terjadi di dalamnya
Tidak ada feed autodiscovery RSS/Atom di HTML dan juga tidak ada tautan feed RSS, tetapi dengan menebak nama dan lokasi feed yang mungkin, saya bisa menemukan feed RSS “Explorables”: https://pair.withgoogle.com/explorables/rss.xml
Terlihat seperti sel grid
https://en.wikipedia.org/wiki/Grid_cell
Jika heatmap neuron pada hidden layer digambar sebagai chart 2D dengan satu sumbu $a$ dan sumbu lainnya $b$, sepertinya akan muncul kisi segitiga. Jika bekerja seperti yang saya bayangkan, melihat neuron hidden lain akan memunculkan kisi lain dengan arah dan skala berbeda. Dengan menyambungkan semuanya, kita juga bisa membuat penjumlah basis-67. Saya juga sulit menghilangkan intuisi bahwa hubungan antar neuron W_in-proj dan hubungan antar neuron W_out-proj mirip dengan pemetaan antara lingkaran semitone dan lingkaran kwint
https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Pitch_class_space_star.svg/220px-Pitch_class_space_star.svg.png