1. Передача обучения
Трансферное обучение сейчас широко используется в машинном обучении, поскольку преимущества велики. Общая идея проста. Вы тренируете большую нейронную сеть для целей с большим количеством данных и большим количеством обучения. Затем, когда у вас возникает конкретная проблема, вы как бы «отрезаете конец» большой сети и обучаете несколько новых слоев с вашими собственными данными. Большая сеть уже понимает множество общих паттернов, которым на этот раз вам не нужно обучать сеть с помощью трансферного обучения.
Хорошим примером является попытка научить сеть распознавать изображения разных видов собак. Без трансферного обучения вам нужно много данных, может быть, 100 000 изображений разных видов собак, поскольку сети приходится учиться всему с нуля. Если вы обучаете новую модель с помощью трансферного обучения, вам может понадобиться всего 50 изображений каждого вида.
Вы можете прочитать больше о Перенести обучение сюда.
2. Активное обучение
Активное обучение — это стратегия сбора данных, которая позволяет вам выбирать данные, от которых ваши модели ИИ получат наибольшую пользу при обучении. Давайте остановимся на примере с породой собак. Вы обучили модель, которая может различать разные виды, но по какой-то причине у модели всегда возникают проблемы с идентификацией немецких овчарок. При активной стратегии обучения вы автоматически или, по крайней мере, с помощью установленного процесса выбираете эти изображения и отправляете их для маркировки.
Я сделал более длинный пост о как здесь работает активное обучение.
3. Лучшие данные
Я представил здесь стратегию, которая может показаться очевидной, но иногда ею пренебрегают. С данными более высокого качества вам часто требуется гораздо меньше данных, поскольку ИИ не нужно тренироваться с таким же количеством шума и неправильных сигналов. В СМИ об ИИ часто говорят как о том, что «с большим количеством данных можно делать все что угодно». Но во многих случаях прилагать дополнительные усилия, чтобы избавиться от неверных данных и убедиться, что для обучения используются только правильно помеченные данные, имеет больше смысла, чем поиск дополнительных данных.
4. ГАН
GAN или генеративно-состязательные сети — это способ создания нейронных сетей, который выглядит почти футуристично по своему дизайну. По сути, нейронная сеть такого типа создается за счет того, что две сети соревнуются друг с другом в игре, где одна сеть создает новые образцы поддельных обучающих данных из набора данных, а другая пытается угадать, что является подделкой, а что — реальными данными. Сеть, создающая фальшивые данные, называется генератором, а сеть, пытающаяся угадать, что фальшиво, а что реально, называется дискриминатором. Это подход глубокого обучения, и обе сети продолжают улучшаться во время игры. Когда генератор настолько хорош в генерации фальшивых данных, что у дискриминатора постоянно возникают проблемы с отделением фальшивых данных от реальных, у нас есть готовая модель.
Для GAN вам по-прежнему нужно много данных, но вам не нужны маркированные данные, и, поскольку обычно именно маркировка является дорогостоящей частью, вы можете сэкономить время и свои данные с помощью этого подхода.
5. Вероятностное программирование
Одна из моих самых любимых технологий. Вероятностное программирование имеет много преимуществ, и одно из них заключается в том, что вы часто можете обойтись меньшим объемом данных. Причина в том, что вы встраиваете «априорные» модели в свои. Это означает, что вы можете закодировать свои знания предметной области в модель и позволить данным брать их оттуда. Во многих других подходах к машинному обучению все должно изучаться моделью с нуля, независимо от того, насколько это очевидно.
Хорошим примером здесь являются модели сбора данных документа. Во многих случаях данные, которые мы ищем, очевидны по ключевому слову слева от них. Например, «Идентификационный номер: #номер# — это распространенный формат. С помощью вероятностного программирования вы можете сообщить модели перед обучением, что вы ожидаете, что данные будут справа от ключевого слова. Многие нейронные сети обучаются с нуля, требуя больше данных.
Вы также можете прочитать больше о вероятностном программировании здесь: https://www.danrose.ai/blog/63qy8s3vwq8p9mogsblddlti4yojon