Video: TensorFlow at DeepMind (TensorFlow Dev Summit 2017) 2024
Mampu mengesahkan hipotesis pembelajaran mesin dengan berkesan membolehkan pengoptimuman lebih lanjut algoritma yang anda pilih. Algoritma ini memberikan sebahagian besar prestasi ramalan pada data anda, memandangkan keupayaannya untuk mengesan isyarat dari data dan sesuai dengan fungsi fungsional sebenar fungsi ramalan tanpa overfitting dan menghasilkan banyak varians dari anggaran. Tidak semua algoritma pembelajaran mesin adalah yang paling sesuai untuk data anda, dan tidak ada satu algoritma yang dapat memenuhi setiap masalah. Terserah anda untuk mencari yang tepat untuk masalah tertentu.
Sumber kedua prestasi ramalan adalah data itu sendiri apabila diubah suai dan dipilih dengan sewajarnya untuk meningkatkan keupayaan pembelajaran algoritma yang dipilih.
Sumber akhir prestasi diperoleh daripada penalaan halus parameter hyper-parameter, yang merupakan parameter yang anda tentukan sebelum pembelajaran berlaku dan yang tidak dipelajari dari data. Peranan mereka dalam mendefinisikan a priori hipotesis, manakala parameter lain menyatakan posteriori, setelah algoritma berinteraksi dengan data dan, dengan menggunakan proses pengoptimuman, mendapati nilai parameter tertentu bekerja lebih baik dalam mendapatkan ramalan yang baik.
Tidak semua algoritma pembelajaran mesin memerlukan penalaan parameter hyper-parameter, tetapi beberapa yang paling kompleks lakukan, dan walaupun algoritma tersebut masih berfungsi di luar kotak, menarik tuil yang betul boleh membuat perbezaan besar dalam ketepatan ramalan. Walaupun parameter hiper tidak dipelajari dari data, anda harus mempertimbangkan data yang anda sedang lakukan semasa menentukan hiper-parameter, dan anda harus membuat pilihan berdasarkan pengesahan silang dan penilaian berhati-hati terhadap kemungkinan.
Algoritma pembelajaran mesin kompleks, yang paling terdedah kepada varians anggaran, memberikan banyak pilihan yang dinyatakan dalam sebilangan besar parameter. Berputar dengan mereka menjadikan mereka menyesuaikan diri dengan data yang mereka pelajari. Kadang-kadang terlalu kerap parameter parameter mungkin bahkan membuat algoritma mengesan isyarat palsu dari data. Itu membuat hiper-parameter sendiri suatu sumber varians yang tidak dapat dikesan jika anda mula memanipulasinya terlalu banyak berdasarkan beberapa rujukan tetap seperti set ujian atau skema salib pengesahan yang berulang.
Kedua-dua R dan Python menawarkan fungsi mengiris yang memisahkan matriks input anda ke dalam kereta api, ujian, dan bahagian pengesahan. Secara khusus, untuk prosedur ujian yang lebih kompleks, seperti pengesahan silang atau bootstrapping, pakej Scikit-belajar menawarkan keseluruhan modul, dan R mempunyai pakej khusus, yang menawarkan fungsi untuk memecah data, memproses dan menguji data.Pakej ini dipanggil caret.
Gabungan nilai-nilai yang mungkin terbentuk hiper-parameter dapat menentukan di mana mencari pengoptimuman keras. Seperti yang dijelaskan semasa membincangkan keturunan kecerunan, ruang pengoptimuman mungkin mengandungi kombinasi nilai yang lebih baik atau lebih buruk. Walaupun selepas anda mencari gabungan yang baik, anda tidak yakin bahawa ia adalah pilihan terbaik. (Ini adalah masalah untuk terjebak dalam minimum tempatan apabila meminimumkan kesilapan.)
Sebagai cara praktikal untuk menyelesaikan masalah ini, cara terbaik untuk mengesahkan hiper-parameter untuk algoritma yang digunakan untuk data tertentu adalah untuk menguji mereka semua oleh cross-validation, dan memilih gabungan terbaik. Pendekatan mudah ini, yang dipanggil grid-search, menawarkan kelebihan yang tidak dapat dielakkan dengan membolehkan anda untuk mencuba pelbagai nilai yang mungkin untuk dimasukkan ke dalam algoritma secara sistematik dan menemui apabila minimum am berlaku.
Di sisi lain, carian grid juga mempunyai kelemahan yang serius kerana ia secara intensif dikomput (anda boleh dengan mudah melaksanakan tugas ini selari dengan komputer multikore moden) dan mengambil masa yang agak lama. Selain itu, ujian sistematik dan intensif meningkatkan kemungkinan menimbulkan kesilapan kerana beberapa keputusan pengesahan yang baik tetapi palsu boleh disebabkan oleh bunyi yang hadir dalam dataset.
Beberapa alternatif untuk carian grid boleh didapati. Daripada menguji segala-galanya, anda boleh cuba meneroka ruang kemungkinan nilai parameter hiper yang dibimbing oleh teknik pengoptimuman bukan linear komputasi berat dan matematik yang kompleks (seperti kaedah Nelder-Mead), menggunakan pendekatan Bayesian (di mana bilangan ujian dikurangkan dengan mengambil kelebihan hasil sebelumnya) atau menggunakan carian rawak.
Yang menghairankan, carian rawak berfungsi dengan sangat baik, mudah difahami, dan bukan hanya berdasarkan nasib buta, walaupun pada awalnya kelihatannya. Malah, titik utama teknik ialah jika anda memilih ujian rawak yang mencukupi, anda sebenarnya mempunyai kemungkinan yang cukup untuk melihat parameter yang betul tanpa membuang tenaga pada ujian kombinasi yang sedikit berbeza dari kombinasi yang sama.
Perwakilan grafik di bawah menerangkan mengapa pencarian rawak berfungsi dengan baik. Penjelajahan sistematik, walaupun berguna, cenderung untuk menguji setiap kombinasi, yang menjadi pembaziran tenaga jika beberapa parameter tidak mempengaruhi hasilnya. Carian rawak sebenarnya menguji kombinasi lebih sedikit tetapi lebih banyak dalam julat setiap parameter hiper, strategi yang membuktikan kemenangan jika, seperti yang sering berlaku, parameter tertentu lebih penting daripada yang lain.
Membandingkan pencarian grid ke carian rawak.Untuk pencarian rawak untuk berfungsi dengan baik, anda harus membuat dari 15 hingga maksimum 60 ujian. Ia masuk akal untuk menggunakan carian secara rawak sekiranya carian grid memerlukan sejumlah besar eksperimen.