Идея преобразования точки из скрытого пространства обратно в исходную область очень распространена в генеративном моделировании, поскольку дает возможность манипулировать векторами в скрытом пространстве и тем самым изменять высокоуровневые характеристики изображений в исходной области (
Автокодировщики также можно использовать для очистки искаженных изображений от шума, потому что в процессе обучения кодировщик узнает, что бессмысленно пытаться фиксировать случайный шум в скрытом пространстве. В
Автокодировщики
Этот рассказ описывает аналог автокодировщика — двухкомпонентной нейронной сети, включающей (рис. 3.4):
• сеть кодировщика, которая сжимает входные многомерные данные в вектор меньшего размера;
• сеть декодировщика, которая разворачивает данный вектор представления обратно в исходные данные.
В процессе обучения сеть определяет веса для кодировщика и декодировщика
Свертка осуществляется путем попиксельного умножения фильтра на фрагмент изображения и последующего суммирования результатов. Чем ближе фрагмент изображения соответствует фильтру, тем больше результат, и наоборот, чем меньше фрагмент соответствует фильтру, тем меньше результат.
Чем больше размер пакета, тем стабильнее результат вычисления градиента, но каждый шаг обучения выполняется медленнее. Если для вычисления градиента на каждом шаге обучения использовать весь набор данных, то потребуется слишком много времени и вычислительных ресурсов, поэтому размер пакета обычно выбирается в диапазоне от 32 до 256.
Исходные данные — массив с изображениями.
Метки классов в формате прямого кодирования.
Параметр batch_size определяет, сколько наблюдений будет передаваться в сеть на каждом шаге обучения.
Параметр epochs определяет, сколько раз сеть будет просматривать полный комплект обучающих данных.
Если shuffle = True, то пакеты обучающих данных будут перемешиваться случайным образом перед каждым шагом обучения.
Оптимизатор — это алгоритм, используемый для обновления весов в нейронной сети на основе градиента функции потерь. Одним из наиболее часто используемых и стабильных оптимизаторов является Adam
17
Наконец, если нейронная сеть предназначена для решения задачи бинарной классификации с одним выходным узлом или классификации с несколькими метками, когда каждое наблюдение может одновременно принадлежать нескольким классам, то следует использовать бинарную перекрестную энтропию:
Если нейронная сеть предназначена для решения задачи классификации, где каждое наблюдение может относиться только к одному классу, то правильнее будет выбрать функцию потерь, известную как многозначная перекрестная энтропия. Она определяется
Если ваша нейронная сеть предназначена для решения задачи регрессии (то есть выходные данные представляют значения из непрерывной области), то можно использовать функцию потери — среднеквадратичную ошибку. Это среднее значение суммы квадратов разностей между истинным значением yi и прогнозируемым pi в каждом выходном узле, где среднее берется по всем n выходным узлам: