Jest tutaj podobny wątek ( funkcja kosztu sieci neuronowej nie jest wypukła? ), Ale nie byłem w stanie zrozumieć punktów w odpowiedziach i mój powód, by zapytać ponownie, mając nadzieję, że rozwiąże to niektóre problemy:
Jeśli używam sumy kwadratowej funkcji różnicy kosztów, ostatecznie optymalizuję coś w postaci gdzie jest rzeczywistą wartością etykiety podczas treningu faza i to przewidywana wartość etykiety. Ponieważ ma on kwadratową postać, powinna to być funkcja wypukłego kosztu. Więc co może sprawić, że będzie niewypukły w NN? y y
Odpowiedzi:
rzeczywiście wypukły r I . Ale jeśli rw I = f ( x I ; θ ) nie może być wypukła w θ , który jest sytuacja z większością modeli nieliniowych, a my faktycznie dbają o wypukłość w θ bo to co mamy optymalizację funkcji kosztu koniec.∑ja( yja- y^ja)2) y^ja y^ja= f( xja; θ ) θ θ
Rozważmy na przykład sieć z 1 ukrytą warstwą jednostek i liniową warstwą wyjściową: naszą funkcją kosztu jest g ( α , W ) = ∑ i ( y i - α i σ ( W x i ) ) 2 gdzie x i ∈ R p i (i dla uproszczenia pomijam terminy stronniczości). Niekoniecznie jest to wypukłe, gdy jest postrzegane jako funkcja (w zależności odN.
Teraz zdefiniuj funkcję przez gdzie jest z ustaw na a ustaw na . To pozwala nam wizualizować funkcję kosztów, ponieważ te dwie wagi różnią się. h ( u , v ) = g ( α , W ( u , v ) ) W ( u , v ) W W 11 u W 12 vh:R×R→R h(u,v)=g(α,W(u,v)) W(u,v) W W11 u W12 v
Poniższy rysunek pokazuje to dla funkcji aktywacji sigmoidalnej przy , i (tak bardzo prosta architektura). Wszystkie dane (zarówno jak i ) to iid , podobnie jak wszelkie wagi niezmienne w funkcji kreślenia. Tutaj widać brak wypukłości.p = 3 N = 1 x y N ( 0 , 1 )n=50 p=3 N=1 x y N(0,1)
Oto kod R, którego użyłem do stworzenia tej figury (chociaż niektóre parametry mają teraz nieco inne wartości niż wtedy, kiedy to zrobiłem, więc nie będą identyczne):
źródło