Aby zilustrować moje pytanie, załóżmy, że mam zestaw treningowy, w którym sygnał wejściowy ma pewien poziom szumu, ale wynik nie, na przykład;
# Training data
[1.02, 1.95, 2.01, 3.06] : [1.0]
[2.03, 4.11, 5.92, 8.00] : [2.0]
[10.01, 11.02, 11.96, 12.04] : [1.0]
[2.99, 6.06, 9.01, 12.10] : [3.0]
tutaj wyjściem jest gradient tablicy wejściowej, jeśli byłby bezszumowy (nie rzeczywisty gradient).
Po przeszkoleniu sieci dane wyjściowe powinny wyglądać mniej więcej tak dla danego wejścia.
# Expected Output
[1.01, 1.96, 2.00, 3.06] : 95% confidence interval of [0.97, 1.03]
[2.03, 4.11, 3.89, 3.51] : 95% confidence interval of [2.30, 4.12]
Moje pytanie brzmi: w jaki sposób można stworzyć sieć neuronową, która zwróci przewidywaną wartość i miarę ufności, taką jak wariancja lub przedział ufności?
Odpowiedzi:
Wygląda na to, że szukasz przedziału prognozy , czyli przedziału, który zawiera określony procent przyszłych realizacji. (Spójrz na tagu wiki dla predykcji odstępu i zaufania przedziale różnicy).
Twój najlepszy zakład prawdopodobnie będzie działał bezpośrednio z architekturami NN, które nie generują prognoz jednopunktowych, ale całe rozkłady predykcyjne . Następnie można bezpośrednio wyodrębnić pożądane przedziały predykcji (lub prognozy średnie lub mediany punktów) z tych rozkładów. Ja i inni argumentowaliśmy, że rozkłady predykcyjne są znacznie bardziej przydatne niż predykcje punktowe , ale szczerze mówiąc, nie widziałem jeszcze dużo pracy nad rozkładami predykcyjnymi z sieciami neuronowymi, chociaż wciąż mam oczy otwarte. Ten papier wydaje się być przydatny. Możesz poszukać trochę, być może również używając innych słów kluczowych, takich jak „prognozy rozkładów” lub „gęstość predykcyjna” i tym podobne.
To powiedziawszy, możesz przyjrzeć się algorytmowi NeuroBayesa Michaela Feindta , który wykorzystuje bayesowskie podejście do prognozowania gęstości predykcyjnej.
źródło
Nie jestem pewien, czy można obliczyć przedział ufności dla pojedynczej prognozy, ale rzeczywiście można obliczyć przedział ufności dla wskaźnika błędów dla całego zestawu danych (można uogólnić dla dokładności i wszelkich innych ocenianych miar).
Jeśli jest wskaźnikiem błędu podczas klasyfikowania niektórych danych S o rozmiarze n , 95% przedział ufności dla tego wskaźnika błędu wynosi: e ± 1,96e S n
(patrz książka „Uczenie maszynowe” Toma Mitchella, rozdział 5).
EDYTOWAĆ
Chyba powinienem podać bardziej ogólny przypadek, którym jest: gdzie typowe opcje dlazNsą wymienione w poniższej tabeli:
źródło
Przedziały prognostyczne (PI) w problemach regresji i klasyfikacji nieparametrycznej, takich jak sieci neuronowe, SVM, losowe lasy itp. Są trudne do zbudowania. Chciałbym usłyszeć inne opinie na ten temat.
Jednak, o ile mi wiadomo, przewidywanie konformalne (CP) jest jedyną opartą na zasadach metodą budowania skalibrowanego PI do przewidywania w regresji nieparametrycznej i problemach z klasyfikacją. Samouczek na temat CP można znaleźć w Shfer i Vovk (2008), J. Machine Learning Research 9 , 371-421 [pdf]
źródło
Nie znam żadnej metody, aby to zrobić dokładnie.
Aby sprawdzić, jak dobre są twoje założenia dotyczące danych do walidacji, na które warto spojrzećyja- μ ( xja)σ( xja) aby sprawdzić, czy z grubsza śledzą N.( 0 , 1 ) . W przypadku danych testowych ponownie chcesz zmaksymalizować prawdopodobieństwo danych testowych, aby móc ponownie użyć metryki NLPD.
źródło
I have not heard of any method that gives a confidence interval for a neural network prediction. Despite a lack of formal methodology, it seems like it might be feasible to construct one. I have never attempted this due to the compute power that would be needed and I make no claims on this working for certain, but one method that might work for a tiny neural net (or with blazing fast GPU power it could work for moderate sized nets) would be to resample the training set and build many similar networks (say 10,000 times) with the same parameters and initial settings, and build confidence intervals based on the predictions for each of your bootstrapped net.
Na przykład w 10 000 sieci przeszkolonych w sposób opisany powyżej można uzyskać 2,0 (po zaokrągleniu prognoz regresji sieci neuronowej) 9 000 z tych czasów, więc można byłoby przewidzieć 2,0 z 90% CI. Następnie można zbudować tablicę elementów CI dla każdej dokonanej prognozy i wybrać tryb raportowania jako podstawowy element CI.
źródło
Jeśli chodzi o bezpośrednie generowanie przedziałów predykcji, istnieje artykuł z 2011 r. „ Kompleksowy przegląd interwałów predykcji opartych na sieci neuronowej ”
Porównują cztery podejścia:
1: Metoda delta 2: Metoda bayesowska 3: Oszacowanie średniej wariancji 4: Bootstrap
Ci sami autorzy opracowali metodę oszacowania dolnej górnej granicy dla konstrukcji przedziałów predykcyjnych opartych na sieci neuronowej, która bezpośrednio wysyła dolną i górną granicę z NN. Niestety nie działa z backpropem, ale ostatnie prace umożliwiły ten interwał wysokiej jakości predykcji dla głębokiego uczenia się .
Alternatywnie do bezpośredniego generowania interwałów predykcji, bayesowskie sieci neuronowe (BNN) modelują niepewność parametrów NN, a zatem wychwytują niepewność na wyjściu. Jest to trudne do zrobienia, ale popularne metody obejmują uruchomienie rezygnacji MC w czasie przewidywania lub zestawienie .
źródło
Istnieją sposoby, aby to zrobić za pomocą rezygnacji. Uruchom ewaluację z włączonym opuszczaniem (zwykle jest wyłączona dla ewaluacji, ale włączona podczas szkolenia) i uruchom ewaluację kilka razy.
Rozkład wyników z wielu różnych przebiegów można wykorzystać jako przedziały ufności.
Zobacz artykuł „ Porzucenie jako przybliżenie bayesowskie: reprezentowanie niepewności modelu w głębokim uczeniu się ” Obejrzyj prezentację na youtube Andrew Rowan - Głębokie uczenie się bayesowskie z Edwardem (i sztuczka za pomocą Dropouta)
źródło
Nie ma mowy, wszystkie modele ML nie polegają na zrozumieniu zjawiska, są to metody interpolacji z nadzieją, że „zadziała”. Zacznij od takich pytań pewność siebie, odporność na hałas nie ma odpowiedzi.
Aby więc coś uzyskać, skorzystaj z różnych stosowanych i podstawowych nauk:
Użyj kontroli (i załóż dynamikę)
Użyj optymalizacji wypukłej (z dodatkowym warunkiem funkcji)
Użyj statystyki matematycznej (ze wstępnymi założeniami dotyczącymi dystrybucji)
Użyj przetwarzania sygnału (przy niektórych założeniach, że sygnał ma ograniczone pasmo)
Naukowcy używają pewnych wstępnych założeń (zwanych aksjomatami), aby coś wyprowadzić.
Nie ma sposobu, aby dać jakiekolwiek zaufanie bez pewnych wstępnych założeń, więc problem nie występuje w DL mehtod, ale jest to problem w każdej metodzie, która próbuje interpolować bez ŻADNEGO wstępnego założenia - nie ma sposobu, aby uzyskać algebrę inteligentnie bez założenia.
NN i różne metody ML służą do szybkiego prototypowania w celu stworzenia „czegoś”, co wydaje się działać „jakoś” sprawdzone przy weryfikacji krzyżowej.
Jeszcze głębiej regresja dopasowuje E [Y | X] lub jej oszacowanie może być absolutnie niepoprawnym problemem do rozwiązania (być może pdf w punkcie Y = E [Y | X] ma minimum, a nie maksimum), a jest wiele takich subtelnych rzeczy
Przypomnę też dwa nierozwiązywalne problemy w AI / ML, o których z pewnych powodów można zapomnieć, za hasłami piękna:
(1) To metody interpolacji, a nie ekstrapolacji - nie ma możliwości radzenia sobie z nowymi problemami
(2) nikt nie wie, jak zachowa się każdy model na danych, które nie pochodzą z tej samej dystrybucji (mężczyzna w kostiumie banana do lokalizacji pieszych)
źródło
Ten artykuł jest interesującą prezentacją techniki opartej na rezygnacji:
http://mlg.eng.cam.ac.uk/yarin/blog_3d801aa532c1ce.html
źródło