Video: Developer Keynote: Get to the Fun Part (Cloud Next '19) 2024
Mampu memvalidasi hipotesis pembelajaran mesin secara efektif memungkinkan pengoptimalan algoritma pilihan Anda lebih jauh. Algoritma ini menyediakan sebagian besar kinerja prediktif pada data Anda, mengingat kemampuannya untuk mendeteksi sinyal dari data dan sesuai dengan bentuk fungsional fungsional dari fungsi prediktif tanpa overfitting dan menghasilkan banyak varians dari taksiran. Tidak semua algoritma pembelajaran mesin cocok untuk data Anda, dan tidak ada algoritma tunggal yang sesuai dengan setiap masalah. Terserah Anda untuk menemukan yang tepat untuk masalah tertentu.
Sumber prediktif kedua adalah data itu sendiri jika ditransformasikan dan dipilih secara tepat untuk meningkatkan kemampuan belajar dari algoritma yang dipilih.
Sumber akhir dari kinerja berasal dari fine-tuning parameter-parameter, yang merupakan parameter yang Anda putuskan sebelum belajar terjadi dan tidak dipelajari dari data. Peran mereka dalam mendefinisikan hipotesis, sedangkan parameter lainnya menentukannya sebagai algoritma posheroori, setelah algoritma berinteraksi dengan data dan, dengan menggunakan proses pengoptimalan, menemukan bahwa nilai parameter tertentu bekerja lebih baik dalam mendapatkan prediksi yang baik.
Baik R dan Python menawarkan fungsi pengiris yang mengiris matriks masukan Anda ke bagian kereta api, tes, dan validasi. Secara khusus, untuk prosedur pengujian yang lebih kompleks, seperti cross-validation atau bootstrapping, paket Scikit-learn menawarkan keseluruhan modul, dan R memiliki paket khusus, menawarkan fungsi untuk pemisahan data, pemrosesan awal, dan pengujian.Paket ini disebut caret.
Kemungkinan kombinasi nilai yang dapat dibuat oleh parameter hiper membuat penentuan di mana mencari pengoptimalan yang sulit. Seperti yang dijelaskan saat membahas penurunan gradien, ruang optimasi mungkin mengandung kombinasi nilai yang berkinerja lebih baik atau lebih buruk. Bahkan setelah Anda menemukan kombinasi yang bagus, Anda tidak yakin bahwa ini adalah pilihan terbaik. (Ini adalah masalah terjebak dalam minima lokal saat meminimalkan kesalahan.)Sebagai cara praktis untuk memecahkan masalah ini, cara terbaik untuk memverifikasi parameter hiper untuk algoritma yang diterapkan pada data spesifik adalah mengujinya semuanya oleh cross-validation, dan untuk memilih kombinasi terbaik. Pendekatan sederhana ini, yang disebut pencarian grid, menawarkan keuntungan yang tak terbantahkan dengan memungkinkan Anda untuk mencicipi berbagai nilai yang mungkin dimasukkan ke dalam algoritme secara sistematis dan tepat saat minimum umum terjadi.
Di sisi lain, pencarian grid juga memiliki kekurangan yang serius karena secara komputasi intensif (Anda dapat dengan mudah melakukan tugas ini secara paralel pada komputer multicore modern) dan cukup memakan waktu. Selain itu, uji sistematis dan intensif meningkatkan kemungkinan menimbulkan kesalahan karena beberapa hasil validasi yang bagus namun palsu dapat disebabkan oleh noise yang hadir dalam dataset.
Beberapa alternatif pencarian grid tersedia. Alih-alih menguji semuanya, Anda dapat mencoba menjajaki kemungkinan nilai parameter hyper-parameter yang dipandu oleh teknik optimasi nonlinear yang rumit dan matematis yang rumit (seperti metode Nelder-Mead), dengan menggunakan pendekatan Bayesian (di mana jumlah tes diminimalkan dengan pengambilan keuntungan dari hasil sebelumnya) atau menggunakan pencarian acak.
Anehnya, pencarian acak bekerja dengan sangat baik, mudah dimengerti, dan tidak hanya berdasarkan keberuntungan buta, meskipun pada awalnya memang tampak. Sebenarnya, teknik utama adalah bahwa jika Anda memilih cukup banyak tes acak, Anda benar-benar memiliki cukup banyak kemungkinan untuk menemukan parameter yang tepat tanpa membuang energi untuk menguji kombinasi yang sedikit berbeda dari kombinasi yang sama.
Representasi grafis di bawah ini menjelaskan mengapa pencarian acak bekerja dengan baik. Eksplorasi yang sistematis, meski berguna, cenderung menguji setiap kombinasi, yang berubah menjadi pemborosan energi jika beberapa parameter tidak mempengaruhi hasilnya. Sebuah pencarian acak benar-benar menguji kombinasi yang lebih sedikit namun lebih pada kisaran masing-masing parameter hiper, sebuah strategi yang membuktikan kemenangan jika, seperti yang sering terjadi, parameter tertentu lebih penting daripada yang lain.
Membandingkan pencarian grid dengan pencarian acak.
Untuk pencarian acak agar bisa bekerja dengan baik, Anda harus melakukan 15 sampai maksimal 60 tes. Masuk akal untuk menggunakan pencarian acak jika pencarian grid memerlukan lebih banyak percobaan.