Bagaimana bisa terperangkap di sadel?

14

Saat ini saya agak bingung dengan bagaimana mini-batch gradient descent dapat terperangkap di titik sadel.

Solusinya mungkin terlalu sepele sehingga saya tidak mengerti.

Anda mendapatkan sampel baru setiap zaman, dan menghitung kesalahan baru berdasarkan batch baru, sehingga fungsi biaya hanya statis untuk setiap batch, yang berarti bahwa gradien juga harus berubah untuk setiap batch mini .. tetapi menurut ini harus implementasi vanilla memiliki masalah dengan poin sadel?

Tantangan utama lain dari meminimalkan fungsi kesalahan yang sangat non-cembung yang umum untuk jaringan saraf adalah menghindari terjebak dalam banyak minimum lokal suboptimal mereka. Dauphin et al. [19] berpendapat bahwa kesulitan muncul sebenarnya bukan dari minima lokal tetapi dari titik pelana, yaitu titik-titik di mana satu dimensi miring ke atas dan yang lain miring ke bawah. Poin pelana ini biasanya dikelilingi oleh dataran tinggi dari kesalahan yang sama, yang membuatnya sangat sulit bagi SGD untuk melarikan diri, karena gradien mendekati nol di semua dimensi.

Maksud saya, terutama SGD akan memiliki keuntungan yang jelas terhadap poin sadel, karena berfluktuasi menuju konvergensinya ... Fluktuasi dan pengambilan sampel acak, dan fungsi biaya menjadi berbeda untuk setiap zaman harus menjadi alasan yang cukup untuk tidak terjebak dalam satu sadel.

Untuk gradien bets penuh yang layak, apakah masuk akal bahwa ia dapat terjebak dalam sadel, karena fungsi kesalahannya konstan.

Saya agak bingung pada dua bagian lainnya.

Fixining_ranges
sumber
1
Moti mengerti. Titik pelana dengan kemiringan yang sangat tinggi dan dikelilingi oleh kemiringan nol meluncurkan gradient descent dengan langkah-langkah besar ke "tanah tandus" dari mana ia tidak dapat pulih. Pikirkan tentang mencari sumur di dataran yang pada dasarnya datar. Sekarang pikirkan tentang sumur kering, dan dengan semut-bukit di tengah. Sebuah gradien-keturunan yang mendarat di semut-bukit, tetapi tidak di atas tepat, akan menembak pencarian secara radial. Sekarang bayangkan ukuran langkah untuk pencarian adalah seribu kali lebih besar dari diameter sumur. Jika pencarian menemukan sumur, sarang semut akan menembaknya ke montana
EngrStudent - Reinstate Monica
Saya bingung apa yang Anda minta. Apakah Anda bingung mengapa SGD tidak dapat terjebak di sadel karena noise bawaan yang dimiliki SGD, jadi menurut Anda itu harus dapat melarikan diri? (tidak seperti jika itu adalah GD batch penuh maka jika gradien adalah nol dan tidak ada suara maka tidak dapat melarikan diri, apakah itu yang Anda tanyakan?)
Pinocchio

Jawaban:

16

Lihatlah gambar di bawah ini dari Off Convex . Dalam fungsi cembung (gambar paling kiri), hanya ada satu minimum lokal, yang juga minimum global. Tetapi dalam fungsi non-cembung (gambar paling kanan), mungkin ada beberapa minimum lokal dan sering bergabung dengan dua minimum lokal adalah titik pelana. Jika Anda mendekati dari titik yang lebih tinggi, gradien relatif lebih datar, dan Anda berisiko terjebak di sana, terutama jika Anda hanya bergerak dalam satu arah.

Representasi diagram titik sadel

Sekarang masalahnya, apakah Anda mengoptimalkan menggunakan mini-batchatau penurunan gradien stokastik, fungsi non-cembung yang mendasarinya adalah sama, dan gradien adalah properti dari fungsi ini. Saat melakukan mini-batch, Anda mempertimbangkan banyak sampel sekaligus dan mengambil langkah gradien rata-rata dari semuanya. Ini mengurangi varians. Tetapi jika arah gradien rata-rata masih menunjuk ke arah yang sama dengan titik sadel, maka Anda masih berisiko terjebak di sana. Analoginya adalah, jika Anda mengambil 2 langkah maju dan 1 langkah mundur, rata-rata lebih dari itu, Anda akhirnya mengambil 1 langkah maju. Jika Anda melakukan SGD sebagai gantinya, Anda mengambil semua langkah satu demi satu, tetapi jika Anda masih bergerak dalam satu arah, Anda dapat mencapai titik pelana dan menemukan bahwa gradien di semua sisi cukup datar dan ukuran langkahnya adalah terlalu kecil untuk melewati bagian datar ini. Ini tidak

Lihatlah visualisasi di sini . Bahkan dengan SGD, jika fluktuasi hanya terjadi sepanjang satu dimensi, dengan langkah-langkah semakin kecil, itu akan menyatu pada titik pelana. Dalam hal ini, metode mini-batch hanya akan mengurangi jumlah fluktuasi tetapi tidak akan dapat mengubah arah gradien.

