W poniższej funkcji TensorFlow musimy zasilać aktywację sztucznych neuronów w końcowej warstwie. Że rozumiem Ale nie rozumiem, dlaczego nazywa się to logitami? Czy to nie jest funkcja matematyczna?
loss_function = tf.nn.softmax_cross_entropy_with_logits(
logits = last_layer,
labels = target_output
)
Odpowiedzi:
Logity to przeciążony termin, który może oznaczać wiele różnych rzeczy:
Matematyczne , logit to funkcja prawdopodobieństw (mapuje
[0, 1]
) do R ((-inf, inf)
)Prawdopodobieństwo 0,5 odpowiada logitowi 0. Logit ujemny odpowiada prawdopodobieństwom mniejszym niż 0,5, dodatnim> 0,5.
W ML , to może być
Logity czasami odnoszą się również do odwrotności elementowej funkcji sigmoidalnej.
źródło
softmax(logit) = exp(logit)/Z(logit)
wtedylogit = h_NN(x)
? więc logit jest taki sam jak „wynik”?[1, 0.5, 0.5]
poprzez normalizację stają się,[0.5, 0.25, 0.25]
a następnie miękkie maksimum stają się[0,]
jednym gorącym[1, 0, 0]
? lub po prostu umieścić,[1, 0, 0]
ponieważ wynik powinien być wektorem?Po prostu dodając to wyjaśnienie, aby każdy, kto przewinie tak dużo w dół, może przynajmniej dobrze to zrobić, ponieważ jest tak wiele błędnych odpowiedzi w głosowaniu.
Diansheng's odpowiedź i JakeJ za odpowiedź zrobić to dobrze.
Nowa odpowiedź opublikowana przez Shital Shah jest jeszcze lepszą i bardziej kompletną odpowiedzią.
Tak,
logit
jako matematyka funkcja w statystyce, alelogit
stosowana w kontekście sieci neuronowych jest inna. Statystykalogit
nie ma tu nawet żadnego sensu.Nigdzie nie mogłem znaleźć formalnej definicji, ale w
logit
zasadzie oznacza:Ponadto z samouczka na oficjalnej stronie tensorflow:
Jeśli nadal jesteś zdezorientowany, sytuacja wygląda następująco:
gdzie
predicted_class_index_by_raw
ipredicted_class_index_by_prob
będą równe.Inną nazwą
raw_predictions
w powyższym kodzie jestlogit
.Co do dlaczegologit
... nie mam pojęcia. Przepraszam.[Edycja: patrz tę odpowiedź, aby poznać historyczne motywy tego terminu.]
Drobnostki
Chociaż, jeśli chcesz, możesz zastosować statystyki
logit
doprobabilities
które wyjdzie zsoftmax
funkcji.Jeśli prawdopodobieństwo pewnej klasy jest
p
,to log-odds dla tej klasy jest
L = logit(p)
.Prawdopodobieństwo tej klasy można również odzyskać za
p = sigmoid(L)
pomocąsigmoid
funkcji.Jednak niezbyt przydatne do obliczania logarytmicznych szans.
źródło
Logit jest funkcją, która odwzorowuje prawdopodobieństwa
[0, 1]
do[-inf, +inf]
.Softmax to funkcja, która odwzorowuje
[-inf, +inf]
na[0, 1]
podobną do Sigmoid. Ale Softmax normalizuje również sumę wartości (wektor wyjściowy) na 1.Tensorflow „z logitem” : Oznacza to, że stosuje się funkcję softmax do rejestrowania liczb w celu jej znormalizowania. Wektor_wejściowy / logit nie jest znormalizowany i może być skalowany od [-inf, inf].
Ta normalizacja jest stosowana w przypadku problemów z klasyfikacją wieloklasową. W przypadku problemów z klasyfikacją wielopłaszczyznową stosuje się normalizację sigmoidalną, tj
tf.nn.sigmoid_cross_entropy_with_logits
źródło
Logit
funkcji (statystyki) ilogits
warstwy (tensorflow)Podsumowanie
W kontekście głębokiego uczenia się warstwa logów oznacza warstwę, która zasila softmax (lub inną taką normalizację). Dane wyjściowe softmax są prawdopodobieństwami dla zadania klasyfikacji, a jego dane wejściowe to warstwa logów. Warstwa logitów zwykle wytwarza wartości od-nieskończoności do + nieskończoności, a warstwa softmax przekształca ją w wartości od 0 do 1.
Kontekst historyczny
Skąd pochodzi ten termin? W latach 30. i 40. kilka osób próbowało dostosować regresję liniową do problemu przewidywania prawdopodobieństw. Jednak regresja liniowa generuje dane wyjściowe od-nieskończoności do + nieskończoności, podczas gdy dla prawdopodobieństw pożądana wartość wyjściowa wynosi od 0 do 1. Jednym ze sposobów jest jakoś odwzorowanie prawdopodobieństwa od 0 do 1 do nieskończoności do + nieskończoności, a następnie jak zwykle zastosować regresję liniową. Jednym z takich mapowań jest skumulowany rozkład normalny, który został użyty przez Chestera Ittnera Blissa w 1934 roku i nazwał ten model „probit”, skrótem od „jednostki prawdopodobieństwa”. Jednak ta funkcja jest kosztowna obliczeniowo, a jednocześnie nie posiada niektórych pożądanych właściwości do klasyfikacji wielu klas. W 1944 r. Joseph Berkson skorzystał z tej funkcji
log(p/(1-p))
aby wykonać to mapowanie i nazwać to logit, skrót od „jednostka logistyczna”. Z tego również wywodzi się termin regresja logistyczna.Zamieszanie
Niestety, termin logity jest nadużywany w głębokim uczeniu się. Z czysto matematycznego punktu widzenia logit jest funkcją, która wykonuje powyżej mapowania. Podczas głębokiego uczenia się ludzie zaczęli nazywać warstwę „warstwą logów”, która zasila funkcję logit. Następnie ludzie zaczęli nazywać wartości wyjściowe tej warstwy „logit”, co powoduje zamieszanie w funkcji logit .
Kod TensorFlow
Niestety kod TensorFlow dodatkowo wprowadza zamieszanie w nazwach takich jak
tf.nn.softmax_cross_entropy_with_logits
. Co oznaczają tutaj logi? Oznacza to po prostu, że wejście funkcji ma być wyjściem ostatniej warstwy neuronu, jak opisano powyżej._with_logits
Przyrostek jest zbędne, kłopotliwe i sensu . Funkcje powinny być nazywane bez względu na bardzo specyficzne konteksty, ponieważ są to po prostu operacje matematyczne, które można wykonać na wartościach pochodzących z wielu innych domen. W rzeczywistości TensorFlow ma inną podobną funkcję,sparse_softmax_cross_entropy
gdzie na szczęście zapomniało dodać_with_logits
przyrostek, tworząc niespójność i wprowadzając zamieszanie. Z drugiej strony PyTorch po prostu określa swoją funkcję bez tego rodzaju przyrostków.Odniesienie
Te slajdy wykładowe Logit / probitowe jest jednym z najlepszym źródłem do zrozumienia logit. Zaktualizowałem również artykuł w Wikipedii, podając niektóre z powyższych informacji.
źródło
Osobiste zrozumienie, w domenie TensorFlow, logity są wartościami, które należy wykorzystać jako dane wejściowe do softmax. Doszedłem do tego zrozumienia w oparciu o samouczek dotyczący tensorflow.
https://www.tensorflow.org/tutorials/layers
Chociaż prawdą jest, że logit jest funkcją w matematyce (szczególnie w statystyce), nie sądzę, że to ten sam „logit”, na który patrzysz. W książce Deep Learning autorstwa Iana Goodfellowa wspomniał:
W TensorFlow jest często postrzegany jako nazwa ostatniej warstwy. W rozdziale 10 książki Hands-on Machine Learning with Scikit-learn i TensorFLow autorstwa Aurélien Géron natknąłem się na ten akapit, który
logits
wyraźnie określał warstwę.Oznacza to, że chociaż używamy softmax jako funkcji aktywacji w ostatniej warstwie w naszym projekcie, dla ułatwienia obliczeń wyjmujemy
logits
osobno. Wynika to z faktu, że bardziej efektywne jest wspólne obliczaniesoftmax
icross-entropy
strata. Pamiętaj, żecross-entropy
jest to funkcja kosztu, nie używana w propagacji do przodu.źródło
Oto zwięzła odpowiedź dla przyszłych czytelników.
Tensorflow
„ylogit
jest określony jako wyjście neuronu bez stosowania funkcji aktywacji:x: wejście, w: waga, b: błąd. Otóż to.
Poniższe pytanie nie ma znaczenia dla tego pytania.
W przypadku wykładów historycznych przeczytaj inne odpowiedzi. Czapki z głów przed
Tensorflow
„kreatywną” mylącą konwencją nazewnictwa. WPyTorch
jest tylko jednoCrossEntropyLoss
i akceptuje wyjścia nieaktywowane. Zwoje, mnożenia macierzy i aktywacje są operacjami tego samego poziomu. Projekt jest znacznie bardziej modułowy i mniej skomplikowany. Jest to jeden z powodów, dlaczego przeszedłem odTensorflow
celuPyTorch
.źródło
( FOMO sapiens).
Jeśli zaznaczysz funkcję Logit matematyki, konwertuje ona rzeczywistą przestrzeń z
[0,1]
przedziału na nieskończoność[-inf, inf]
.Sigmoid i softmax zrobią dokładnie odwrotnie. Przekształcą
[-inf, inf]
rzeczywistą przestrzeń w[0, 1]
rzeczywistą przestrzeń.Dlatego w uczeniu maszynowym możemy używać logit przed funkcją sigmoid i softmax (ponieważ są one zgodne).
I dlatego „możemy nazwać” czymkolwiek w uczeniu maszynowym, które poprzedza sigmoid lub softmax, funkcję logit .
Oto wideo J. Hintona używające tego terminu.
PS. Nie polecam oglądać wideo, aby sprawdzić termin.
źródło
Są one w zasadzie najpełniejszym wyuczonym modelem, jaki można uzyskać z sieci, zanim została ona ograniczona do zastosowania tylko do liczby klas, którymi jesteśmy zainteresowani. Sprawdź, jak niektórzy badacze wykorzystują je do trenowania płytkiej sieci neuronowej w oparciu o głębokość sieć nauczyła się: https://arxiv.org/pdf/1312.6184.pdf
To trochę tak, jakby podczas szczegółowego uczenia się przedmiotu nauczyłeś się wielu drobnych punktów, ale potem, ucząc ucznia, spróbujesz skompresować go do najprostszego przypadku. Gdyby uczeń próbował teraz uczyć, byłoby to dość trudne, ale byłby w stanie opisać to na tyle dobrze, aby używać języka.
źródło
Zobacz tutaj: https://en.wikipedia.org/wiki/Logit
źródło
logit
ma inne znaczenie. Zobacz to , to , to .logity
Wektor surowych (nienormalizowanych) prognoz generowanych przez model klasyfikacyjny, który zwykle jest następnie przekazywany do funkcji normalizacyjnej. Jeśli model rozwiązuje problem klasyfikacji wielu klas, dzienniki zwykle stają się danymi wejściowymi do funkcji softmax. Funkcja softmax następnie generuje wektor (znormalizowanych) prawdopodobieństw z jedną wartością dla każdej możliwej klasy.
Ponadto, logity czasami odnoszą się do odwrotności elementowej funkcji sigmoidalnej. Aby uzyskać więcej informacji, zobacz tf.nn.sigmoid_cross_entropy_with_logits.
oficjalna dokumentacja tensorflow
źródło
Logity często są wartościami funkcji Z warstwy wyjściowej w Tensorflow.
źródło