Рубрики
Без рубрики

Изучение различий между Softmax и Sigmoid для классификации изображений

Неделя двух – 100 дней кодового вызова. Теги с Python, Ai, глубоким обучением, наукой данных.

Счастливая вторая неделя # 100daysofcode Challenge и счастливого благодарения, проверьте неделю, где я обсуждал разборные строки CSV в отдельные текстовые файлы.

В течение этой прошлой недели я продолжил исследования и развитие на проекте Анализируя обезлесение и урбанизацию с использованием Intel AI Technologies проект. В этом проекте я работал с оптимизированным Intel Tensorflow для классификации изображений спутниковых изображений на NUC Intel. В этой второй неделе я сосредоточился на получении лучшего понимания нейронных сетей и как они могут использовать Softmax или Sigmoid для классификации изображений на основе желаемого выхода.

Первое, что я нашел интересным для исследований, были различия между многоклассовыми и многолетними классификационными моделями. При обращении к многоклассной модели это означает, что вывод назначается только один ярлык от многих, которые существуют. Поэтому при рассмотрении изображений овощей вы можете иметь сквош, огурец и морковные этикетки, но изображение моркови получат только один ярлык в качестве вывода, и не может быть несколько овощных овощей одновременно. Напротив, классификация Multi-Label может назначить несколько выходов к изображению. Это можно легко увидеть в тексте, который может говорить о нескольких темах одновременно. Как только я понял разницу между многоклассовым или нескольким ярлыком, я начал смотреть на то, как можно использовать Softmax и Sigmoid для каждого случая и почему.

Softmax.

Благодаря моим исследованию стало очевидно, что слой SoftMax был хорошим для классификации нескольких классов, когда сигмоид был хорошим для многоклыслей. Слой Softmax из нейронной сети – обобщенная логистическая функция, которая позволяет многоуровневыми. Softmax позволяет нам обрабатывать, где k – количество классов. Softmax используется для расчета распределения вероятности определенной этикетки над k различными метками. Softmax возвращает диапазон от 0 до 1 для его выходов со всеми вероятностями, равными 1. Для многоуровневых, это вернет вероятность для каждой этикетки с целевой этикеткой, имеющей наибольшую вероятность. Это идеально подходит при прогнозировании одной этикетки над набором этикеток. Такое можно представить в Tensorflow как таковой:

# tf.nn.softmax
final_tensor = tf.nn.softmax(logits, name=final_tensor_name)

Это устанавливает последний тензор в сценарии реклассирования изображений, вычисляя активации SoftMax. С этим очередным аспектом нейронной сети, которая может быть обновлена с SoftMax, является функцией креста энтропии. Эта функция, как видно ниже, позволяет измерять ошибку вероятности в дискретных задачах классификации, которые являются взаимоисключающими.

# tf.nn.softmax_cross_entropy_with_logits
cross_entropy = tf.nn.softmax_cross_entropy_with_logits(logits,ground_truth_input)

Это означает, что изображение находится в пределах одной задачи, то есть одно изображение имеет один фрукт, который можно выбрать из набора фруктов, но изображение не может быть более чем одним фруктом.

Сигмоидная функция

Напротив, сигмовидная функция может быть использована в многоэлементной классификации. Сигмовидная функция – это другая логистическая функция, которая имеет характерную «S-Curve» или сглаженную версию шага функции. Сигмоиды часто вводятся в нейронные сети для обеспечения нелинейности к модели и обычно используются для кластеризации, классификации рисунка и приближения функций. В отличие от Softmax, который дает распределение вероятности вокруг K классов K, функции SIGMoid позволяют независимо от вероятностей. При взгляде на функцию Sigmoid в качестве нейрона в нейронной сети входные значения сигмоидного нейрона могут быть любым значением от 0 до 1, а выходная функция является сигмовидной функцией. Такое можно представить в Tensorflow как таковой:

# tf.nn.sigmoid
final_tensor = tf.nn.sigmoid(logits, name=final_tensor_name)

Это устанавливает последний тензор в сценарии рекламирования изображения, вычисляя системные активации. С этим очередным аспектом нейронной сети, которая может быть обновлена SIGMoid, является функцией креста энтропии. Эта функция, как показана ниже, измеряет ошибку вероятности для дискретных задач классификации.

# tf.nn.sigmoid_cross_entropy_with_logits
cross_entropy = tf.nn.sigmoid_cross_entropy_with_logits(logits,ground_truth_input)

Эти задачи классификации не являются взаимоисключающими, и каждый класс не зависит. Следовательно, эта функция позволяет классифицировать много ярлыки, где изображение может содержать несколько фруктов, которые необходимо обнаружить.

Какие интересные проблемы вы столкнулись на этой неделе?

Использованная литература:

Обложка изображения, полученное из Альфа-кодеры Intel Оптимизирован Tensorflow Tensorboard Tensorflow Guide Intel devmesh Академия Intel Ai Функция Softmax Сигмовидная функция Введение в статистические методы Многоклассник против Multi-label Tensorflow Softmax Tensorflow Sigmoid

Оригинал: “https://dev.to/rosejcday/learning-the-differences-between-softmax-and-sigmoid-for-image-classification–59c”