В следующей функции TensorFlow мы должны обеспечить активацию искусственных нейронов в последнем слое. Это я понимаю. Но я не понимаю, почему это называется логитс? Разве это не математическая функция?
loss_function = tf.nn.softmax_cross_entropy_with_logits(
logits = last_layer,
labels = target_output
)
Ответы:
Логит - это перегруженный термин, который может означать много разных вещей:
В математике , логит является функцией , которая отображает вероятность (
[0, 1]
) в R ((-inf, inf)
)Вероятность 0,5 соответствует логиту 0. Отрицательному логиту соответствуют вероятности менее 0,5, положительные> 0,5.
В ОД это может быть
Логиты также иногда относятся к поэлементной инверсии сигмовидной функции.
источник
softmax(logit) = exp(logit)/Z(logit)
тогдаlogit = h_NN(x)
? так логит это же как "оценка"?[1, 0.5, 0.5]
через нормализацию становиться[0.5, 0.25, 0.25]
а потом софт макс становится[0,]
если один горячий[1, 0, 0]
? или просто положить,[1, 0, 0]
потому что на выходе должен быть вектор?Просто добавив это пояснение, чтобы каждый, кто прокручивает эту страницу, по крайней мере, понял ее правильно, поскольку за многие проголосовали неправильные ответы.
Diansheng в ответ и JakeJ в ответ получить это право.
Новый ответ Написал Shital Shah является еще лучше и более полным ответом.
Да,
logit
как математическая функция в статистике, ноlogit
в контексте нейронных сетей используется другое. Статистикаlogit
даже не имеет здесь никакого смысла.Я нигде не мог найти формальное определение, но в
logit
основном это означает:Кроме того, из учебного пособия на официальном сайте tenorflow:
Если вы все еще в замешательстве, ситуация такова:
где
predicted_class_index_by_raw
иpredicted_class_index_by_prob
будет равен.Другое название
raw_predictions
в приведенном выше кодеlogit
.Что касается почемуlogit
... Я понятия не имею. Сожалею.[Изменить: см. Этот ответ для исторических мотивов этого термина.]
пустяки
Хотя, если вы хотите, вы можете применить статистические
logit
к ,probabilities
что выйти изsoftmax
функции.Если вероятность определенного класса равна
p
,то лог-шансы этого класса равны
L = logit(p)
.Кроме того, вероятность этого класса может быть восстановлена как
p = sigmoid(L)
, используяsigmoid
функцию.Хотя это не очень полезно для расчета лог-шансов.
источник
Логит это функция , которая отображает вероятности
[0, 1]
в[-inf, +inf]
.Softmax - это функция, которая сопоставляется
[-inf, +inf]
с[0, 1]
Sigmoid. Но Softmax также нормализует сумму значений (выходной вектор), чтобы быть 1.Tensorflow "with logit" : это означает, что вы применяете функцию softmax для логизации чисел для ее нормализации. Input_vector / logit не нормализован и может масштабироваться от [-inf, inf].
Эта нормализация используется для задач мультиклассовой классификации. А для задач многолинейной классификации используется нормализация сигмовидной кишки, т.е.
tf.nn.sigmoid_cross_entropy_with_logits
источник
Logit
функцию (статистику) иlogits
слой (тензор потока)Резюме
В контексте глубокого изучения слой logits означает слой, который подключается к softmax (или другой такой нормализации). Выходными данными softmax являются вероятности для задачи классификации, а его входом является слой logits. Слой logits обычно выдает значения от -infinity до + infinity, а слой softmax преобразует его в значения от 0 до 1.
Исторический контекст
Откуда этот термин? В 1930–40-х годах несколько человек пытались приспособить линейную регрессию к проблеме прогнозирования вероятностей. Однако линейная регрессия производит выходные данные от -infinity до + бесконечности, в то время как для вероятностей наш желаемый результат - от 0 до 1. Один из способов сделать это - каким-то образом сопоставить вероятности от 0 до 1 до -infinity и + бесконечность, а затем использовать линейную регрессию как обычно. Одним из таких отображений является кумулятивное нормальное распределение, которое было использовано Честером Итнером Блиссом в 1934 году, и он назвал эту модель «пробит», сокращенно «единица вероятности». Однако эта функция является вычислительно дорогой, в то время как отсутствуют некоторые из желательных свойств для классификации нескольких классов. В 1944 году Джозеф Берксон использовал функцию
log(p/(1-p))
сделать это отображение и назвал его logit, сокращение от «логистическая единица». Отсюда и термин «логистическая регрессия».Путаница
К сожалению, термин логитс используется в глубоком обучении. С чисто математической точки зрения логит - это функция, которая выполняет приведенное выше отображение. При глубоком изучении люди стали называть слой «слой логитов», который используется для функции логита. Затем люди начали называть выходные значения этого слоя «logit», создавая путаницу с logit функцией .
Код ТензорФлоу
К сожалению, код TensorFlow еще больше усугубляет путаницу с именами вроде
tf.nn.softmax_cross_entropy_with_logits
. Что логиты здесь означают? Это просто означает, что вход функции должен быть выходом последнего слоя нейрона, как описано выше._with_logits
Суффикс излишний, путая и бессмысленно . Функции должны быть названы безотносительно к таким очень специфическим контекстам, потому что они являются просто математическими операциями, которые могут выполняться над значениями, полученными из многих других областей. На самом деле TensorFlow имеет еще одну аналогичную функцию,sparse_softmax_cross_entropy
где, к счастью, они забыли добавить_with_logits
суффикс, создавая несогласованность и внося путаницу. PyTorch, с другой стороны, просто называет свою функцию без таких суффиксов.Ссылка
В лекции слайды логит / пробит является одним из лучших ресурсов , чтобы понять логит. Я также обновил статью Википедии с некоторыми из вышеупомянутой информации.
источник
Личное понимание, в домене TensorFlow, logits - это значения, которые будут использоваться в качестве входных данных для softmax. Я пришел к этому пониманию на основе этого учебника по тензорному потоку.
https://www.tensorflow.org/tutorials/layers
Хотя верно, что logit - это функция в математике (особенно в статистике), я не думаю, что это тот самый «logit», на который вы смотрите. В книге « Глубокое изучение » Иана Гудфеллоу он упомянул:
В TensorFlow его часто называют именем последнего слоя. В главе 10 книги « Практическое машинное обучение с Scikit-learn и TensorFLow » Аурелиана Жерона я натолкнулся на этот параграф, в котором
logits
четко обозначен слой.То есть, хотя мы используем softmax в качестве функции активации на последнем уровне в нашем проекте, для простоты вычислений мы вынимаем
logits
отдельно. Это потому, что это более эффективно для расчетаsoftmax
иcross-entropy
потери вместе. Помните, чтоcross-entropy
это функция стоимости, не используемая для прямого распространения.источник
Вот краткий ответ для будущих читателей.
Tensorflow
'slogit
определяется как выход нейрона без применения функции активации:х: вход, ш: вес, б: смещение. Вот и все.
Следующее не имеет отношения к этому вопросу.
Для исторических лекций читайте другие ответы. Снимаю шляпу перед
Tensorflow
«творчески» запутанным соглашением об именах. ВPyTorch
, есть только один,CrossEntropyLoss
и он принимает не активированные выходы. Свертки, умножения матриц и активации являются операциями одного уровня. Дизайн гораздо более модульный и менее запутанный. Это одна из причин , почему я перешел отTensorflow
кPyTorch
.источник
( FOMO sapiens).
Если вы проверите математическую функцию Logit, она преобразует реальное пространство из
[0,1]
интервала в бесконечность[-inf, inf]
.Sigmoid и softmax сделают совершенно противоположную вещь. Они преобразуют
[-inf, inf]
реальное пространство в[0, 1]
реальное пространство.Вот почему в машинном обучении мы можем использовать logit перед функциями sigmoid и softmax (поскольку они совпадают).
И именно поэтому «мы можем назвать» все в машинном обучении, которое идет перед сигмоидальной или softmax функцией logit .
Вот видео Дж. Хинтона, использующее этот термин.
PS. Я не рекомендую смотреть видео, чтобы проверить срок.
источник
По сути, это самая полная изученная модель, которую вы можете получить из сети, прежде чем она будет сведена к применению только к числу интересующих нас классов. Посмотрите, как некоторые исследователи используют их для обучения мелкой нейронной сети, основываясь на том, что глубокая сеть узнала: https://arxiv.org/pdf/1312.6184.pdf
Это похоже на то, как при детальном изучении предмета вы выучите очень много незначительных моментов, но затем, обучая студента, вы попытаетесь сжать его до простейшего случая. Если бы сейчас ученик пытался преподавать, это было бы довольно сложно, но он мог бы описать это достаточно хорошо, чтобы использовать язык.
источник
Смотрите здесь: https://en.wikipedia.org/wiki/Logit
источник
logit
имеет другое значение. Видишь это , это , это .логит-анализ
Вектор необработанных (ненормализованных) предсказаний, которые генерирует модель классификации, которая обычно затем передается в функцию нормализации. Если модель решает проблему классификации нескольких классов, логиты обычно становятся входными данными для функции softmax. Функция softmax затем генерирует вектор (нормализованных) вероятностей с одним значением для каждого возможного класса.
Кроме того, логиты иногда относятся к поэлементной инверсии сигмовидной функции. Для получения дополнительной информации см. Tf.nn.sigmoid_cross_entropy_with_logits.
официальная тензорная документация
источник
Логиты часто являются значениями функции Z выходного слоя в Tensorflow.
источник