Cara Mendekati Masalah Pembelajaran Mesin
Diterbitkan: 2022-03-11Salah satu tugas utama komputer adalah mengotomatisasi tugas-tugas manusia. Beberapa dari tugas ini sederhana dan berulang, seperti "memindahkan X dari A ke B." Jauh lebih menarik ketika komputer harus membuat keputusan tentang masalah yang jauh lebih sulit untuk diformalkan. Di situlah kami mulai menghadapi masalah pembelajaran mesin dasar.
Secara historis, algoritma tersebut dibangun oleh para ilmuwan atau ahli yang memiliki pengetahuan mendalam tentang bidang mereka dan sebagian besar didasarkan pada aturan. Dengan ledakan kekuatan komputasi dan ketersediaan kumpulan data yang besar dan beragam, fokus telah bergeser ke pendekatan yang lebih komputasional.
Konsep pembelajaran mesin yang paling dipopulerkan akhir-akhir ini berkaitan dengan jaringan saraf, dan menurut pengalaman saya, ini menciptakan kesan pada banyak orang bahwa jaringan saraf adalah semacam senjata ajaib untuk semua masalah inferensi. Sebenarnya, ini cukup jauh dari kebenaran. Di mata ahli statistik, mereka membentuk satu kelas pendekatan inferensi dengan kekuatan dan kelemahan yang terkait, dan itu sepenuhnya tergantung pada masalah apakah jaringan saraf akan menjadi solusi terbaik atau tidak.
Cukup sering, ada pendekatan yang lebih baik.
Dalam artikel ini, kami akan menguraikan struktur untuk menyerang masalah pembelajaran mesin. Tidak ada ruang untuk membahas terlalu banyak detail tentang model pembelajaran mesin tertentu, tetapi jika artikel ini menarik, artikel berikutnya dapat menawarkan solusi terperinci untuk beberapa masalah pembelajaran mesin yang menarik.
Namun, pertama-tama, mari kita berusaha menunjukkan mengapa Anda harus lebih berhati-hati daripada secara otomatis berpikir "jaringan saraf" ketika menghadapi masalah pembelajaran mesin.
Pro dan Kontra Neural Network
Dengan jaringan saraf, inferensi dilakukan melalui "jaringan" berbobot. Bobot dikalibrasi selama apa yang disebut proses "pembelajaran", dan kemudian, selanjutnya, diterapkan untuk menetapkan hasil ke input.
Kedengarannya sederhana, semua bobot adalah parameter untuk jaringan yang dikalibrasi, dan biasanya, itu berarti terlalu banyak parameter untuk dipahami oleh manusia.
Jadi sebaiknya kita menganggap jaringan saraf sebagai semacam kotak hitam inferensi yang menghubungkan input ke output, tanpa model khusus di antaranya.
Mari kita lihat lebih dekat pro dan kontra dari pendekatan ini.
Keuntungan Jaringan Syaraf
- Inputnya adalah data itu sendiri. Hasil yang dapat digunakan bahkan dengan sedikit atau tanpa rekayasa fitur.
- Keterampilan yang bisa dilatih. Tanpa rekayasa fitur, tidak perlu keterampilan yang sulit dikembangkan seperti intuisi atau keahlian domain. Alat standar tersedia untuk inferensi umum.
- Akurasi meningkat dengan kuantitas data. Semakin banyak input yang dilihatnya, semakin baik kinerja jaringan saraf.
- Dapat mengungguli model klasik bila tidak ada informasi lengkap tentang model tersebut. Pikirkan sentimen publik, salah satunya.
- Inferensi terbuka dapat menemukan pola yang tidak diketahui. Jika Anda menggunakan model dan mengabaikannya, itu tidak akan mendeteksi fenomena yang sesuai. Jaringan saraf mungkin.
Contoh jaringan saraf yang berhasil: AI Google menemukan sebuah planet yang mengorbit bintang yang jauh—di mana NASA tidak—dengan menganalisis data teleskop yang terakumulasi.
Kekurangan Neural Network
- Mereka membutuhkan banyak data (beranotasi!). Pertama, jumlah data ini tidak selalu tersedia. Konvergensinya lambat. Model yang solid (misalnya, dalam fisika) dapat dikalibrasi setelah beberapa pengamatan—dengan jaringan saraf, ini tidak mungkin. Anotasi adalah banyak pekerjaan, belum lagi itu, dengan sendirinya, tidak mudah.
- Tidak ada informasi tentang struktur dalam data. Apakah Anda tertarik pada apa kesimpulannya? Tidak ada keberuntungan di sini. Ada situasi di mana penyesuaian data secara manual meningkatkan inferensi dengan lompatan, tetapi jaringan saraf tidak akan dapat membantu dengan itu.
- Masalah overfitting. Sering terjadi bahwa jaringan memiliki lebih banyak parameter daripada yang dibenarkan oleh data, yang mengarah ke inferensi suboptimal.
- Kinerja tergantung pada informasi. Jika ada informasi lengkap tentang suatu masalah, model yang solid cenderung mengungguli jaringan saraf.
- Ada masalah pengambilan sampel. Pengambilan sampel selalu merupakan masalah yang rumit, tetapi dengan sebuah model, seseorang dapat dengan cepat mengembangkan gagasan tentang pengambilan sampel yang bermasalah. Jaringan saraf hanya belajar dari data, jadi jika mereka mendapatkan data yang bias, mereka akan memiliki kesimpulan yang bias.
Contoh kegagalan: Seorang relasi pribadi memberi tahu saya tentang sebuah perusahaan besar (yang tidak dapat saya sebutkan) yang bekerja untuk mendeteksi kendaraan militer pada foto udara. Mereka memiliki gambar di mana ada kendaraan seperti itu dan yang lain tidak. Sebagian besar gambar dari kelas sebelumnya diambil pada hari hujan, sedangkan yang terakhir diambil dalam cuaca cerah. Akibatnya, sistem belajar membedakan cahaya dari bayangan.
Singkatnya, jaringan saraf membentuk satu kelas metode inferensi yang memiliki pro dan kontra.
Fakta bahwa popularitas mereka mengungguli semua metode statistik lainnya di mata publik kemungkinan besar berkaitan dengan tata kelola perusahaan daripada yang lainnya.
Melatih orang untuk menggunakan alat standar dan metode jaringan saraf standar adalah proses yang jauh lebih dapat diprediksi daripada berburu pakar domain dan seniman dari berbagai bidang. Namun, ini tidak mengubah fakta bahwa menggunakan jaringan saraf untuk masalah sederhana yang terdefinisi dengan baik sebenarnya hanya menembak seekor burung gereja dengan meriam: Ini membutuhkan banyak data, membutuhkan banyak pekerjaan anotasi, dan sebagai gantinya mungkin hanya berkinerja buruk jika dibandingkan dengan model yang solid. Bukan paket terbaik.

