Глубокое обучение — это большая область. Его ядром является алгоритм нейронной сети. Размер нейронной сети определяется миллионами или даже миллиардами постоянно меняющихся параметров. Кажется, что каждые несколько дней предлагается большое количество новых методов.

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

Смешанное обучение — как современные методы глубокого обучения преодолевают границы контролируемого и неконтролируемого обучения, чтобы адаптироваться к большим объемам неиспользуемых немаркированных данных?

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

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

Будущее глубокого обучения в основном связано с этими тремя парадигмами обучения, каждая из которых тесно связана.

Смешанное обучение

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

Как мы можем использовать методы обучения с учителем для решения или связывания проблем обучения без учителя?

Например, в этом случае полууправляемое обучение становится все более популярным в области машинного обучения, потому что оно может исключительно хорошо работать с контролируемыми задачами с небольшим количеством размеченных данных. Например, хорошо спроектированная полууправляемая Генеративная антимариальная сеть (Generative antimarial Network) использует всего 25 обучающих выборок на наборе данных MNIST и достигает точности более 90%.

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

Сеть генеративной конфронтации с полууправлением (сокращенно SGAN) является усовершенствованием стандартной сети генеративной конфронтации. Дискриминатор не только выводит 0 и 1, чтобы определить, является ли это сгенерированным изображением, но также выводит тип образца (обучение с несколькими выходами).

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

Подробнее о SGAN и полуконтролируемом обучении можно прочитать здесь.

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

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

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

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

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

После интерпретации каждого кластера (например, кластер A представляет жалобы на обзоры продуктов, кластер B представляет положительные отзывы и т. д.), вы можете использовать глубокую архитектуру NLP, такую ​​как BERT, для классификации нового текста в эти кластеры. Все они полностью немаркированы. данные и минимальное участие человека.

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

Компонентное обучение

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

Трансферное обучение — очень очевидный пример компонентного обучения. Основываясь на этой идее, веса моделей, предварительно обученные для схожих задач, можно использовать для точной настройки конкретной задачи. Создайте предварительно обученную модель, например Inception или VGG-16, чтобы различать разные категории изображений.

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

Точно так же модель встраивания слов в нейронной сети НЛП сопоставляет слова с позициями, более близкими к другим словам в пространстве вложений, в соответствии с отношениями между словами (например, расстояние между яблоком и предложением меньше, чем расстояние между яблоком и грузовик) . Предварительно обученные вложения, такие как GloVe, могут быть помещены в нейронные сети, начиная со значимых объектов, которые эффективно отображают слова в числа.

Не столь очевидно, что конкуренция также может стимулировать рост знаний. Во-первых, генеративно-состязательная сеть заимствует парадигму составного обучения, чтобы принципиально противопоставить две нейронные сети друг другу. Цель генератора — обмануть дискриминатор, а цель дискриминатора — не быть обманутым.

Конкуренцию между моделями будем называть «состязательным обучением», не путать с другим типом состязательного обучения, которое заключается в разработке злонамеренных входных данных и обнаружении слабых границ принятия решений в модели.

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

С другой стороны, конкурентное обучение похоже на состязательное обучение, но в масштабе от узла к узлу: узлы конкурируют за право ответа подмножества входных данных. Конкурентное обучение реализуется в «конкурентном слое». В конкурентном слое, за исключением некоторых случайно распределенных весов, группы нейронов все одинаковы.

Вектор веса каждого нейрона сравнивается с входным вектором, и активируется нейрон с наибольшим сходством, который является нейроном «победитель получает все» (выход = 1). Остальные «отключены» (выход = 0). Этот неконтролируемый метод является основной частью самоорганизующегося картографирования и обнаружения признаков.

Еще одним примером обучения компонентов является поиск нейронной архитектуры. Проще говоря, в среде обучения с подкреплением нейронная сеть (обычно рекуррентная нейронная сеть) учится генерировать наилучшую сетевую архитектуру для этого набора данных — алгоритм находит для вас наилучшую архитектуру, вы можете прочитать об этом здесь. теория и применить код Python здесь.

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