SGD kadang - kadang dapat keluar dari titik sadel sederhana, jika fluktuasi ada di sepanjang arah lain, dan jika ukuran langkah cukup besar untuk melampaui kerataan. Tetapi kadang-kadang daerah sadel bisa cukup rumit, seperti pada gambar di bawah ini.

Daerah pelana yang kompleks

Cara metode seperti momentum, ADAGRAD, Adam dll dapat keluar dari ini, adalah dengan mempertimbangkan gradien masa lalu. Pertimbangkan momentum,

vt=γvt1+ηthetaJ(θ)

vt1

Antimon
sumber
Ya tidak! Untuk jawaban dalam praktik, lihat: stats.stackexchange.com/a/284399/117305
alifornia
@AliAbbasinasab Saya pikir Antimony menjelaskan dengan baik. Tentu saja, terjebak dalam sadel biasa tidak seperti yang Anda sebutkan dalam jawaban Anda, tetapi dia hanya menunjukkan kemungkinan bahwa SGD mungkin tertangkap. Dan bagi saya, dia hanya menunjukkan beberapa poin sadel yang tidak biasa sehingga SGD tidak bisa melarikan diri.
Kazuya Tomita
2

Seharusnya tidak.

[ 1 ] telah menunjukkan bahwa gradient descent dengan inisialisasi acak dan ukuran langkah konstan yang sesuai tidak menyatu ke titik pelana. Ini adalah diskusi yang panjang tetapi untuk memberi Anda gambaran mengapa melihat contoh berikut:

f(x,y)=12x2+14y412y2

masukkan deskripsi gambar di sini

z1=[00],z2=[01],z3=[01]

z2z3z1

z0=[x0]z1z1xR2

2f(x,y)=[1003y21]

2f(z1)xxz1

alifornia
sumber
Anda bisa dengan mudah memilih fungsi contoh tandingan di mana Anda akan terjebak di titik pelana setiap kali ...
Jan Kukacka
1
Saya tidak dapat menjangkau tautan Anda [1] - dapatkah Anda memberikan kutipan lengkap? Sementara itu, dimungkinkan untuk membuat contoh tandingan terhadap klaim Anda, menunjukkan bahwa itu harus didasarkan pada asumsi tambahan yang tidak dinyatakan.
Whuber
@whuber kamu bisa dengan mudah memasak contoh tandingan. Misalnya jika Anda hanya memiliki garis sebagai ruang Anda. Saya hanya mencoba menambahkan poin yang mungkin tidak jelas bagi banyak orang (Awalnya tidak terlalu jelas bagi saya mengapa). Tentang referensi, saya tidak tahu mengapa Anda tidak dapat mencapainya. Saya mengecek ulang, tautannya valid dan mendapatkan pembaruan juga. Anda dapat mencari "Gradient Descent Converges to Minimizers, Jason D. Lee, Max Simchowitz, Michael I. Jordan †, dan Benjamin Recht † epDepartemen Teknik Elektro dan Ilmu Komputer † Departemen Statistik Universitas California, Berkeley, 19 April 2019 "
alifornia
Terima kasih untuk referensi Jika dilihat sekilas (tautannya sekarang berfungsi) menunjukkan analisis ini terbatas pada "sadel ketat" (di mana terdapat nilai eigen positif dan negatif Hessian), yang menghalangi banyak kemungkinan. Pernyataan akhir dari makalah ini meliputi "kami mencatat bahwa ada masalah optimasi yang sangat sulit yang tidak dibatasi di mana kondisi pelana yang ketat gagal" dan mereka menawarkan minimalisasi kuartik sebagai contoh.
whuber
0

Jika Anda pergi ke makalah yang dirujuk (mereka juga secara empiris menunjukkan bagaimana pendekatan bebas pelana mereka benar-benar meningkat pada SGD mini-batch) mereka menyatakan:

Satu langkah dari metode gradient descent selalu menunjuk ke arah yang benar dekat dengan sadel point ... dan langkah-langkah kecil diambil ke arah yang sesuai dengan nilai eigen dari nilai absolut kecil.

Mereka juga mencatat keberadaan "dataran tinggi" di dekat titik pelana (dengan kata lain, pelana tidak curam) - dalam kasus ini, mengambil langkah terlalu kecil memang akan menghasilkan konvergensi dini sebelum melarikan diri dari wilayah pelana. Karena ini adalah optimasi non-cembung, konvergensi tingkat pembelajaran akan memperburuk ini.

Tampaknya mungkin bahwa seseorang dapat mencoba pendekatan berulang, di mana seseorang me-restart SGD mini-batch setelah selesai (yaitu, mengatur ulang tingkat pembelajaran) untuk melihat apakah seseorang dapat keluar dari wilayah yang bermasalah.

MotiN
sumber
0

Saya pikir masalahnya adalah saat mendekati titik pelana Anda memasuki dataran tinggi, yaitu area dengan gradien rendah (dalam nilai absolut). Terutama saat Anda mendekat dari punggung bukit. Jadi algoritma Anda mengurangi ukuran langkah. Dengan ukuran langkah yang menurun sekarang semua gradien (dalam semua arah) bernilai absolut kecil. Jadi algoritme berhenti, menganggapnya paling tidak.

Jika Anda tidak mengurangi langkah maka Anda akan melompati minimum, dan sangat kehilangan mereka. Anda harus mengurangi ukuran langkah.

Aksakal
sumber