Резюме. Во всех предыдущих статьях, учитывая некоторые особенности, такие как «размер дома», мы использовали Tensorflow (TF) для выполнения линейной регрессии для прогнозирования результата, например « цена дома », которая представляет собой числовое значение. Теперь мы рассмотрим логистическую регрессию, где, учитывая некоторые особенности ввода, мы будем использовать TF для классификации ввода, в частности, если дано входное изображение, мы собираемся классифицировать его как одну из цифр 0–9.

Это часть серии:

  • Часть 1: Линейная регрессия с Tensorflow для модели с одним признаком и одним исходом
  • Часть 2: обучение Tensorflow, проиллюстрированное схемами / кодом, и изучение вариантов обучения.
  • Часть 3: матрицы и многофункциональная линейная регрессия с Tensorflow
  • Часть 4 (эта статья): Логистическая регрессия с Tensorflow

Обзор логистической регрессии

Мы узнали, как использовать Tensorflow (TF) для выполнения линейной регрессии, чтобы предсказать результат скалярной стоимости, например, цен на жилье, с учетом набора характеристик, например размера дома.

Однако бывают случаи, когда мы хотим классифицировать вещи, а не предсказывать значение, например, учитывая изображение цифры, мы можем классифицировать ее как 0, 1, 2,…, 9, или учитывая песню, которую мы хотим классифицировать. это поп, рок, рэп и т. д. Каждая классификация в наборе [0, 1, 2,…, 9] или [поп, рок, рэп и т. д.] известна как класс , который в компьютерном мире мы представляем с помощью числа, например, pop = 0, rock = 1 и т. д. Для выполнения классификации мы можем использовать логистическую регрессию с использованием TF.

В этой статье мы будем использовать логистическую регрессию, чтобы классифицировать изображение цифры как принадлежащее к классам 0, 1, 2,… или, 9.

Детали логистической регрессии

Хорошая новость заключается в том, что многие концепции линейной регрессии по-прежнему применяются в логистической регрессии. Мы можем повторно использовать формулу y = W.x + b, но с некоторыми изменениями. Давайте посмотрим на эту формулу бок о бок для линейной и логистической регрессии:

Отличия:

  • Результат (y): для линейной регрессии это скалярное значение, например, 50 000 долл. США, 23,98 000 долл. США и т. Д. Для логистической регрессии это целое число, которое относится к классу, например, 0, 1, 2, .. 9 .
  • Функции (x): для линейной регрессии каждая функция представлена ​​как элемент в векторе-столбце. Для логистической регрессии, включающей двумерное изображение, это двумерный вектор, каждый элемент которого представляет пиксель изображения; каждый пиксель имеет значение 0–255, представляющее оттенки серого, где 0 = черный, 255 = белый, а для других значений - некоторый оттенок серого.
  • Функция стоимости (стоимость): для линейной регрессии это некоторая функция, вычисляющая агрегированную разницу между каждым прогнозом и его ожидаемым результатом. Для логистической регрессии это некоторая функция, вычисляющая агрегирование того, является ли каждый прогноз правильным или неправильным.

Сходство:

  • Обучение. Целью обучения как линейной, так и логистической регрессии является изучение значений весов (W) и смещений (b).
  • Результат: цель как линейной, так и логистической регрессии состоит в том, чтобы предсказать / классифицировать результат (y) с помощью изученных W и b

Согласование логистической и линейной регрессии

Чтобы логистическая регрессия работала с y = W.b + x, нам нужно внести некоторые изменения, чтобы согласовать указанные выше различия.

Преобразование признаков, x

Мы можем преобразовать функции двухмерного изображения в нашем примере логистической регрессии (при условии, что у него есть X строк, Y столбцов) в одномерное (как требуется в линейной регрессии), добавляя каждую строку пикселей один за другим в конец первый ряд пикселей, как показано ниже.

Преобразование прогнозируемого результата, y

Для логистической регрессии мы не можем оставить y (прогнозируемый результат) в качестве скаляра, поскольку прогноз может оказаться равным 2.3 или 11, что НЕ входит в возможные классы [0, 1,…, 9 ].

Чтобы преодолеть это, прогноз y должен быть преобразован в один вектор-столбец (показанный ниже как вектор-строку для экономии места), где каждый элемент представляет собой оценку того, что модель логистической регрессии считает вероятным определенным классом. . В приведенном ниже примере прогнозом является класс «1», поскольку он имеет наивысший балл.

Чтобы получить этот вектор оценок для данного изображения, каждый пиксель на нем будет вносить набор оценок (по одному для каждого класса), указывающий на вероятность того, что, по его мнению, изображение относится к определенному классу, на основе ТОЛЬКО на собственное значение шкалы серого. Сумма всех оценок от каждого пикселя для каждого класса становится вектором прогнозирования.

Преобразование функции затрат

Мы не можем использовать в качестве функции стоимости любую функцию, которая включает числовое расстояние между прогнозируемыми и фактическими результатами. Такая функция стоимости для изображения «1» будет наказывать предсказание «7» сильнее (7–1 = 6), чем предсказание «2» (2–1 = 1), хотя оба одинаково неправильный.

