Saat ini saya belajar tentang estimasi kuadrat-terkecil (dan lainnya) untuk regresi, dan dari apa yang saya baca dalam beberapa literatur algoritma adaptif, sering kali frasa "... dan karena permukaan kesalahannya cembung ..." muncul dan kedalaman mengapa cembung untuk memulai tidak ada tempat untuk ditemukan.
... Jadi apa sebenarnya yang membuatnya cembung ?
Saya menemukan kelalaian berulang ini sedikit mengganggu karena saya ingin dapat merancang algoritma adaptif saya sendiri, dengan fungsi biaya saya sendiri, tetapi jika saya tidak tahu apakah fungsi biaya saya menghasilkan permukaan kesalahan cembung atau tidak, saya tidak akan bisa terlalu jauh dalam menerapkan sesuatu seperti gradient descent karena tidak akan ada minimum global. Mungkin saya ingin menjadi kreatif - mungkin saya tidak ingin menggunakan kuadrat-terkecil sebagai kriteria kesalahan saya misalnya.
Setelah menggali lebih dalam, (dan pertanyaan saya mulai di sini), saya menemukan bahwa untuk dapat mengetahui apakah Anda memiliki permukaan kesalahan cembung, Anda harus memastikan bahwa matriks Hessian Anda adalah semi-pasti positif. Untuk matrik simetris, tes ini sederhana - cukup pastikan semua nilai eigen dari matriks Hessian adalah non-negatif. (Jika matriks Anda tidak simetris, Anda dapat membuatnya simetris dengan menambahkannya ke transpos sendiri dan melakukan tes nilai eigen yang sama, berdasarkan Gramian , tetapi itu tidak penting di sini).
Apa itu matriks Hessian? Matriks Hessian mengkodifikasi semua kemungkinan kombinasi sebagian fungsi biaya Anda. Ada berapa banyak parsial? Sebanyak jumlah fitur dalam vektor fitur Anda. Bagaimana cara menghitung parsial? Ambil turunan parsial 'dengan tangan' dari fungsi biaya asli.
Jadi itulah yang saya lakukan: Saya berasumsi bahwa kita memiliki matriks data x , dilambangkan dengan matriks , di mana, menunjukkan jumlah contoh, dan menunjukkan jumlah fitur per contoh. (yang juga akan menjadi jumlah parsial). Saya kira kita dapat mengatakan bahwa kita memiliki sampel waktu dan sampel spasial dari sensor, tapi aplikasi fisik tidak terlalu penting di sini.X m n m n
Selain itu, kami juga memiliki vektor ukuran x . (Ini adalah vektor 'label' Anda, atau 'jawaban' Anda yang sesuai dengan setiap baris ). Untuk kesederhanaan, saya mengasumsikan untuk contoh khusus ini. Jadi 2 'contoh' dan 2 'fitur'.m 1 X m = n = 2
Jadi sekarang anggaplah Anda ingin memastikan 'garis' atau polinomial yang paling cocok di sini. Artinya, Anda memproyeksikan fitur data input Anda terhadap vektor co-efisien polinomial Anda sehingga fungsi biaya Anda adalah:
Sekarang, mari kita ambil turunan parsial pertama wrt , (fitur 0) Jadi:
Sekarang, mari kita hitung semua parsial kedua, jadi:
Kita tahu bahwa Goni tidak lain adalah:
Sekarang, berdasarkan bagaimana saya telah membangun matriks data , ('fitur' saya dengan kolom, dan contoh saya pergi dengan baris), Hessian tampaknya :
... yang tidak lain adalah matriks kovarians sampel !
Jadi saya tidak begitu yakin bagaimana menafsirkan - atau saya harus mengatakan, saya tidak begitu yakin bagaimana generalisasi saya harus di sini Tapi saya pikir saya bisa mengatakan itu:
Selalu benar:
- Matriks Hessian selalu mengontrol apakah permukaan kesalahan / biaya Anda cembung.
- Jika Anda matriks Hessian adalah pos-semi-def, Anda cembung, (dan dapat dengan senang hati menggunakan algoritma seperti gradient descent untuk menyatu ke solusi optimal).
Hanya berlaku untuk LSE:
- Matriks Hessian untuk kriteria biaya LSE tidak lain adalah matriks kovarians asli. (!).
- Bagi saya ini berarti bahwa, jika saya menggunakan kriteria LSE, data itu sendiri menentukan apakah saya memiliki permukaan cembung atau tidak? ... Yang kemudian berarti bahwa vektor eigen dari matriks kovarians saya entah bagaimana memiliki kemampuan untuk 'membentuk' permukaan biaya? Apakah ini selalu benar? Atau apakah itu hanya berhasil untuk kriteria LSE? Itu hanya tidak duduk dengan saya bahwa cembung dari permukaan kesalahan harus bergantung pada data.
Jadi memasukkannya kembali dalam konteks pertanyaan awal, bagaimana seseorang menentukan apakah munculnya kesalahan (berdasarkan beberapa fungsi biaya yang Anda pilih) cembung atau tidak? Apakah penentuan ini didasarkan pada data, atau Hessian?
Terima kasih
TLDR: Bagaimana, tepatnya, dan secara praktis cara saya menentukan apakah fungsi biaya dan / atau kumpulan data saya menghasilkan permukaan kesalahan cembung atau non-cembung?