![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Penurunan kecerunan ialah teknik pengoptimuman yang paling popular dalam pemodelan pembelajaran mesin (ML). Algoritma meminimumkan ralat antara nilai yang diramalkan dan kebenaran asas. Memandangkan teknik mempertimbangkan setiap titik data untuk memahami dan meminimumkan ralat, prestasinya bergantung pada saiz data latihan. Teknik seperti Stochastic Gradient Descent (SGD) direka untuk meningkatkan prestasi pengiraan tetapi pada kos ketepatan penumpuan.
Kecerunan Purata Stochastic mengimbangi pendekatan klasik, yang dikenali sebagai Keturunan Kecerunan Penuh dan SGD, dan menawarkan kedua-dua faedah. Tetapi sebelum kita boleh menggunakan algoritma, kita mesti terlebih dahulu memahami kepentingannya untuk pengoptimuman model.
Setiap algoritma ML mempunyai fungsi kehilangan yang berkaitan yang bertujuan untuk meminimumkan atau meningkatkan prestasi model. Secara matematik, kerugian boleh ditakrifkan sebagai:
Ia hanyalah perbezaan antara output sebenar dan yang diramalkan, dan meminimumkan perbezaan ini bermakna model kami lebih dekat dengan nilai kebenaran asas.
Algoritma pengecilan menggunakan keturunan kecerunan untuk merentasi fungsi kehilangan dan mencari minimum global. Setiap langkah traversal melibatkan pengemaskinian pemberat algoritma untuk mengoptimumkan output.
Algoritma penurunan kecerunan konvensional menggunakan purata semua kecerunan yang dikira merentas keseluruhan set data. Kitaran hayat contoh latihan tunggal kelihatan seperti berikut:
Persamaan kemas kini berat kelihatan seperti berikut:
Di mana W
mewakili berat model dan dJ/dW
ialah terbitan bagi fungsi kehilangan berkenaan dengan berat model. Kaedah konvensional mempunyai kadar penumpuan yang tinggi tetapi menjadi mahal dari segi pengiraan apabila berurusan dengan set data besar yang terdiri daripada berjuta-juta titik data.
Metodologi SGD kekal sama seperti GD biasa, tetapi bukannya menggunakan keseluruhan set data untuk mengira kecerunan, ia menggunakan sekumpulan kecil daripada input. Kaedah ini jauh lebih cekap tetapi mungkin melompat terlalu banyak di sekitar minima global kerana setiap lelaran hanya menggunakan sebahagian daripada data untuk pembelajaran.
Pendekatan Stochastic Average Gradient (SAG) diperkenalkan sebagai jalan tengah antara GD dan SGD. Ia memilih titik data rawak dan mengemas kini nilainya berdasarkan kecerunan pada titik itu dan purata wajaran kecerunan lalu yang disimpan untuk titik data tertentu itu.
Sama seperti SGD, SAG memodelkan setiap masalah sebagai jumlah terhingga bagi fungsi cembung yang boleh dibezakan. Pada mana-mana lelaran tertentu, ia menggunakan kecerunan semasa dan purata kecerunan sebelumnya untuk pengemaskinian berat. Persamaan mengambil bentuk berikut:
Di antara dua algoritma popular, kecerunan penuh (FG) dan keturunan kecerunan stokastik (SGD), algoritma FG mempunyai kadar penumpuan yang lebih baik kerana ia menggunakan keseluruhan set data semasa setiap lelaran untuk pengiraan.
Walaupun SAG mempunyai struktur yang serupa dengan SGD, kadar penumpuannya adalah setanding dan kadangkala lebih baik daripada pendekatan kecerunan penuh. Jadual 1 di bawah meringkaskan keputusan daripada eksperimen bagi
Walaupun prestasinya yang menakjubkan, beberapa pengubahsuaian telah dicadangkan kepada algoritma SGD asal untuk membantu meningkatkan prestasi.
Keturunan kecerunan ialah pengoptimuman popular yang digunakan untuk mencari minima global bagi fungsi objektif yang disediakan. Algoritma menggunakan kecerunan fungsi objektif untuk melintasi cerun fungsi sehingga mencapai titik terendah.
Keturunan Kecerunan Penuh (FG) dan Keturunan Kecerunan Stokastik (SGD) ialah dua variasi algoritma yang popular. FG menggunakan keseluruhan set data semasa setiap lelaran dan memberikan kadar penumpuan yang tinggi pada kos pengiraan yang tinggi. Pada setiap lelaran, SGD menggunakan subset data untuk menjalankan algoritma. Ia jauh lebih cekap tetapi dengan penumpuan yang tidak menentu.
Kecerunan Purata Stokastik (SAG) ialah satu lagi variasi yang memberikan faedah kedua-dua algoritma sebelumnya. Ia menggunakan purata kecerunan lalu dan subset set data untuk memberikan kadar penumpuan yang tinggi dengan pengiraan yang rendah. Algoritma boleh diubah suai lagi untuk meningkatkan kecekapannya menggunakan vektorisasi dan kelompok mini.