Функция стоимости, которую мы собираемся использовать, перекрестная энтропия (H), включает несколько шагов:

  1. Преобразуйте фактический вектор класса изображения (y ’) в горячий вектор, который представляет собой распределение вероятностей
  2. Преобразуйте вектор класса предсказания (y) в распределение вероятностей
  3. Используйте функцию кросс-энтропии для расчета стоимости, которая представляет собой разницу между двумя функциями распределения вероятностей

Шаг 1. Горячие векторы

Поскольку мы уже преобразовали прогноз (y) в вектор оценок, мы также должны преобразовать фактический класс изображения (y ’) в вектор; каждый элемент в векторе столбца представляет класс, каждый элемент которого имеет значение «0», за исключением элемента, соответствующего фактическому классу, равного «1». Это называется горячим вектором. Ниже мы показываем один горячий вектор для каждого класса от 0 до 9.

Предполагая, что фактическое изображение (y ') равно 1, имея, таким образом, горячий вектор [0, 1, 0, 0, 0, 0, 0, 0, 0, 0], и вектор прогноза (y) из [1.3, 33, 2, 1.2, 3.2, 0.5, 3, 9.2, 1], их построение для сравнения выглядит следующим образом:

Шаг 2. Распределение вероятностей с softmax

Чтобы математически сравнить сходство двух графиков, кросс-энтропия - отличный способ (и здесь - фантастическое, хотя и длинное объяснение для тех, кто не боится деталей).

Однако, чтобы использовать перекрестную энтропию, нам необходимо преобразовать значения вектора фактического результата (y ') и вектора результата прогнозирования (y) в «распределение вероятностей», и под «распределением вероятностей» мы подразумеваем:

  • Вероятность / оценка каждого класса должна быть от 0 до 1.
  • Сумма всех вероятностей / баллов для всех классов должна быть 1.

Фактический вектор результатов (y ’), являющийся горячими векторами, уже удовлетворяет этим ограничениям.

Для вектора результата прогнозирования (y) мы можем преобразовать его в распределение вероятностей с помощью softmax:

Это просто двухэтапный процесс (см. S1, S2 ниже), где каждый элемент в векторе оценки прогноза (y) редактируется exp и делится на сумма общей эксп.

Обратите внимание, что график softmax (y) по форме похож на график прогноза (y), но только с большими максимальными и меньшими минимальными значениями.

Шаг 3. Перекрестная энтропия

Теперь мы можем применить кросс-энтропию (H) между прогнозируемым распределением вероятности векторной оценки (y ') и фактическим распределением вероятности векторной оценки (y ).

Формула кросс-энтропии:

Чтобы быстро понять эту сложную формулу, мы разбиваем ее на 3 части (см. Ниже). Обратите внимание, что в качестве обозначения в этой статье мы используем y_i для обозначения «y с индексом i» в формуле H:

  • Синий: вектор фактического результата, y_i ’
  • Красный: -log распределения вероятностей вектора класса предсказания, (softmax (y_i)), объясненного ранее.
  • Зеленый: сумма умножения синего и красного компонентов для каждого класса изображений i, где i = 0, 1, 2,…, 9

Иллюстрации ниже должны упростить понимание.

Синий график - это просто горячий вектор фактического класса изображения (y ’), см. Раздел Горячий вектор:

Красный график получен в результате преобразований каждого элемента вектора прогнозирования, y, в softmax (y), в - log (softmax (y) :

Если вы хотите полностью понять, почему -log (softmax (y)) инвертирует softmax (y), второе преобразование, посмотрите видео или слайды .

Перекрестная энтропия (H), зеленая часть (см. Ниже) - это умножение синего и красного значений для каждого класса с последующим их суммированием, как показано:

Так как синий график является горячим вектором, он имеет только один элемент, равный 1, что соответствует правильному классу изображения, все другие умножения перекрестной энтропии (H) равны 0, а H упрощается до:

Cross Entropy (H) = -log(softmax(y_i))
Where:
- y_i: Predicted score/probability for correct image class

Собираем все вместе

С помощью трех предложенных преобразований мы теперь можем применить те же методы, которые мы использовали для линейной регрессии, для логистической регрессии. Приведенные ниже фрагменты кода показывают параллельное сравнение кода линейной регрессии из Части 3 (доступно здесь) и изменений, необходимых для работы кода для логистической регрессии.

  1. Преобразование объекта (x) в одномерный объект
  2. Преобразование прогнозируемого результата (y_) и фактического результата (y) в горячие векторы
  3. Преобразование функции стоимости из квадрата ошибки в перекрестную энтропию.

Изменения можно лучше всего описать в приведенной ниже шпаргалке:

Заключение

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

Мы покажем, как мы можем адаптировать линейную регрессию y = Wx + b для работы с логистической регрессией, просто преобразовав (1) вектор признаков, x, (2) вектор прогноза / результата. , год / год и (3) функция стоимости, H.

Вооружившись знаниями о горячих векторах, softmax и кросс-энтропии, вы теперь готовы приступить к так называемому руководству Google для новичков по ​​классификации изображений, которое является целью данной серии руководств.

Ресурсы