Rumah >Peranti teknologi >AI >Algoritma RMSprop yang dipertingkatkan
RMSprop ialah pengoptimum yang digunakan secara meluas untuk mengemas kini berat rangkaian saraf. Ia telah dicadangkan oleh Geoffrey Hinton et al pada tahun 2012 dan merupakan pendahulu pengoptimum Adam. Kemunculan pengoptimum RMSprop adalah terutamanya untuk menyelesaikan beberapa masalah yang dihadapi dalam algoritma penurunan kecerunan SGD, seperti kehilangan kecerunan dan letupan kecerunan. Dengan menggunakan pengoptimum RMSprop, kadar pembelajaran boleh dilaraskan dengan berkesan dan pemberat dikemas kini secara adaptif, dengan itu meningkatkan kesan latihan model pembelajaran mendalam.
Idea teras pengoptimum RMSprop adalah untuk melaksanakan purata wajaran kecerunan supaya kecerunan pada langkah masa yang berbeza mempunyai kesan yang berbeza pada kemas kini pemberat. Secara khusus, RMSprop mengira purata wajaran eksponen bagi kecerunan kuasa dua bagi setiap parameter dan membahagikannya dengan punca kuasa dua kecerunan purata. Punca kuasa dua ini berfungsi sebagai penyebut untuk menormalkan kecerunan sejarah setiap parameter, dengan itu menjadikan jumlah kemas kini setiap parameter lebih lancar. Selain itu, RMSprop juga boleh melaraskan kadar pembelajaran supaya ia beransur-ansur berkurangan semasa proses latihan untuk meningkatkan kelajuan penumpuan model dan keupayaan generalisasi. Dengan cara ini, RMSprop boleh mengendalikan perubahan dalam kecerunan dengan berkesan dan membantu model menyesuaikan dengan lebih baik kepada pengedaran data yang berbeza dan matlamat pengoptimuman.
Secara khusus, formula kemas kini pengoptimum RMSprop adalah seperti berikut:
\begin{aligned} v_t&=\gamma v_{t-1}+(1-\gamma)(\nabla J(\theta_t))^2\ \theta_{t+1}&=\theta_t-\frac{\eta}{\sqrt{v_t}+\epsilon}\nabla J(\theta_t) \end{aligned}
di mana, v_t mewakili purata berwajaran eksponen bagi kecerunan kuasa dua, kadar biasanya menggunakan langkah pereputan gamma ke-t =0.9 Buat pengiraan. Kadar pembelajaran eta digunakan untuk mengawal saiz langkah kemas kini parameter, dan epsilon ialah pemalar kecil yang digunakan untuk mengelakkan pembahagian sebanyak 0 daripada berlaku. Parameter ini memainkan peranan penting dalam algoritma penurunan kecerunan Dengan melaraskan nilainya, proses pengoptimuman boleh dilaraskan dan dioptimumkan dengan halus.
Kelebihan utama pengoptimum RMSprop ialah ia boleh menyesuaikan secara adaptif kadar pembelajaran setiap parameter, dengan itu mengurangkan ayunan dan ketidakstabilan semasa proses latihan. Berbanding dengan algoritma turunan kecerunan tradisional, RMSprop boleh menumpu lebih cepat dan mempunyai keupayaan generalisasi yang lebih baik. Selain itu, RMSprop juga boleh mengendalikan kecerunan jarang, menjadikannya lebih cekap apabila memproses set data yang besar.
Walau bagaimanapun, RMSprop juga mempunyai beberapa kekurangan. Pertama, kadar pembelajaran RMSprop mungkin terlalu kecil, menyebabkan model menumpu secara perlahan. Kedua, RMSprop mungkin dipengaruhi oleh kecerunan yang bising, mengakibatkan prestasi model yang lemah. Selain itu, prestasi RMSprop juga dipengaruhi oleh hiperparameter seperti kadar pembelajaran awal, kadar pereputan, dan malar $epsilon$, dan memerlukan pelarasan parameter empirikal.
Pengoptimum RMSprop boleh membantu mengurangkan masalah pemasangan berlebihan dalam beberapa kes, tetapi ia tidak menyelesaikan sepenuhnya pemasangan berlebihan. Pengoptimum RMSprop menyesuaikan secara adaptif kadar pembelajaran setiap parameter untuk menumpu kepada penyelesaian optimum dengan lebih cepat. Ini membantu mengelakkan model daripada terlampau muat pada set latihan, tetapi tidak menjamin bahawa model tidak akan terlalu muat pada set ujian. Oleh itu, untuk mengurangkan masalah over-fitting secara berkesan, teknik lain seperti regularization, dropout, dsb. biasanya diperlukan.
Pengoptimum RMSprop ialah pengoptimum keturunan kecerunan biasa yang boleh digunakan untuk melatih rangkaian saraf. Berikut ialah langkah umum untuk menggunakan pengoptimum RMSprop:
1 Import perpustakaan dan set data yang diperlukan
2 Bina model rangkaian saraf
3 dan lain-lain Hiperparameter
4 Susun model, nyatakan fungsi kehilangan dan penunjuk penilaian
55 Latih model, nyatakan parameter seperti set data latihan, saiz kelompok, bilangan kitaran latihan
. . Nilaikan prestasi model, Gunakan set data ujian untuk penilaian 7 Laraskan seni bina model, hiperparameter, dll. untuk meningkatkan lagi prestasi model Berikut ialah contoh penggunaan API Keras untuk melaksanakan. Pengoptimum RMSprop:from keras.models import Sequential from keras.layers import Dense from keras.optimizers import RMSprop from keras.datasets import mnist # Load MNIST dataset (train_images, train_labels), (test_images, test_labels) = mnist.load_data() # Preprocess the data train_images = train_images.reshape((60000, 784)) train_images = train_images.astype('float32') / 255 test_images = test_images.reshape((10000, 784)) test_images = test_images.astype('float32') / 255 # Build the model model = Sequential() model.add(Dense(512, activation='relu', input_shape=(784,))) model.add(Dense(10, activation='softmax')) # Initialize RMSprop optimizer optimizer = RMSprop(lr=0.001, rho=0.9) # Compile the model model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy']) # Train the model model.fit(train_images, train_labels, epochs=5, batch_size=128) # Evaluate the model test_loss, test_acc = model.evaluate(test_images, test_labels) print('Test accuracy:', test_acc)Dalam kod di atas, Kami mula-mula memuatkan set data MNIST dan memprosesnya terlebih dahulu. Kami kemudian menggunakan Keras untuk membina model rangkaian saraf dengan dua lapisan bersambung sepenuhnya dan mengoptimumkannya menggunakan pengoptimum RMSprop. Kami menetapkan kadar pembelajaran 0.001 dan parameter rho 0.9. Seterusnya, kami menyusun model menggunakan entropi silang sebagai fungsi kehilangan dan ketepatan sebagai metrik penilaian. Kami kemudian melatih model menggunakan set data latihan, menyatakan bilangan zaman latihan sebagai 5 dan saiz kelompok sebagai 128. Akhir sekali, kami menilai prestasi model menggunakan set data ujian dan mengeluarkan ketepatan ujian.
Atas ialah kandungan terperinci Algoritma RMSprop yang dipertingkatkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!