Mengapa menggunakan gradient descent dengan jaringan saraf?

22
  1. Saat melatih jaringan saraf menggunakan algoritma back-propagation, metode gradient descent digunakan untuk menentukan pembaruan bobot. Pertanyaan saya adalah: Daripada menggunakan metode gradient descent untuk secara perlahan menemukan titik minimum sehubungan dengan bobot tertentu, mengapa kita tidak mengatur turunan , dan temukan nilai bobot yang meminimalkan kesalahan?wd(Kesalahan)dw=0w

  2. Juga, mengapa kita yakin bahwa fungsi kesalahan dalam back-propagation akan menjadi minimum? Tidak bisakah ternyata fungsi kesalahan maksimum? Apakah ada properti khusus dari fungsi squashing yang menjamin bahwa jaringan dengan sejumlah node tersembunyi dengan bobot sewenang-wenang dan vektor input akan selalu memberikan fungsi kesalahan yang memiliki beberapa minimum?

Minaj
sumber
2
Semua judul topi tidak standar di sini (silakan lihat di sekitar Anda) dan di sini dan di tempat lain tidak berlaku lagi sebagai SHOUTING yang tidak diinginkan.
Nick Cox
@Nick Cox, permintaan maaf saya
Minaj
Sangat menarik untuk melihat setiap kali variabel tersembunyi atau laten digunakan dalam model Machine Learning, optimasi (hampir?) Selalu menjadi non-linear, non-cembung dan hanya lebih sulit untuk dioptimalkan.
Vladislavs Dovgalecs

Jawaban:

30
  1. Karena kita tidak bisa. Permukaan optimasi sebagai fungsi dari bobot w adalah nonlinear dan tidak ada solusi bentuk tertutup ada untuk d S ( w )S(w)w.dS(w)dw=0

  2. Keturunan gradien, menurut definisi, turun. Jika Anda mencapai titik stasioner setelah turun, itu harus menjadi minimum (lokal) atau titik sadel, tetapi tidak pernah menjadi maksimum lokal.

Marc Claesen
sumber
Jika fungsi itu cekung, gradien yang layak akan turun selamanya karena satu-satunya cara untuk pergi adalah ke bawah. Apakah Anda mengatakan bahwa permukaan kesalahan dijamin tidak cekung? Juga, tidak jelas bagi saya mengapa turunan dari fungsi kesalahan tidak akan memiliki solusi bentuk tertutup. Bukankah kesalahan dari bentuk mana K adalah konstanta? Fungsi itu terlihat cukup dapat dibedakan dan ekspresi yang dihasilkan secara analitis dapat dipecahkan. Tolong bantu saya mengklarifikasi karena ada sesuatu yang saya jelas gagal lihat. K-11+eΣwx
Minaj
8
Ini tidak dapat terjadi, karena semua fungsi kesalahan yang umum digunakan memiliki minimum teori ketat 0. Kesalahan tidak pernah bisa menjadi negatif.
Marc Claesen
2
Satu kemungkinan interpretasi lain dari 1. adalah "Itulah yang kami lakukan, persamaan diselesaikan menggunakan gradient descent."
Matthew Drury
1
jelas ada bentuk tertutup untuk gradien (itulah cara kami melakukan gradient descent secara efisien). Masalahnya adalah tidak ada bentuk tertutup dari gradien = 0
seanv507
@ seanv507 itulah yang ingin saya katakan, maaf atas kebingungannya. Mengedit pos saya.
Marc Claesen
10

Mengenai jawaban Marc Claesen, saya percaya bahwa gradient descent dapat berhenti pada maksimum lokal dalam situasi di mana Anda menginisialisasi ke maksimum lokal atau Anda kebetulan berakhir di sana karena nasib buruk atau parameter laju yang salah. Maksimum lokal akan memiliki gradien nol dan algoritma akan berpikir itu telah konvergen. Inilah sebabnya saya sering menjalankan beberapa iterasi dari titik awal yang berbeda dan melacak nilai-nilai di sepanjang jalan.

