Obecnie uczę się o szacunkach metodą najmniejszych kwadratów (i innych) dla regresji, a z tego, co czytam również w niektórych literaturach algorytmu adaptacyjnego, często pojawia się wyrażenie „... a ponieważ powierzchnia błędu jest wypukła ...” i jakakolwiek głębia, dlaczego na początku jest wypukła, nie ma gdzie znaleźć.
... Co dokładnie sprawia, że jest wypukły ?
Uważam, że to powtarzające się pominięcie jest dość irytujące, ponieważ chcę mieć możliwość zaprojektowania własnych algorytmów adaptacyjnych z własnymi funkcjami kosztów, ale jeśli nie będę w stanie stwierdzić, czy moja funkcja kosztów daje wypukłą powierzchnię błędu, czy nie, nie będę w stanie zajmijcie się zbyt daleko, stosując coś w rodzaju zejścia gradientowego, ponieważ nie będzie globalnego minimum. Może chcę być kreatywny - może nie chcę na przykład używać najmniejszych kwadratów jako moich kryteriów błędów.
Po głębszym kopaniu (i moje pytania zaczynają się tutaj), stwierdziłem, że aby móc stwierdzić, czy masz wypukłą powierzchnię błędu, musisz upewnić się, że macierz Hesji jest półokreślona dodatnio. W przypadku matematyki symetrycznej test ten jest prosty - po prostu upewnij się, że wszystkie wartości własne macierzy Hesji są nieujemne. (Jeśli macierz nie jest symetryczna, możesz ją uczynić symetryczną, dodając ją do własnej transpozycji i wykonując ten sam test wartości własnej, na mocy Gramiana , ale to nie jest tutaj ważne).
Co to jest macierz heskańska? Matryca heskańska kodyfikuje wszystkie możliwe kombinacje częściowych funkcji kosztów. Ile jest części cząstkowych? Tyle ile funkcji w wektorze funkcji. Jak obliczyć częściowe? Weź częściowe instrumenty pochodne „ręcznie” z pierwotnej funkcji kosztów.
Tak właśnie zrobiłem: zakładam, że mamy macierz danych x , oznaczoną macierzą , gdzie oznacza liczbę przykładów, a liczbę funkcji na przykład. (która będzie również liczbą częściowych). Przypuszczam, że możemy powiedzieć, że mamy próbek czasowych i próbek przestrzennych z czujników, ale fizyczne zastosowanie nie jest tutaj zbyt ważne.X m n m n
Ponadto mamy również wektor o rozmiarze x . (Jest to wektor „etykiety” lub „odpowiedź” odpowiadający każdemu wierszowi ). Dla uproszczenia założyłem dla tego konkretnego przykładu. Więc 2 „przykłady” i 2 „cechy”.m 1 X m = n = 2
Załóżmy teraz, że chcesz ustalić tutaj „linię” lub wielomian najlepszego dopasowania. Oznacza to, że rzutujesz swoje funkcje danych wejściowych na wielomianowy wektor efektywny tak, że twoja funkcja kosztów to:
Weźmy teraz pierwszą pochodną częściową wrt , (funkcja 0) Tak więc:
Teraz obliczmy wszystkie drugie częściowe, więc:
Wiemy, że Hesjan to nic innego jak:
Teraz, w oparciu o to, jak skonstruowałem macierz danych (moje „cechy” idą według kolumn, a moje przykłady według wierszy), wydaje się , że Hesjan jest:
... co jest niczym innym jak przykładową macierzą kowariancji !
Nie jestem więc pewien, jak interpretować - a raczej powiedzieć, nie jestem pewien, jak uogólniam się tutaj. Ale myślę, że mogę powiedzieć, że:
Zawsze prawda:
- Matryca heskańska zawsze kontroluje, czy twoja powierzchnia błędu / kosztu jest wypukła.
- Jeśli macierz Hesji ma pos-semi-def, jest wypukła (i może z powodzeniem korzystać z algorytmów, takich jak opadanie gradientu, aby uzyskać optymalne rozwiązanie).
Dotyczy tylko LSE:
- Macierz Hesji dla kryterium kosztu LSE jest niczym innym jak pierwotną macierzą kowariancji. (!).
- Dla mnie oznacza to, że jeśli użyję kryterium LSE, same dane określają, czy mam powierzchnię wypukłą? ... Co zatem oznaczałoby, że wektory własne mojej macierzy kowariancji mają zdolność do „kształtowania” powierzchni kosztów? Czy to zawsze prawda? A może po prostu zadziałało w przypadku kryteriów LSE? Po prostu nie zgadza się ze mną, że wypukłość powierzchni błędu powinna zależeć od danych.
Wracając do pierwotnego pytania, w jaki sposób można ustalić, czy powierzchowność błędu (na podstawie wybranej funkcji kosztu) jest wypukła, czy nie? Czy to ustalenie opiera się na danych, czy Hesji?
Dzięki
TLDR: Jak dokładnie i praktycznie mam zająć się ustalaniem, czy moja funkcja kosztu i / lub zestaw danych dają wypukłą lub niewypukłą powierzchnię błędu?