Namun, ada kekuatan besar dalam kenyataan bahwa mereka "mendemokratisasikan" pengetahuan statistik. Setelah solusi inferensi berbasis jaringan saraf dipandang sebagai alat pemrograman belaka, ini dapat membantu bahkan mereka yang tidak merasa nyaman dengan algoritme kompleks. Jadi, mau tidak mau, banyak hal sekarang dibangun yang tidak akan ada jika kita hanya bisa beroperasi dengan model yang canggih.
Mendekati Masalah Pembelajaran Mesin
Saat mendekati masalah pembelajaran mesin, ini adalah langkah-langkah yang perlu Anda lalui:
- Menetapkan kriteria penerimaan
- Membersihkan data Anda dan memaksimalkan konten informasi
- Memilih pendekatan inferensi yang paling optimal
- Latih, uji, ulangi
Mari kita lihat barang-barang ini secara detail.
Menetapkan Kriteria Penerimaan
Anda harus memiliki gagasan tentang akurasi target Anda sesegera mungkin, sejauh mungkin. Ini akan menjadi target yang Anda upayakan.
Membersihkan Data Anda dan Memaksimalkan Konten Informasinya
Ini adalah langkah paling kritis. Pertama-tama, data Anda seharusnya tidak memiliki (atau sedikit) kesalahan. Membersihkannya dari ini adalah langkah pertama yang penting. Ganti nilai yang hilang, coba identifikasi pola yang jelas-jelas palsu, hilangkan duplikat dan anomali lain yang mungkin Anda perhatikan.
Adapun informasi, jika data Anda sangat informatif (dalam arti linier), maka hampir semua metode inferensi akan memberi Anda hasil yang baik. Jika informasi yang dibutuhkan tidak ada di sana, maka hasilnya akan menjadi noise. Memaksimalkan informasi berarti terutama menemukan hubungan non-linier yang berguna dalam data dan linierisasinya. Jika itu meningkatkan input secara signifikan, bagus. Jika tidak, maka lebih banyak variabel mungkin perlu ditambahkan. Jika semua ini tidak menghasilkan buah, akurasi target mungkin terganggu.
Dengan sedikit keberuntungan, akan ada variabel tunggal yang berguna. Anda dapat mengidentifikasi variabel yang berguna jika Anda—misalnya—memplotnya terhadap variabel target pembelajaran dan menemukan plotnya menjadi seperti fungsi (yaitu, rentang sempit dalam input sesuai dengan rentang sempit di output). Variabel ini kemudian dapat dilinierkan—misalnya, jika diplot sebagai parabola, kurangi beberapa nilai dan ambil akar kuadratnya.
Untuk variabel yang berisik—rentang input yang sempit sesuai dengan rentang output yang luas—kita dapat mencoba menggabungkannya dengan variabel lain.
Untuk mengetahui keakuratannya, Anda mungkin ingin mengukur probabilitas kelas bersyarat untuk setiap variabel Anda (untuk masalah klasifikasi) atau menerapkan beberapa bentuk regresi yang sangat sederhana, seperti regresi linier (untuk masalah prediksi). Jika konten informasi dari input meningkat, maka inferensi Anda juga akan meningkat, dan Anda tidak ingin membuang terlalu banyak waktu pada tahap ini untuk mengkalibrasi model saat data belum siap. Jadi, buat pengujian sesederhana mungkin.
Memilih Pendekatan Inferensi Paling Optimal
Setelah data Anda dalam kondisi yang layak, Anda dapat menggunakan metode inferensi (data mungkin masih dipoles nanti, jika perlu).
Haruskah Anda menggunakan model? Nah, jika Anda memiliki alasan kuat untuk percaya bahwa Anda dapat membangun model yang baik untuk tugas tersebut, maka Anda mungkin harus melakukannya. Jika menurut Anda tidak, tetapi ada banyak data dengan anotasi yang baik, maka Anda dapat menggunakan jaringan saraf secara handsfree. Namun, dalam aplikasi pembelajaran mesin praktis, seringkali tidak ada cukup data untuk itu.
Bermain akurasi vs penutup sering terbayar sangat. Pendekatan hybrid biasanya baik-baik saja. Misalkan data sedemikian rupa sehingga Anda bisa mendapatkan akurasi mendekati 100% pada 80% dengan model sederhana? Ini berarti Anda dapat menunjukkan hasil dengan cepat, dan jika sistem Anda dapat mengidentifikasi saat beroperasi di wilayah ramah 80%, maka pada dasarnya Anda telah mengatasi sebagian besar masalah. Klien Anda mungkin belum sepenuhnya bahagia, tetapi ini akan memberi Anda kepercayaan mereka dengan cepat. Dan tidak ada yang mencegah Anda melakukan hal serupa pada data yang tersisa: dengan upaya yang wajar sekarang Anda mencakup, katakanlah, 92% data dengan akurasi 97%. Benar, pada sisa data, ini adalah koin flip, tetapi Anda sudah menghasilkan sesuatu yang berguna.
Untuk sebagian besar aplikasi praktis, ini sangat berguna. Katakanlah, Anda berada dalam bisnis pinjaman dan ingin memutuskan siapa yang akan memberikan pinjaman, dan yang Anda tahu adalah bahwa pada 70% klien, algoritme Anda sangat akurat. Bagus—benar, 30% pelamar Anda lainnya akan membutuhkan lebih banyak pemrosesan, tetapi 70% dapat sepenuhnya otomatis. Atau: misalkan Anda mencoba mengotomatiskan pekerjaan operator untuk pusat panggilan, Anda dapat melakukan pekerjaan yang baik (cepat dan kotor) hanya pada tugas yang paling sederhana, tetapi tugas ini mencakup 50% panggilan? Hebat, pusat panggilan menghemat uang jika mereka dapat mengotomatiskan 50% panggilan mereka dengan andal.
Ringkasnya: Jika datanya tidak cukup informatif, atau masalahnya terlalu rumit untuk ditangani secara keseluruhan, pikirkan di luar kotak. Identifikasi sub-masalah yang berguna dan mudah dipecahkan sampai Anda memiliki ide yang lebih baik.
Setelah sistem Anda siap, pelajari, uji, dan ulangi hingga Anda puas dengan hasilnya.
Latih, Uji, Ulangi
Setelah langkah-langkah sebelumnya, hanya sedikit minat yang tersisa. Anda memiliki data, Anda memiliki metode pembelajaran mesin, jadi inilah saatnya untuk mengekstrak parameter melalui pembelajaran dan kemudian menguji inferensi pada set pengujian. Literatur menyarankan 70% dari catatan harus digunakan untuk pelatihan, dan 30% untuk pengujian.
Jika Anda senang dengan hasilnya, tugas selesai. Tetapi, kemungkinan besar, Anda mengembangkan beberapa ide baru selama prosedur, dan ini dapat membantu Anda meningkatkan akurasi. Mungkin Anda membutuhkan lebih banyak data? Atau hanya lebih banyak pembersihan data? Atau model lain? Either way, kemungkinan Anda akan sibuk untuk beberapa waktu.
Jadi, semoga berhasil dan nikmati pekerjaan di depan!
- Mesin dan Kepercayaan: Cara Mengurangi Bias AI
- Stars Realigned: Meningkatkan Sistem Peringkat IMDb