Pertama, seperti yang Anda lihat dari dokumentasi Show Kedua, mengapa distribusi seragam tidak berhasil? Alasan utama dalam hal ini adalah fungsi aktivasi, terutama dalam kasus Anda di mana Anda menggunakan fungsi sigmoid. Plot sigmoid terlihat seperti berikut: Jadi Anda dapat melihat bahwa jika input Anda jauh dari 0, kemiringan fungsi berkurang cukup cepat dan sebagai hasilnya Anda mendapatkan gradien kecil dan pembaruan bobot kecil. Dan jika Anda memiliki banyak layer - gradien tersebut dikalikan berkali-kali dalam back pass, bahkan gradien yang "tepat" setelah multiplikasi menjadi kecil dan berhenti membuat pengaruh apa pun. Jadi, jika Anda memiliki banyak bobot yang membawa input Anda ke wilayah-wilayah tersebut, jaringan Anda sulit untuk dilatih. Itu sebabnya itu adalah praktik yang biasa untuk menginisialisasi variabel jaringan di sekitar nilai nol. Ini dilakukan untuk memastikan Anda mendapatkan gradien yang masuk akal (mendekati 1) untuk melatih jaring Anda. Namun, distribusi seragam bukanlah sesuatu yang benar-benar tidak diinginkan, Anda hanya perlu membuat rentang lebih kecil dan lebih dekat ke nol. Sebagai salah satu praktik yang baik adalah menggunakan inisialisasi Xavier. Dalam pendekatan ini Anda dapat menginisialisasi bobot Anda dengan: 1) Distribusi normal. Dimana mean adalah 0 dan 2) Menyatukan distribusi dalam kisaran Terlepas dari apa yang disebutkan di atas,
sedangkan kode berikut
Ini tidak dapat dilakukan dengan acak (...), dan jika Anda menghasilkan angka acak (...) untuk hal-hal terkait ML, sebagian besar waktu, Anda akan berakhir menggunakan Randn acak numpy dengan Python | np acak randn() #python #numpy #pemrograman
#pengembangan appdividend.comNumpy.random.randn() mengembalikan sampel (atau sampel) dari distribusi normal standar. Jika parameter positif disediakan, itu menghasilkan array. View Discussion Improve Article Save Article View Discussion Improve Article Save Article With the help of choice() method, we can get the random samples of one dimensional array and return the random samples of numpy array.
Example #1 : In this example we can see that by using choice() method, we are able to get the random samples of numpy array, it can generate uniform or non-uniform samples by using this method. Python3
Output : Example #2 : Python3
Output : View Discussion Improve Article Save Article View Discussion Improve Article Save Article
Code #1 :
Output : Output 1D Array filled with random floats : [ 0.21698734 0.01617363 0.70382199] Code #2 :
Output : Output 2D Array filled with random floats : [[ 0.95423066 0.35595927 0.76048569 0.90163066] [ 0.41903408 0.85596254 0.21666156 0.05734769]]
Output : Output 3D Array filled with random floats : [[[ 0.07861816 0.79132387] [ 0.9112629 0.98162851] [ 0.0727613 0.03480279]] [[ 0.11267727 0.07631742] [ 0.47554553 0.83625053] [ 0.67781339 0.37856642]]] |