Apa yang Membuat Permukaan Cembung Kesalahan? Apakah Itu Ditentukan oleh Matriks Covarinace atau Hessian?

17

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 m 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 nnXmnmn

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 = 2ym1Xm=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:θ

J(θ)=12msaya=1m[θ0x0[saya]+θ1x1[saya]-y[saya]]2

Sekarang, mari kita ambil turunan parsial pertama wrt , (fitur 0) Jadi:θ0

δJ(θ)δθ0=1mi=1m[θ0x0[i]+θ1x1[i]y[i]]x0[i]

δJ(θ)δθ0=1mi=1m[θ0x02[i]+θ1x1[i]x0[i]y[i]x0[i]]

Sekarang, mari kita hitung semua parsial kedua, jadi:

δ2J(θ)δθ02=1mi=1mx02[i]

δ2J(θ)δθ0θ1=1msaya=1mx0[saya]x1[saya]

δ2J(θ)δθ1θ0=1msaya=1mx1[saya]x0[saya]

δ2J(θ)δθ12=1msaya=1mx12[saya]

Kita tahu bahwa Goni tidak lain adalah:

H(J(θ))=[δ2J(θ)δθ02δ2J(θ)δθ0θ1δ2J(θ)δθ1θ0δ2J(θ)δθ12]

H(J(θ))=[1msaya=1mx02[saya]1msaya=1mx0[saya]x1[saya]1msaya=1mx1[saya]x0[saya]1msaya=1mx12[saya]]

Sekarang, berdasarkan bagaimana saya telah membangun matriks data , ('fitur' saya dengan kolom, dan contoh saya pergi dengan baris), Hessian tampaknya :X

H(J(θ))=XTX=Σ

... 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?

Spacey
sumber

Jawaban:

7

Anda dapat memikirkan linear-least square dalam dimensi tunggal. Fungsi biaya adalah . Derivatif pertama (Jacobian) adalah 2 a , maka linear dalam a . Derivatif kedua (Goni) adalah 2 - konstanta.Sebuah22SebuahSebuah2

Karena turunan kedua positif, Anda berurusan dengan fungsi biaya cembung. Ini sama dengan matriks Hessian definitif positif dalam kalkulus multivariat.

Anda hanya berurusan dengan dua variabel ( , θ 2 ) sehingga Hessian sangat sederhana.θ1θ2

Namun dalam praktiknya, sering ada banyak variabel yang terlibat, sehingga tidak praktis untuk membangun dan memeriksa Hessian.

J

Jx=b

J

JJ

J

J

Saya menulis artikel tentang solusi kuadrat linier dan non-linear yang mencakup topik-topik ini secara rinci:

Linear dan Nonlinear Least-Square dengan Math.NET

Ada juga referensi untuk buku-buku hebat yang berhubungan dengan topik-topik lanjutan yang terkait dengan kuadrat-terkecil (kovarians dalam parameter / titik data, prakondisi, penskalaan, regresi jarak ortogonal - total kuadrat-terkecil, menentukan presisi dan akurasi estimator kuadrat-terkecil dll. ).

Saya telah membuat proyek sampel untuk artikel tersebut, yaitu open source:

LeastSquaresDemo - biner

LeastSquaresDemo - source (C #)

Libor
sumber
θθ
2) Ya maksud saya secara umum. Dalam linear kuadrat terkecil, seluruh permukaan kesalahan memiliki Goni konstan. Mengambil derviatif kuadratik kedua adalah konstan, hal yang sama berlaku untuk Hessian. 3) Tergantung pada pengkondisian matriks data Anda. Jika Hessian adalah spd, Anda ada solusi tertutup tunggal dan permukaan kesalahan cembung di semua arah. Jika tidak, matriks data tidak dikondisikan atau tunggal. Saya tidak pernah menggunakan Hessian untuk menyelidiki itu, lebih tepatnya memeriksa nilai-nilai singular dari matriks data atau memeriksa apakah ia memiliki dekomposisi Cholesky. Kedua cara akan memberi tahu Anda apakah ada solusi.
Libor
XθXθ
Mohammad: 1) Saya telah menulis ulang jawaban dan menambahkan tautan ke artikel saya tentang Least-Squares (mungkin ada beberapa kesalahan, saya belum mempublikasikannya secara resmi) termasuk proyek sampel yang berfungsi. Saya harap ini akan membantu Anda memahami masalahnya lebih dalam ... 2) Dalam linear-least square, Hessian konstan dan bergantung pada titik data saja. Secara umum, itu tergantung pada parameter model juga, tetapi ini hanya kasus kuadrat terkecil non-linear.
Libor