Bug-nya Adalah Seberapa Keras Aku Mencari
Untuk beberapa waktu, aku mengukur keseriusanku sendiri dari ukuran pencarianku. Aku menguji ratusan juta konfigurasi dari sebuah strategi, dan kemudian, ketika itu terasa belum cukup, miliaran. Aku bangga dengan angka itu. Rasanya seperti ketelitian — seolah aku tidak menyisakan satu pun kemungkinan tanpa diperiksa.
Itu justru lebih dekat ke kebalikan dari ketelitian. Ukuran pencarian yang luar biasa besar itu tidak membantuku menemukan sebuah edge. Ia memproduksi sebuah fatamorgana, dan semakin besar aku membuatnya, semakin meyakinkan fatamorgana itu jadinya.
Kebanggaan yang seharusnya menjadi peringatan
Aku dulu menyebut-nyebut skala pencarianku seperti orang menyebut berapa jam ia bekerja: sebagai bukti usaha, ketelitian, keseriusan menanggapi masalah. Ratusan juta kombinasi dievaluasi. Lalu lebih banyak lagi. Ada kepuasan nyata dalam menunjuk sebuah angka sebesar itu dan berkata, pada intinya, lihat betapa tuntasnya aku mencari.
Kepuasan itulah masalahnya. Tanpa sadar aku telah salah mengira ukuran pencarian sebagai kualitas hasil, dan kedua hal itu bukan sekadar tidak berkaitan — melewati suatu titik, keduanya tarik-menarik ke arah yang berlawanan.
Apa yang sebenarnya dilakukan sebuah pencarian raksasa
Inilah mekanisme yang tidak nyaman itu. Ambil potongan sejarah tetap mana pun dan coba cukup banyak strategi berbeda terhadapnya, dan sebagian dari strategi itu akan tampak spektakuler — bukan karena mereka bagus, melainkan karena, dari jutaan percobaan, beberapa pasti kebetulan selaras dengan kecelakaan-kecelakaan khas masa lalu murni karena keberuntungan. Semakin banyak konfigurasi yang kau uji, semakin yakin kau akan menemukan salah satu kebetulan ini, dan semakin ekstrem pula tampilan kebetulan paling beruntung itu.
Jadi sebuah pencarian raksasa tidak secara andal memunculkan strategi nyata yang terbaik. Yang ia munculkan secara andal adalah kebetulan yang paling pas — konfigurasi yang paling presisi dibentuk mengikuti keanehan acak dari data persis yang kau telusuri. Dan ia menyajikan kebetulan itu kepadamu dengan mengenakan hasil paling indah yang pernah kau lihat.
Jebakan ini punya nama
Tidak ada satu pun dari ini yang baru. Ini adalah salah satu jebakan paling usang di seluruh statistika, dengan museum kecil berisi nama-nama: multiple comparisons, data dredging, p-hacking. Intinya selalu sama. Uji satu hipotesis, dan hasil yang kuat membawa informasi. Uji satu miliar terhadap data yang sama, dan probabilitas menemukan hasil yang tampak luar biasa murni secara kebetulan bisa menjadi sangat tinggi — entah ada sesuatu yang nyata di sana atau tidak. Dengan cukup banyak percobaan, “luar biasa hanya karena keberuntungan” tidak lagi menjadi kemungkinan tipis.
Aku sedang menjalankan eksperimen satu miliar hipotesis dan membaca sang pemenang seolah ia adalah satu penemuan tunggal yang diperjuangkan dengan susah payah. Bukan begitu. Ia adalah kebisingan paling keras di sebuah ruangan yang sangat besar.
Mengapa rasanya seperti kebalikan dari overfitting
Bagian yang kejam adalah betapa terasa luhurnya itu. “Jangan tinggalkan satu batu pun tak terbalik” seharusnya nasihat yang baik. Tetapi tidak meninggalkan satu batu pun tak terbalik terhadap satu dataset tetap adalah salah satu cara paling pasti untuk menjamin bahwa pada akhirnya kau akan membalik sebuah batu yang kebetulan, secara acak, berbentuk seperti harta karun. Ketuntasan terhadap satu sampel tidak sama dengan ketelitian. Sering kali itu hanyalah membeli untuk dirimu sendiri makin banyak kesempatan untuk tertipu, dan kemudian terkesima ketika salah satunya membuahkan hasil.
Aku mengira aku sedang berhati-hati. Aku memang berhati-hati pada satu arah yang justru membuat keadaan menjadi lebih buruk.
Pertandanya: sang pemenang tidak pernah selamat begitu bersentuhan
Tandanya biasanya sama, begitu aku belajar mencarinya. Konfigurasi yang memenangkan pencarian raksasa itu tampak luar biasa pada data yang dipakai untuk menyeleksinya, dan kemudian berantakan tak lama setelah ia bertemu data yang tidak dipakai untuk memilihnya. Keruntuhan itu mungkin bukan sekadar nasib buruk. Ia adalah tanda peringatan yang umum bahwa pencarian itu menemukan sebuah kebetulan — kuat secara in-sample, karena in-sample justru itulah yang dioptimalkan untuk dicocoki, dan lebih lemah secara out-of-sample, karena kebetulan itu mungkin tidak terulang secara andal. (Pergeseran kondisi yang nyata atau sekadar sebuah bug juga bisa menyebabkan keruntuhan; seleksi atas pencarian yang sangat besar hanyalah tersangka utama.)
Sebuah mitigasi: batasi pencarian, lindungi data validasi
Perbaikannya punya dua bagian. Yang pertama adalah berhenti memperlakukan ukuran pencarian sebagai sebuah kebajikan — menjalankan eksplorasi yang lebih kecil dan lebih terarah, didorong oleh suatu alasan untuk mengharapkan sebuah konfigurasi berhasil, alih-alih sapuan buta nan luas yang sekadar menambang data demi apa pun yang cocok. Yang kedua, dan lebih penting, adalah bersikeras agar pemenang mana pun menunjukkan bukti ketahanan pada data yang tidak pernah boleh dilihatnya selama ia sedang diseleksi — sambil menyadari bahwa bahkan sebuah holdout yang bersih pun, jika terlalu sering dikonsultasi, perlahan berhenti menjadi bersih.
Aturan kedua itu adalah sebagian besar dari permainan ini. Pertanyaan yang penting bukanlah “apa hal yang paling bagus tampilannya yang bisa kutemukan di masa lalu?” Siapa pun dengan cukup banyak komputasi bisa menemukan sesuatu yang tampak hebat di masa lalu; masa lalu itu terbatas, dan pencarian yang cukup besar pada akhirnya akan mencocoki kecelakaan-kecelakaannya. Pertanyaan yang penting adalah “apakah hal terbaik yang kutemukan selamat melewati rentang data yang mustahil dibentuk untuk menyesuaikannya?” Hampir semua yang dimunculkan pencarian-pencarian raksasaku gagal pada pertanyaan itu, dan kegagalan itu termasuk salah satu hasil paling berguna yang pernah mereka hasilkan.
Lebih banyak komputasi bukan lebih banyak kebenaran
Pelajaran yang kupegang adalah koreksi kecil yang tenang terhadap sebuah naluri yang terasa nyaris tak tertahankan di bidang ini: bahwa jika kau tidak menemukan sebuah edge, kau cukup perlu mencari lebih keras — lebih banyak konfigurasi, lebih banyak komputasi, lebih banyak brute force. Untuk sebagian masalah naluri itu benar. Untuk masalah menemukan edge yang nyata dan tahan lama dalam data yang berisik, ia sering kali justru lebih dekat ke kebalikannya. Lebih banyak brute force tidak selalu membawamu lebih dekat ke kebenaran. Kadang ia hanya memberi kebisingan lebih banyak peserta dalam kontes — dan kebisingan, jika diberi cukup banyak peserta, cenderung memenangkan sesuatu.
Salah satu hal paling jujur yang pernah dilakukan sebuah pencarian untukku adalah kembali, setelah percobaan dalam jumlah yang luar biasa banyak, dengan tidak membawa apa pun yang selamat. Aku butuh waktu yang memalukan lamanya untuk memahami bahwa ini bukanlah kegagalan pencarian itu. Itu adalah pencarian itu, akhirnya, memberitahuku kebenaran.
— Tidak ada sinyal, tidak ada imbal hasil, bukan nasihat investasi.