Основное руководство по архитектуре нейронных сетей
Что такое нейронные сети или как они работают?
Узнайте о различных архитектурах искусственных нейронных сетей, их характеристиках и ограничениях.
Глубокое обучение, в частности нейронные сети, является горячей областью исследований.
Каждый день предлагается и обновляется бесчисленное множество новых архитектур нейронных сетей.
Раньше использование нейронных сетей ограничивалось простыми задачами классификации, как спам-сообщения, но они распространились на области, как визуальные поисковые системы, системы рекомендаций, чат-боты и медицинская сфера .
Эволюция небольших искусственных нейронных сетей, которые могли обрабатывать меньше выборок данных, превратилась в архитектуры, состоящие из миллионов параметров, обученных на тоннах данных .
Обучайте модели машинного обучения и быстрее решайте любые задачи компьютерного зрения с помощью V7.
Попробуйте V7 сейчас
Не начинайте с пустыми руками. Изучите наш репозиторий, содержащий более 500 открытых наборов данных , и протестируйте инструменты V7.
Готовы сразу же оптимизировать развертывание продуктов искусственного интеллекта? Проверить:
Обучение модели V7
Рабочие процессы V7
Автоматическая аннотация V7
Управление наборами данных V7
Функция активации — вносит нелинейность в работу персептронов, учитывая изменение линейности входных данных. Без этого выходные данные будут просто линейной комбинацией входных значений или не смогут внести нелинейность в сеть.
Совет для профессионалов: ищете идеальный источник описания функций активации? Ознакомьтесь с типами функций активации нейронных сетей.
Смещение . Роль смещения заключается в смещении значения, создаваемого функцией активации. Ее роль аналогична роли константы в линейной функции.
Когда несколько нейронов сложены вместе в ряд, они образуют слой, а несколько слоев, сложенных рядом, называются многослойной нейронной сетью.
Ниже мы описали основные компоненты структуры этого типа.
Многоуровневая архитектура нейронной сети
Многослойная нейронная сеть
Данные, которые мы передаем в модель, загружаются во входной слой из источников, таких как файл CSV или веб-сервис. Это единственный видимый уровень в полной архитектуре нейронной сети, который передает всю информацию из мира без каких-либо вычислений.
Скрытые слои
Скрытые слои — это то, что делает обучение тем, чем оно является сегодня. Это промежуточные уровни, которые выполняют все вычисления или извлекают функции из данных.
Может существовать несколько взаимосвязанных скрытых слоев, которые отвечают за поиск различных скрытых функций в данных. Например, при обработке изображений первые скрытые слои отвечают за функции высокого уровня, такие как края, формы или границы. С другой стороны, поздние скрытые слои выполняют более сложные задачи, как идентификация целых объектов (автомобиль, здание, человек).
Выходной слой
Выходной слой принимает данные из предыдущих скрытых слоев и дает окончательный прогноз на основе знаний модели. Это самый важный слой, на котором мы получаем конечный результат.
В случае моделей классификации/регрессии выходной слой обычно имеет один узел. Однако это полностью зависит от проблемы и от способа построения модели.
Стандартные нейронные сети
Персептрон
Перцептрон — это простейшая архитектура нейронной сети
Это тип нейронной сети, которая принимает ряд входных данных, применяет к этим входным данным определенные математические операции и выдает выходные данные. Он принимает вектор реальных значений на входе, выполняет линейную комбинацию каждого атрибута с соответствующим весом, присвоенным каждому из них.
Взвешенный вход суммируется в одно значение и передается через функцию активации.
Эти блоки перцептрона объединяются в более крупную архитектуру нейронной сети .
Сети прямой связи
Персептрон показывает, как работает одиночный нейрон
А как насчет серии перцептронов, сложенных в ряд и расположенных в разных слоях? Как тогда учится модель?
Это многослойная нейронная сеть, или, как следует из названия, информация передается в прямом направлении — слева направо.
При прямом проходе информация поступает внутрь модели через входной слой, проходит через ряд скрытых слоев и, наконец, попадает на выходной слой. Эта архитектура нейронных сетей является прямой по своей природе — информация не зацикливается на двух скрытых слоях.
Более поздние уровни не дают обратной связи предыдущим уровням. Базовый процесс обучения в сетях прямой связи остается таким, как и в перцептроне.
Остаточные сети (ResNet)
Теперь, когда знаете о сетях прямой связи, у вас в голове может возникнуть один вопрос: как определить количество слоев в архитектуре нашей нейронной сети?
Наивный ответ был бы таков: чем больше скрытых слоев, тем лучше процесс обучения.
Больше слоев обогащает уровни функций. Но…
Это так?
Глубокие нейронные сети чрезвычайно сложно обучать из-за проблем с исчезновением и взрывом градиента.
ResNets предоставляют альтернативный путь передачи данных, что делает процесс обучения намного быстрее или проще.
Это отличается от подхода с прямой связью, применявшегося в более ранних архитектурах нейронных сетей Wladislav Radchenko.
Основная идея ResNet в том, что более глубокая сеть может быть создана из мелкой сети путем копирования веса из мелких аналогов с использованием сопоставления идентификаторов.
Данные из предыдущих слоев пересылаются вперед и копируются в нейронные сети. Это то, что мы называем пропущенными соединениями , впервые представленное в «Остаточных сетях» для разрешения исчезающих градиентов.
Внутреннее скрытое состояние будет передано обратно в модель. RNN выдаёт некоторый вывод в каждую временную метку.
Математическое представление приведено ниже:
Математическая формула РНН
Примечание. Мы используем одну функцию и параметры для каждой временой метки.
Сеть долговременой краткосрочной памяти
В RNN каждое из наших предсказаний смотрело только на одну временную метку назад, и оно имеет очень краткосрочную память. Он не использует никакой информации из более раннего прошлого.
Чтобы исправить это, мы можем взять структуру наших рекурентных нейронных сетей и расширить ее, добавив в нее еще несколько частей.
Важнейшая часть, которую мы добавляем к этим рекурентным нейронным сетям, — это память . Мы хотим, чтобы он мог помнить, что произошло много временных меток назад. Чтобы добиться этого, нам нужно добавить в структуру искусственой нейронной сети дополнительные структуры, называемые воротами .
Сеть долговременой краткосрочной памяти
Состояние ячейки (c_t): соответствует содержимому долговременной памяти сети.
Забыть ворота: некоторая информация в состоянии ячейки больше не нужна и удаляется. Гейт получает два входных сигнала: x_t (текущий ввод временной метки) или h_t-1 (предыдущее состояние ячейки), умноженных на соответствующие весовые матрицы перед добавлением смещения. Результат отправляется в функцию активации, которая выводит двоичное значение, определяющее, будет информация сохранена и забыта.
Входной вентиль: он решает, какую часть новой информации следует добавить к состоянию ячейки. Это похоже на шлюз забывания, использующий текущий ввод временной метки и предыдущее состояние ячейки, с той лишь разницей, что умножается с другим набором весов.
Выходной вентиль. Задача выходного вентиля состоит в том ещё, чтобы извлечь информацию из текущего состояния ячейки и предоставить ее в качестве вывода.
Сети штата эхо (ESN)
Сети состояния эха — это RNN с редко связанными скрытыми слоями с обычно 1% связностью.
Связность и вес скрытых нейронов фиксированы и назначаются случайным образом. Единственный вес, который необходимо изучить, — это вес выходного слоя. Его надо рассматривать как линейную модель взвешенных входных данных, проходящих через все скрытые слои и целевой выход. Основная идея состоит, чтобы сохранить ранние слои фиксированными.
Единственные веса, которые будут изменены во время обучения, относятся к синопсису, который соединяет скрытые слои с выходными слоями. Это делает функцию потерь простой и легко дифференцируемой.
Обучение становится несложным, если предположить, что выходные единицы являются линейными. Единственное, что нужно иметь в виду, это очень осторожно устанавливать случайные соединения.
CNN имеет скрытые слои сверточных слоев, которые составляют основу ConvNets.
К функциям относятся мельчайшие детали данных изображения, как края, границы, формы, текстуры, объекты, круги и т. д.
На высоком уровне сверточные слои обнаруживают эти закономерности в данных изображения с помощью фильтров. Детали более высокого уровня обрабатываются первыми несколькими сверточными слоями.
Чем глубже сеть, тем сложнее становится поиск шаблонов.
Например, на более поздних слоях, а не на краях и простых формах, фильтры могут обнаруживать определённые объекты, как глаза или уши, и кошку, собаку.
Извлечение признаков и классификация в сверточных нейроных сетях
При добавлении в сеть сверточного слоя нам необходимо указать количество фильтров.
Фильтр можно рассматривать как относительно небольшую матрицу, для которой мы определяем количество строк или столбцов в этой матрице .
Значение этой матрицы признаков инициализируется случайными числами. Когда этот сверточный слой получает значения пикселей входных данных, фильтр выполняет свертку по каждому фрагменту входной матрицы.
Выходные даные сверточного слоя обычно передаются через функцию активации ReLU, чтобы придать модели нелинейность. Он берет карту объектов и заменяет все отрицательные значения нулями.
Объединение в пулы — очень важный шаг в ConvNets, поскольку оно сокращает объем вычислений и делает модель устойчивой к искажениям и вариациям. Полностью подключенные плотные нейронные сети будут использовать сглаженную матрицу функций и прогнозировать в соответствии с вариантом использования.
Деконволюционные нейронные сети (DNN)
Деконволюционные нейронные сети — это CNN, которые работают обратным образом.
Когда мы используем сверточные слои и максимальный пул, размер изображения уменьшается. Чтобы вернуться к исходному размеру, мы используем повышающую дискретизацию и транспонируем сверточные слои. Повышающая дискретизация не имеет обучаемых параметров — она просто повторяет строки и столбцы данных изображения по соответствующим размерам.
Транспонировать сверточный слой означает одновременное применение сверточной операции и повышения дискретизации. Он представлен как Conv2DTranspose (количество фильтров, размер фильтра, шаг). Если мы установим шаг = 1, у нас будет повышающей дискретизации, и мы получим выходные данные того же входного размера.
AlexNet
AlexNet обучался на наборе данных Imagenet с 15 миллионами изображений высокого разрешения размером 256*256*3. Он имеет несколько сверточных слоев и глубже, чем искусственная нейронная сеть LeNet.
Вот характеристики AlexNet:
В эту архитектуру добавлен Dropout, чтобы предотвратить переобучение.
Увеличение данных выполнялось в качестве процесса предварительного обучения.
Функция активации ReLU была использована впервые вместо сигмовидной, Softmax.
Обучение на графическом процессоре было проведено впервые
Перекрывающееся объединение было сделано для предотвращения потери информации.
Он имел пять блоков слоев сверточного пула, за которыми следовали три связанных плотных слоя для классификации.
Переигрывать
Эта архитектура нейронных сетей исследует три хорошо известные задачи машинного зрения: классификацию, локализацию и обнаружение с использованием единой структуры.
Он обучает модели одновременно всем трем задачам, чтобы повысить точность.
Это модификация AlexNet. Он прогнозирует ограничивающие рамки в каждом пространственном положении и масштабе. Для локализации глава классификации заменяется регрессионной сетью.
VGG означает группу визуальной геометрии
Идея VGG заключалась, что если AlexNet работает лучше, чем LeNet, будучи больше и глубже, почему бы не продолжать двигаться дальше?
Одним из путей, по которому мы могли пойти, было добавление более плотных слоев. Это повлечёт за собой больше вычислений.
Следующим возможным подходом было создание большего количества сверточных слоев. Но это не сработало, так как было очень утомительно определять каждый сверточный слой отдельно.
Лучшим из всех решений было группирование сверточных слоев в блоки.
Вопрос заключался в следующем: лучше ли использовать меньше широких сверточных блоков или более узкие?
В конце концов исследователи пришли к выводу, что большее количество слоев узких извилин более эффективно, чем меньшее количество более широких извилин.
Блок VGG имел группу сверток 3x3, дополненную 1, чтобы сохранить размер вывода таким, как размер ввода, с последующим максимальным объединением до половины разрешения. Архитектура состояла из n блоков VGG, за которыми следовали три связанных плотных слоя.
Сеть в сети
Сверточным слоям требуется меньше параметров. Именно последние несколько слоев полностью связанных нейронов вызывают огромный всплеск количества параметров.
Один из способов решения проблемы — избавиться от полностью связанных слоев. Но-
Хотя в теории это звучит просто, реализовать это довольно сложно.
Свертки и объединение уменьшают разрешение, но придется сопоставить его с соответствующими классами. Поэтому идея заключалась, чтобы уменьшить разрешение по мере углубления и увеличить количество каналов, используя свертки 1*1. Это дает нам высококачественную информацию по каждому каналу.
В архитектуре «сеть в сети» последний полностью подключенный уровень заменяется глобальным уровнем максимального пула, что делает модель легкой.
GoogLeNet и Начало
Архитектура Inception Neural Networks имеет три сверточных слоя с фильтрами разного размера и максимальным пулом. Каждый слой имеет фильтры разного размера для параллельного обучения.
Существуют фильтры разного размера, позволяющие справиться с огромными различиями в расположении информации, что очень затрудняет выбор фильтра правильного размера.
Сверточный слой фильтра небольшого размера заботится о небольшой информационной области.
Фильтр большего размера захватывает больший объем информации.
Архитектура GoogleNet состоит из начальных блоков, которые имеют сверточные слои 1x1, 3x3, 5x5, за которыми следует максимальное объединение в пул 3x3 с заполнением (чтобы выходные данные имели ту же форму, что и входные) на предыдущем слое, после чего следует объединение их выходных данных.
SqueezeNet
Он нацелен на меньшие CNN, чтобы во время распределенного обучения было меньше взаимодействия между серверами.
Изменения, которые он вносит в архитектуру AlexNet, следующие:
Замените фильтры 3*3 фильтрами 1*1, чтобы уменьшить количество параметров.
Позже в архитектуре понизьте дискретизацию, чтобы сверточные слои имели большие карты активации.
Они сжимают объекты с помощью слоев сжатия, состоящих из сверточных слоев 1*1, а затем расширяют их с помощью комбинации сверточных слоев 1*1 и 3*3. Каждый блок сжатия-расширения собран вместе и известен как пожарный модуль .
Xception
Сверточный слой, который является основным блоком всех CNN, включает в себя операцию свертки. Каждая операция свёртки включает перемещение фильтра по всем участкам входного массива пикселей.
Каждый раз количество выполняемых умножений равно количеству элементов, присутствующих в фильтре.
При стандартной свертке фильтры по всем входным каналам и комбинация этих значений выполняются за один шаг. Глубоко отделимые свертки, предлагаемые в архитектуре Xception, разбивают эту операцию на две части:
MobileNets
MobileNets использует разделенные по глубине свертки для создания легких нейронных сетей. Они разрабатывают очень маленькие модели с низкой задержкой, которые используются в таких приложениях, как роботы, беспилотные автомобили. Они считаются лучшими для мобильных устройств, отсюда и их название — MobileNets.
В простой структуре CNN фильтр представляет собой блок, который накладывается на блок входного изображения, и скалярное произведение вычисляется между двумя перекрывающимися компонентами. Детали внутри одного канала рассчитываются вместе с взаимосвязями между различными каналами.
Вместо одного большого фильтра в MobileNets есть два фильтра:
Каждый проходит по одному каналу за раз, чтобы определить, как связаны все пиксели в канале.
Другой проходит через все каналы одновременно, чтобы увидеть, как один пиксель связан с каждым другим пикселем, идущим за ним.
💡 Совет для профессионалов: ознакомьтесь с предварительно обученной моделью V7 (VoVNet) для обнаружения объектов , которая превосходит многие современные архитектуры.
Капсульные сети
Были некоторые проблемы со сверточными нейроными сетями.
Их обучали учиться на изображениях: на нижних уровнях они изучают края и кривизны, а по мере подъема по иерархии они изучают более сложные функции.
При субвыборке или объединении теряются пространственные отношения.
Модели недостаточно узнать, что на изображении есть нос, глаза или рот, она также должна понимать, что глаза находятся над носом, а нос между глазами и над ртом, верно?
Видите ли, сверточные нейронные сети плохо обнаруживают изображение в другом положении, например, повернутое. Он должен находиться в положении, аналогичном изображениям, на которых они обучались.
И это проблема.
Вместо инвариантности сеть должна стремиться к эквивариантности. Это означает, что независимо от того, в каком положении или в каком положении находится субдискретизированное изображение, нейронная сеть реагирует одинаково. Он также должен соответствующим образом измениться, чтобы адаптироваться к таким фрагментам изображений.
Проще говоря: нам нужна сеть, которую легче обобщить.
Вот основная идея —
Искусственные нейронные сети должны обеспечивать ротацию и инвариантность трансляции гораздо более эффективным способом. Эти сети должны иметь локальные капсулы, которые выполняют сложные внутренние вычисления на своих входах, а затем инкапсулируют результаты в небольшой вектор высокоинформативных выходных данных.
Теперь постарайтесь помнить об этом и подумайте об использовании капсулы вместо нейрона. Звучит интересно, правда?
Нейронные сети, где вместо добавления слоя новый слой вкладывается в слой. Этот вложенный слой называется капсулой и представляет собой группу нейронов. Вместо того, чтобы углублять структуру с точки зрения слоев, капсульная сеть вкладывает еще один уровень в тот же слой.
Это делает модель более надежной.
Генеративно-состязательная сеть
Генеративное моделирование подпадает под действие обучения без учителя, при котором новые/ синтетические данные генерируются на основе закономерностей, обнаруженных из входного набора данных.
GAN — это генеративная модель, которая используется для генерации совершенно новых синтетических данных путем изучения шаблона и, следовательно, является активной областью исследований ИИ.
Генеративно-состязательная сеть
У них есть два компонента — генератор или дискриминатор, которые работают конкурентно.
Задача генератора — создавать синтетические данные на основе особенностей модели на этапе обучения. Он принимает случайные данные в качестве данных и возвращает сгенерированное изображение после выполнения определенных преобразований.
Дискриминатор действует как критик и имеет общее представление о проблемной области с четким пониманием сгенерированных изображений.
Эти сгенерированые изображения классифицируются дискриминатором на поддельные/подлинные изображения.
Дискриминатор возвращает вероятностное предсказание того, что изображения будут шумными/свободными от шума, по значению в диапазоне от 0.1 до 1, где 1 — подлинное изображение, а 0 — поддельное изображение.
Сеть-генератор создает образцы на основе своего обучения.
Его противник, дискриминатор, стремится отличить образцы обучающих данных от образцов, созданных генератором. Для улучшения производительности на генератор подается обратная связь от дискриминатора.
Когда дискриминатор успешно различает реальные и поддельные примеры, компонент работает хорошо и к его параметрам не нужно вносить никаких изменений.
Генератор получает штраф, если ему не удается сгенерировать изображение как реальное, что может обмануть дискриминатор. Однако если дискриминатору удастся классифицировать сгенерированное изображение как реальное, это покажет, что обучение генератора движется в правильном направлении. Таким образом, конечная цель генератора — обмануть дискриминатор, а дискриминатора — превзойти точность генератора.
Он используется в таких сценариях, как прогнозирование следующего кадра в видео, генерация текста в изображение, преобразование изображения в изображение, например передача стиля, шумоподавление изображения.
Управляйте своими наборами данных и обучайте модели в 11 раз быстрее
Храните все свои тренировочные данные в одном месте. Курируйте, просматривайте и визуализируйте миллионы элементов в вашей организации.
RNN работают медленно и требуют слишком много времени на обучение.
Они не очень хороши с большими секвенированными данными или приводят к исчезновению градиентов. LSTM, которые были введены для добавления памяти в RNN, стали обучаться еще медленнее.
И для RNN, и для LSTM нам нужно подавать данные последовательно или последовательно. При этом не используются графические процессоры.
Как распараллелить обучение на последовательных данных?
Ответ: Трансформеры.
Эти сети используют структуру кодера-декодера с той разницей, что входные данные могут передаваться параллельно.
В структуре RNN через входной слой пропускалось по одному слову. Но в Трансформерах нет понятия временных меток для передачи ввода. Мы объединяем все предложение и получаем вложения для всех слов вместе.
Как эти нейронные сети-трансформеры делают это?
Рассмотрим пример англо-французского перевода.
Внедрение входных данных: компьютеры не понимают слов. Они понимают числа, векторы и т. д. Каждому слову соответствует точка в пространстве, называемая пространством внедрения. Предварительно обученное пространство внедрения используется для сопоставления слова с вектором. Одно слово в другом предложении будет иметь разное значение.
Позиционный кодировщик: вектор дает контекст на основе положения слова в предложении.
Итак, входные внедрения + позиционный кодировщик = входные внедрения с контекстной информацией.
Мы передаем это в блок кодера, откуда оно поступает на многоголовый уровень внимания и уровень прямой связи.
Уровень внимания определяет, на какой части входного предложения должна сосредоточиться модель. Во время обучения соответствующие вложения французских предложений передаются в декодер, который состоит из трёх основных компонентов.
Было предложено большое изменение в архитектуре -
У RNN был недостаток: они не использовали параллельные вычисления и теряли важную информацию из-за упорядоченных данных с отметкой времени. Напротив, Трансформеры основаны на Внимании, которые требуют одного шага для подачи всех последовательных данных и имеют механизм самообслуживания, работающий в базовой архитектуре для сохранения важной информации.
БЕРТ
BERT ( представления двунаправленого кодировщика из Transformer ) превосходят LSTM.
Эти модели работают быстрее, поскольку слова могут обрабатываться одновременно. Контекст слов усваивается лучше, поскольку они могут учиться в обоих направлениях одновременно. Если мы сложим энкодеры, мы получим модель BERT.
Стратегии обучения BERT:
Моделирование языка в масках : BERT принимает входные предложения и заменяет некоторые случайные слова токенами [MASK]. Цель модели — предсказать исходное слово из замаскированых слов на основе контекста, предоставляемого другими, немаскироваными словами в последовательности.
Модель вычисляет вероятность слова в словаре с помощью функции сжатия Softmax. Это помогает BERT понять двунаправленный контекст внутри предложения.
Прогнозирование следующего предложения: в этом случае BERT принимает на вход два предложения и определяет, следует ли второе предложение за первым предложением.
Это помогает BERT понять контекст разных предложений.
ГПТ; ГПТ2; GPT3
GPT (Generative PreTraining) — это языковая модель, используемая для прогнозирования вероятности последовательности слов.
Языковые модели, включающие генеративное обучение, не требуют данных, помеченных человеком.
GPT-1 имеет два этапа обучения: предварительное обучение без учителя с использованием немаркированных данных с целевой функцией языковой модели, за которым следует контролируемая точная настройка модели без модели для задачи. GPT использует архитектуру преобразовательного декодера.
С появлением GPT2 цель модели больше сместилась в сторону генерации текста. Это авторегрессионная языковая модель. Он обучается на входной последовательности, и его цель — предсказывать следующий токен в каждой точке последовательности.
Он состоит из одной стопки блоков-трансформеров с механизмом внимания. Он имеет немного меньшую размерность, чем BERT, с большим количеством блоков преобразователей (48 блоков) и большей длиной последовательности.
Базовая структура GPT3 аналогична структуре GPT2, с той лишь разницей, что в ней больше блоков преобразователей (96 блоков), или он обучается на большом количестве данных. Размер последовательности входных предложений также увеличился вдвое по сравнению с GPT2. На сегодняшний день это самая крупная архитектура нейронной сети, содержащая наибольшее количество параметров.
Импульсный контраст (MoCo)
Идея модели заключалась в том, что предварительное обучение без учителя может превзойти контролируемый аналог в задачах компьютерного зрения , как обнаружение или сегментация.
В прошлом мы уже видели, что такие модели, как BERT и GPT, основанные на обучении без учителя, имели огромный успех в области НЛП.
В задачах, связанных с обработкой языка, модели предоставляется входное предложение, и модель должна предсказать одно или несколько следующих слов. Допустим, у нас есть словарь всех предложенных слов. Использование такого словаря позволяет нам определить потерю как простую задачу поиска в словаре.
Допустим, изображение передается через кодер; закодированную особенность изображения можно назвать запросом .
Словарь в данном случае представляет собой набор признаков большого набора изображений. Такой словарь очень сложно создать, поскольку изображения и соответствующие функции недоступны. Динамический словарь готовится путем применения модели кодировщика к набору изображений.
Эта методология называется контрастным обучением .
Контрастное обучение
Изображение выше представляет собой пакетную перспективу двух механизмов оптимизации для контрастного обучения. Изображения кодируются в пространство представления, в котором вычисляются попарные сходства.
MoCo решает две проблемы в контрастном обучении:
Как сделать динамический словарь достаточно большим?
Как сделать динамический словарь согласованным при обновлении кодировщика?
Чтобы создать большой словарь в рамках Contrastive Learning, мы сохраняем функции предыдущей партии изображений в виде очереди. Словарь состоит из текущих и предыдущих пакетов и не ограничен размером пакета.
Функции в этом словаре создаются кодировщиком, который постоянно обновляется, что снижает общую согласованность словаря. Чтобы решить эту проблему согласованности, предлагается датчик импульса, который медленно обновляется.
СимCLR
Контрастное обучение сочетается с увеличением размера данных, увеличением размера пакета, большим количеством эпох обучения и более широкими сетями.
SimCLR существенно дополнил немаркированные данные обучения и передал их в стандартную архитектуру ResNet и небольшую нейронную сеть.
Изображения передаются в базовый кодер для получения вложений. Эти вложения пропускаются через два слоя нейронных сетей, чтобы получить еще один набор вложений. Используется модифицированная версия перекрестной энтропии, которая гласит, что сходство между двумя вложениями должно быть близким, если они образуют пару «изображение» и «дополненное изображение».
Другими словами, вложения должны притягивать. С другой стороны, сходство между изображениями, не принадлежащими к одному классу, должно отталкивать.
Недавние исследования показывают, что трансформеры, основанные на механизме внимания, превосходят RNN и почти заменили RNN во всех областях.
Для сложных данных, как изображения, мы можем использовать ConvNets в задачах классификации, а для генерации изображений или задач, связанных с передачей стилей, лучше всего работают генеративные состязательные сети.