Многие компоненты обучения ищут уникальные способы установления связей между различными моделями. Все они основаны на этой идее:

Одна модель или даже очень большая модель обычно работает хуже, чем несколько маленьких моделей/компонентов. Каждой из этих маленьких моделей отводится часть задачи.

Например, рассмотрим задачу создания чат-бота для ресторана.

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

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

Чтобы иметь дело со все более разнообразными типами данных, такими как видео и 3D-данные, исследователи должны создавать творческие комбинированные модели.

Узнайте больше об изучении ингредиентов и будущем здесь.

Упрощение обучения

В области глубокого обучения, особенно в НЛП (самая захватывающая и захватывающая область исследований глубокого обучения), масштаб модели постоянно растет. Последняя модель GPT-3 имеет 175 миллиардов параметров. Сравнивать его с BERT все равно, что сравнивать Юпитер с комаром (ну, не буквально). Будет ли будущее глубокого обучения больше?

Логически говоря, нет, GPT-3 очень убедительна, но в прошлом она неоднократно показывала, что «успешная наука» — это та наука, которая оказывает наибольшее влияние на человечество. Академический мир всегда слишком далек от реальности и слишком расплывчат. В конце 19 века нейронные сети были на короткое время забыты из-за слишком малого количества доступных данных, так что эта идея, какой бы умной она ни была, оказалась бесполезной.

GPT-3 — еще одна языковая модель, на которой можно писать привлекательный текст. Где его применение? Да, например, он может генерировать ответы на запросы. Однако есть более эффективные способы сделать это (например, обход графа знаний и использование меньшей модели, такой как BERT, для вывода ответа).

В случае исчерпания вычислительных мощностей огромные размеры GPT-3 (не говоря уже о более крупной модели) нецелесообразны или ненужны.

«Закон Мура бесполезен». Сатья Наделла, генеральный директор Microsoft

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

Для этого требуется облегченный искусственный интеллект: сделайте нейронные сети меньше, сохранив при этом производительность.

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

Уровень встраивания явно сопоставляет сущность со значением, имеющим физический смысл, чтобы не увеличивать нагрузку на дополнительные параметры. В одной интерпретации слой Dropout явно запрещает работу параметров с определенными частями ввода. Регуляризация L1/L2 гарантирует, что сеть использует все параметры, гарантируя, что все параметры не станут слишком большими, и что каждый параметр может максимизировать свою информационную ценность.

С созданием этого специального выделенного уровня сети требуется все меньше и меньше параметров для более сложных и больших данных. Другие более новые методы явно направлены на сжатие сети.

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

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

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

Например, вышеупомянутый состязательный ввод — это вредоносный ввод, предназначенный для обмана сети. Распыление краски или маркировка на знаках может привести к тому, что автономные транспортные средства превысят установленную скорость. Ответственное упрощение обучения не только делает модель достаточно легкой для использования, но и гарантирует, что она может адаптироваться к угловым ситуациям, которых не было в наборе данных.

В исследованиях глубокого обучения упрощенное обучение может иметь наименьшее значение, потому что «мы достигаем хорошей производительности за счет допустимого размера архитектуры» не похоже на «мы используем архитектуру, состоящую из десятков тысяч параметров. Достигнута самая высокая производительность» как привлекательная .

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

Резюме:

  • Цель гибридного обучения — пересечь границу между обучением с учителем и обучением без учителя. Методы, подобные полуконтролируемому и самоконтролируемому, могут извлекать информацию из немаркированных данных. Это очень полезно, когда количество неконтролируемых данных увеличивается экспоненциально. Цените вещи.
  • По мере того как задачи становятся все более и более сложными, компонентное обучение разбивает задачу на несколько простых компонентов. Когда эти компоненты работают вместе или работают друг против друга, в результате получается лучшая модель.
  • Упрощенному обучению не уделяется слишком много внимания, потому что глубокое обучение переживает фазу ажиотажа, и достаточно скоро появятся практика и дизайн, ориентированный на развертывание.