Що робить помилку поверхня опуклою? Чи визначається це матрицею Коварінаце або Гессією?


17

В даний час я дізнаюся про оцінки найменших квадратів (та інших) для регресії, і з того, що я також читаю в деяких літературах адаптивного алгоритму, часто буває словосполучення "... і оскільки поверхня помилок випукла ..." з'являється і будь-яка глибина того, чому вона опукла для початку, не може бути де її знайти.

... Отже, що саме робить його опуклим ?

Мені здається, що це повторне упущення дещо роздратовує, тому що я хочу вміти розробляти власні адаптивні алгоритми із власними функціями витрат, але якщо я не можу сказати, чи може моя функція витрат давати опуклу поверхню помилок чи ні, я не зможу Занадто далеко, застосувавши щось на зразок градієнтного спуску, оскільки не буде глобального мінімуму. Можливо, я хочу займатися творчістю - можливо, я не хочу використовувати найменші квадрати як свої критерії помилок.

Викопавши глибше (і мої запитання починаються тут), я виявив, що для того, щоб можна було сказати, чи є у вас опукла поверхня помилок, ви повинні переконатися, що ваша матриця Гессі є позитивною напіввизначеною. Для симетричних матриць цей тест простий - просто переконайтесь, що всі власні значення матриці Гессі є негативними. (Якщо ваша матриця не є симетричною, ви можете зробити її симетричною, додавши її до власної транспозиції та виконавши те саме тест власного значення, в силу Грамія , але це тут не важливо).

Що таке матриця Гессі? Матриця Гессі кодифікує всі можливі комбінації частин вашої функції витрат. Скільки партій є? Стільки ж функцій у вашому векторі функцій. Як обчислити партії? Візьміть часткові похідні "від руки" від функції початкової вартості.

Отже, саме це я і зробив: я припускаю, що у нас є матриця даних m x n , позначена матрицею X , де m позначає кількість прикладів, а n позначає кількість ознак на приклад. (яка також буде кількістю партій). Я думаю, ми можемо сказати, що у нас є m проби часу та n просторових зразків від датчиків, але фізичне застосування тут не надто важливе.

Крім того, ми також маємо вектор розміром m x 1 . (Це ваш вектор "мітки" або ваш "відповідь", відповідний кожному рядку X ). Для простоти я припустив, що m = n = 2 для цього конкретного прикладу. Отже, 2 "приклади" та 2 "функції".ym1Xm=n=2

Отже, припустимо, що ви хочете встановити, що найкраще підходить тут "лінія" або поліном. Тобто ви проектуєте свої функції вхідних даних у співвідношенні з вашим багатоефективним вектором таким чином, що вашою функцією витрат є:θ

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

Тепер візьмемо першу часткову похідну wrt , (характеристика 0) Таким чином:θ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]]

Тепер обчислимо всі другі частки, так:

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

δ2J(θ)δθ0θ1=1mi=1mx0[i]x1[i]

δ2J(θ)δθ1θ0=1mi=1mx1[i]x0[i]

δ2J(θ)δθ12=1mi=1mx12[i]

Ми знаємо, що гессієць - це не що інше, як:

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

H(J(θ))=[1mi=1mx02[i]1mi=1mx0[i]x1[i]1mi=1mx1[i]x0[i]1mi=1mx12[i]]

Now, based on how I have constructed the data matrix X, (my 'features' go by columns, and my examples go by rows), the Hessian appears to be:

H(J(θ))=XTX=Σ

...which is nothing but the sample covariance matrix!

So I am not quite sure how to interpret - or I should say, I am not quite sure how generalizing I should be here. But I think I can say that:

  • Always true:

    • The Hessian matrix always controls whether or not your error/cost surface is convex.
    • If you Hessian matrix is pos-semi-def, you are convex, (and can happily use algorithms like gradient descent to converge to the optimal solution).
  • True for LSE only:

    • The Hessian matrix for the LSE cost criterion is nothing but the original covariance matrix. (!).
    • To me this means that, if I use LSE criterion, the data itself determines whether or not I have a convex surface? ... Which would then mean that the eigenvectors of my covariance matrix somehow have the capability to 'shape' the cost surface? Is this always true? Or did it just work out for the LSE criteria? It just doesnt sit right with me that the convexity of an error surface should be dependent on the data.

So putting it back in the context of the original question, how does one determine whether or not an error surfance (based on some cost function you select) is convex or not? Is this determination based on the data, or the Hessian?

Thanks

TLDR: Як саме і практично я займаюся визначенням того, чи є моя функція витрат та / або набір даних давати опуклу або неопуклу поверхню помилок?

Відповіді:


7

You can think of linear-least squares in single dimension. The cost function is something like a2. The first derivative (Jacobian) is then 2a, hence linear in a. The second derivative (Hessian) is 2 - a constant.

Since the second derivative is positive, you are dealing with convex cost function. This is eqivalent to positive definite Hessian matrix in multivariate calculus.

You deal with just two variables (θ1, θ2) thus the Hessian is particularly simple.

In practice, however, there are often many variables involved, so it is impractical to build and inspect Hessian.

More efficient method is to work directly on the Jacobian matrix J in the least-squares problem:

Jx=b

J can be rank-deficient, singular or near-singular. In such cases, the quadratic surface of the cost function is almost flat and/or wildly stretched in some direction. You can also find that your matrix is theoretically solvable, but the solution is numerically unstable. A method of preconditioning can be used to cope with such cases.

Some algorithms simple run a Cholesky decomposition of J. If the algorithm fails, it means that J is singular (or ill-conditioned).

Numerically more stable, but more expensive is a QR decomposition, which also exists only if J is regular.

Finally, the state-of-the art method is a Singular Value Decomposition (SVD), which is most expensive, can be done on every matrix, reveals numerical rank of J and allows you to treat rank-deficient cases separately.

I wrote an article about linear and non-linear least squares solutions that covers these topics in detail:

Linear and Nonlinear Least-Squares with Math.NET

There are also references to great books that deal with advanced topics related to least-squares (covariance in parameters/data points, preconditioning, scaling, orthogonal distance regression - total least-squares, determining precision and accuracy of the least-squares estimator etc.).

I have made a sample project for the article, which is open source:

LeastSquaresDemo - binary

LeastSquaresDemo - source (C#)


Thanks Libor: 1) Tangential but, choleskey is like a matrix square root it seems, yes? 2) Not sure I understand your point about how the Hessian tells you about convexity at each point on the error surface - are you saying in general? Because from LSE derivation above, the Hessian does not depend on the θ parameters at all, and just on the data. Perhaps you mean in general? 3) Finally in total, how to then determine if an error surface is convex - just stick to making sure the Hessian is SPD? But you mentioned that it might depend on θ...so how can one know for sure? Thanks!
Spacey

2) Так, я маю на увазі загалом. У лінійних найменших квадратах вся поверхня помилок має постійну гессіанську форму. Прийняття другого девіатива квадратичного є постійним, те ж саме стосується і Гессіана. 3) Це залежить від кондиціонування вашої матриці даних. Якщо гессіан spd, у вас є єдине закрите рішення, а поверхня помилки у всіх напрямках опукла. В іншому випадку матриця даних погано обумовлена ​​або є єдиною. Я ніколи не використовував Гессіана, щоб перевірити це, скоріше перевіряючи окремі значення матриці даних або перевіряючи, чи є в нього розклад Холеського. Обидва способи підкажуть, чи є рішення.
Libor

Libor - 1) Якщо можете, додайте, як ви використовували SVD Хматриця даних або те, як ви використовували розклад Choleskey, щоб перевірити, чи є у вас єдине закрите рішення, вони здаються дуже корисними, і це хороший момент, і мені було б цікаво дізнатись, як їх використовувати. 2) Останнє, просто для того, щоб переконатися, що я вас зрозумів щодо Гессіана: Отже, гессієць взагалі є функцієюθ, та / або Х. Якщо це SPD, у нас є опукла поверхня. (Якщо є гессієцьθв цьому, однак, нам доведеться оцінювати його скрізь, де здається). Знову дякую.
Спейси

Мохаммед: 1) Я переписав відповідь і додав посилання на свою статтю про "Найменші квадрати" (можуть бути деякі помилки, я її ще офіційно не публікував), включаючи робочий зразок проекту. Я сподіваюся, що це допоможе вам глибше зрозуміти проблему ... 2) У найменших лінійних квадратах Гессіан є постійним і залежить лише від точок даних. Взагалі, це залежить і від параметрів моделі, але це лише у випадку нелінійних найменших квадратів.
Libor
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.