Jared Becksfort
sumber
1
Saya mengedit komentar pembukaan Anda, karena sepertinya Anda sudah menarik beberapa upvotes! Selamat datang di situs ini!
Matthew Drury
Terima kasih! Saya tidak yakin apakah itu harus berupa komentar atau jawaban dan tidak ingin jawaban pertama saya diturunkan menjadi dilupakan berdasarkan itu saja.
Jared Becksfort
6

d(kesalahan)dw=0

  • Kita perlu berurusan dengan turunan kedua (Hessian, khususnya produk vektor-Hessian).
  • "Langkah pemecahan" sangat mahal secara komputasi: pada saat dibutuhkan untuk menyelesaikan, orang dapat melakukan banyak iterasi gradient descent.

Jika seseorang menggunakan metode Krylov untuk menyelesaikan Goni, dan seseorang tidak menggunakan prekondisi yang baik untuk Goni, maka biaya kira-kira menyeimbangkan - iterasi Newton membutuhkan waktu lebih lama tetapi membuat lebih banyak kemajuan, sedemikian rupa sehingga total waktu kira-kira sama atau lebih lambat dari gradient descent. Di sisi lain, jika seseorang memiliki prekondisi Hessian yang baik maka metode Newton memenangkan banyak waktu.

Yang mengatakan, metode trust-wilayah Newton-Krylov adalah standar emas dalam optimasi skala besar modern, dan saya hanya akan mengharapkan penggunaannya untuk meningkatkan jaring saraf di tahun-tahun mendatang karena orang ingin memecahkan masalah yang lebih besar dan lebih besar. (dan juga karena semakin banyak orang dalam optimasi numerik tertarik pada pembelajaran mesin)

Nick Algeria
sumber
Saya pikir Anda salah. Orang-orang telah menggunakan jaring sejak tahun 90-an, dan mereka sangat menyadari metode urutan kedua. masalahnya adalah bahwa nnets berhasil ketika ada banyak data, yang kemudian mendukung banyak parameter yang dalam hal ini kendala waktu dan memori metode urutan kedua tidak efektif. lihat misalnya leon.bottou.org/publications/pdf/compstat-2010.pdf
seanv507
@ seanv507 Tidak juga. Pembahasan metode urutan kedua dalam makalah itu memiliki banyak kelemahan, dalam hal itu mereka menganggap seseorang harus membangun dan membalikkan seluruh Hessian yang padat untuk menggunakan metode urutan kedua. Ini sama sekali bukan bagaimana hal itu dilakukan dalam optimasi numerik skala besar modern. Dalam metode orde dua modern kita menghitung aksi Hessian pada vektor dengan memecahkan masalah adjoint, dan menggunakannya dalam pemecah iteratif (Krylov). Umumnya iterasi dalam pertama mengembalikan arah gradien, dan iterasi selanjutnya memperbaikinya.
Nick Alger
Meskipun saya bukan penggemar kertas itu, saya tidak berpikir itu benar. Dia sebelumnya telah membahas / mengimplementasikan pendekatan diagonal dan mengurangi peringkat hessian. Dan bagaimana dengan makalah pearlmutter tahun 1994 dengan perkalian yang cepat oleh hessian?
seanv507
Kanan. Setelah Anda memiliki aplikasi Hessian cepat (baik melalui Pearlmutter atau apa pun), Anda dapat melakukan penyelesaian Hessian yang tidak tepat dengan metode Krylov seperti gradien konjugat. Dengan melakukan ini, seseorang secara efektif memindahkan kesulitan pengondisian jauh dari pengoptimal iteratif nonlinier, ke pemecah iteratif aljabar linier di mana seseorang memiliki banyak mesin dan teknik prekondisi yang tersedia untuk mengatasi masalah tersebut. Referensi yang baik adalah bagian tentang wilayah kepercayaan CG-Steihaug dalam "Optimasi Numerik" klasik oleh Nocedal dan Wright.
Nick Alger
Maksud saya adalah bahwa perkalian ini dengan gradien hessian dan konjugat telah dikenal di komunitas nnets sejak tahun 1994. Jadi saya percaya pasti ada alasan mengapa SGD digunakan daripada metode urutan kedua (dan saya pasti ingin resolusi yang jelas mengapa ini )
seanv507