paint-brush
Memahami Kecerunan Purata Stokastikoleh@kustarev
31,726 bacaan
31,726 bacaan

Memahami Kecerunan Purata Stokastik

oleh Andrey Kustarev4m2024/06/06
Read on Terminal Reader
Read this story w/o Javascript

Terlalu panjang; Untuk membaca

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.

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Memahami Kecerunan Purata Stokastik
Andrey Kustarev HackerNoon profile picture
0-item


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.

Mengoptimumkan Objektif Pembelajaran Mesin dengan Penurunan Kecerunan

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.


Keturunan Kecerunan Biasa

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.

Penurunan Kecerunan Stokastik (SGD)

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.

Kecerunan Purata Stokastik

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:



Kadar Penumpuan

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 Schmidt et. al .

Sumber: https://arxiv.org/pdf/1309.2388

Pengubahsuaian Selanjutnya

Walaupun prestasinya yang menakjubkan, beberapa pengubahsuaian telah dicadangkan kepada algoritma SGD asal untuk membantu meningkatkan prestasi.


  • Pemberatan semula dalam Lelaran Awal: Konvergensi SAG kekal perlahan semasa beberapa lelaran pertama kerana algoritma menormalkan arah dengan n (jumlah bilangan titik data). Ini memberikan anggaran yang tidak tepat kerana algoritma masih belum melihat banyak titik data. Pengubahsuaian mencadangkan penormalan oleh m dan bukannya n, di mana m ialah bilangan titik data yang dilihat sekurang-kurangnya sekali sehingga lelaran tertentu itu.
  • Mini-batch: Pendekatan Stochastic Gradient menggunakan mini-batch untuk memproses berbilang titik data secara serentak. Pendekatan yang sama boleh digunakan untuk SAG. Ini membolehkan pengvektoran dan penyejajaran untuk kecekapan komputer yang lebih baik. Ia juga mengurangkan beban memori, cabaran yang menonjol untuk algoritma SAG.
  • Percubaan Saiz Langkah: Saiz langkah yang dinyatakan sebelum ini (116L) memberikan hasil yang menakjubkan, tetapi pengarang terus mencuba dengan menggunakan saiz langkah 1L. Yang terakhir memberikan penumpuan yang lebih baik. Walau bagaimanapun, penulis tidak dapat membentangkan analisis formal hasil yang lebih baik. Mereka menyimpulkan bahawa saiz langkah perlu diuji untuk mencari yang optimum untuk masalah tertentu.


Fikiran Akhir

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.