Dalam implementasi Tensorflow dari ResNet , saya menemukan mereka menggunakan initializer penskalaan varians, saya juga menemukan xavier initializer populer. Saya tidak punya terlalu banyak pengalaman dalam hal ini, mana yang lebih baik dalam praktiknya?
20
Jawaban:
Perspektif sejarah
Inisialisasi Xavier , awalnya diusulkan oleh Xavier Glorot dan Yoshua Bengio dalam "Memahami kesulitan pelatihan deep neuroforforward neural network" , adalah teknik inisialisasi bobot yang mencoba membuat varians dari output lapisan agar sama dengan varian inputnya . Gagasan ini ternyata sangat berguna dalam praktik. Tentu saja, inisialisasi ini tergantung pada fungsi aktivasi lapisan. Dan di makalah mereka, Glorot dan Bengio dianggap fungsi aktivasi sigmoid logistik , yang merupakan pilihan default pada saat itu.
Kemudian, aktivasi sigmoid dilampaui oleh ReLu, karena diizinkan untuk menyelesaikan masalah gradien pelenyapan / peledakan. Akibatnya, muncul teknik inisialisasi baru, yang menerapkan ide yang sama (menyeimbangkan varian aktivasi) untuk fungsi aktivasi baru ini. Itu diusulkan oleh Kaiming He at al dalam "Delving Deep into Rectifiers: Melampaui Kinerja Level Manusia pada Klasifikasi ImageNet" , dan sekarang sering disebut sebagai inisialisasi He .
Dalam tensorflow, inisialisasi He diimplementasikan dalam
variance_scaling_initializer()
fungsi (yang, pada kenyataannya, merupakan inisialisasi yang lebih umum, tetapi secara default melakukan inisialisasi He), sedangkan inisialisasi Xavier secara logisxavier_initializer()
.Ringkasan
Singkatnya, perbedaan utama bagi praktisi pembelajaran mesin adalah sebagai berikut:
sumber
tanh()
fungsi aktivasi, fungsi inisialisasi mana yang harus saya gunakan.Variance scaling hanyalah generalisasi dari Xavier: http://tflearn.org/initializations/ . Keduanya beroperasi pada prinsip bahwa skala gradien harus sama di semua lapisan. Xavier mungkin lebih aman untuk digunakan karena tahan uji eksperimental waktu; mencoba memilih parameter Anda sendiri untuk penskalaan varians mungkin menghambat pelatihan atau menyebabkan jaringan Anda tidak menghasilkan sama sekali.
sumber