Глубокое обучение
Особенность технологии глубокого обучения
Особенность технологии глубокого обучения заключается в том, что это техника для компьютеров (ИИ), чтобы учиться так же, как люди - методом проб и ошибок. Если вам интересно, видели ли вы это раньше, то, вероятно, видели. Это технология, лежащая в основе приложений, как голосовое управление устройствами, вроде телефонов, планшетов или телевизоров. Не так давно мы познакомились с беспилотными автомобилями, которые также являются продуктом глубокого обучения. С помощью глубокого обучения искусственный интеллект распознает знаки остановки, пешеходов и другие препятствия на дороге, которые могут привести к аварии.
Первые компьютерные модели нейронных сетей появились в 1943 году. Американские ученые Уолтер Питтс и Уоррен Маккалок создали аналог нейронных сетей человеческого мозга и написали алгоритмы для имитации мыслительного процесса. Позднее исследователи изучали алгоритмы работы искусственных нейросетей, но у технологии были ограничения: для полноценной работы в те годы не хватало мощных компьютеров и объемы имеющихся данных были слишком малы.
В 1970-x появились первые графические процессоры – GPU. Компьютеры с этими компонентами обрабатывали графические данные в сотни раз быстрее, так как GPU специально были заточены только для этой задачи. В будущем это помогло нейронным сетям выиграть конкуренцию у других моделей искусственного интеллекта, например, машины опорных векторов, так как для обучения нейросети нужно быстро перемножить большое количество матриц, а GPU с этим справляются лучше всего.
Считается, что машинное обучение зародилось в 1950-х годах, когда британский математик Алан Тьюринг предложил свою «обучающую машину» с искусственным интеллектом.
Первую программу компьютерного обучения написал Артур Сэмюэл. Его программа позволила компьютеру IBM усиливать со временем свою игру в шашки. В последующие десятилетия различные методы машинного обучения входили и выходили из моды.
Исследователи машинного обучения по большей части игнорировали нейронные сети. Дело в том, что те страдали от проблемы «локальных минимумов»: неверные, казалось бы, веса давали наименьшее количество ошибок. Однако некоторые методы машинного обучения, такие как компьютерное зрение и распознавание лиц, продвигались вперед.
В 2001 году был разработан алгоритм машинного обучения Adaboost для нахождения лиц на изображении в режиме реального времени. Он фильтровал изображения при помощи решения задач с бинарным выбором. Это были задачи типа: «Есть ли на изображении яркое пятно между темными пятнами, возможно, обозначающее переносицу?» Когда данные перемещались дальше вниз по дереву решений, вероятность выбора правильного лица на изображении возрастала.
Но до всплеска популярности нейронных сетей оставалось еще несколько лет. Он произошел, когда на рынок наконец-то вышли мощные графические процессоры. Новые аппаратные средства позволили исследователям использовать настольные компьютеры для запуска задач по обработке изображений. Раньше для этого требовались суперкомпьютеры.
Очень значительный скачок вперед произошел после того, как стала доступна размеченная база данных ImageNet, в которой собраны миллионы изображений со всего интернета. Обременительная задача ручной маркировки изображений была заменена краудсорсингом. Это дало сетям практически неограниченный источник обучающих наборов данных.
Современный этап развития глубокого обучения наступил в начале 2010-х годов. Этому помогли рост производительности графических процессоров и появление сверточных нейронных сетей, при создании которых вдохновлялись устройством человеческого глаза. В 2012 году применение deep learning позволило снизить долю ошибок при распознавании объектов на изображениях в рамках проекта ImageNet до 16%. Сегодня нейросети справляются с подобными задачами с точностью до 94-99%, что превышает возможности человека.
Сегодня нейросети применяют и для анализа активности в человеческом мозге. В 2020 году исследователи использовали deep learning для поиска отделов височной доли мозга, отвечающих за распознавание образов у человека.
Для выполнения таких действий компьютер, использующий методы глубокого обучения, запрашивает большое количество обучающих данных (это работа нейронных сетей, к ней мы вернемся чуть позже). Такие технологические достижения, как беспилотные автомобили, нуждаются в тысячах видеоматериалов и изображений, чтобы распознать каждую отдельную ситуацию, чтобы она была безопасной. Недавние улучшения в глубоком обучении были доведены до уровня, когда оно превосходит человека в определенном количестве задач.
Как Это Работает?
Как уже упоминалось чуть выше, то, что глубокое обучение использует для выполнения таких задач - это нейронные сети. В большинстве случаев глубокое обучение ИИ называют глубокой нейронной сетью. Слово "глубокий" в этом термине обозначает слои, которые заложены в обучение нейронной сети. Так что такое глубокое обучение?
Модели глубокого обучения обучаются путем получения достаточного количества данных и архитектуры данных нейронных сетей, которые изучают функции непосредственно из данных без ручного отбора. Глубокие нейронные сети - это системы, которые связаны точно так же, как наши биологические нейронные сети. Такие системы создаются таким образом, чтобы адаптироваться к ситуационным потребностям. Как только нейронные сети идентифицируют результаты для определенного объекта, в следующий раз NN-системы могут определить, является ли это тем же самым объектом или нет. Нейронные сети не распознают объекты так же, как мы, они распознают объекты через их собственный уникальный набор признаков.
Искусственная Нейронная Сеть
Один из наиболее распространенных и популярных типов использования глубокого обучения известен как обычные нейронные сети или сокращенно CNN. Они объединяют изученные объекты с входными данными и используют 2D-сверточные слои, что делает эту архитектуру хорошо подходящей для обработки 2D-данных. Например, это могут быть изображения или листы координатной плоскости.
Обычные нейронные сети работают таким образом, что больше нет необходимости в ручном извлечении признаков. Они извлекают функции непосредственно из изображений. Искусственные нейронные сети имеют автоматизированное извлечение признаков, что делает модели глубокого обучения идеально точными для задач компьютерного зрения, таких как классификация объектов.
CNN учится обнаруживать различные объекты, используя множество скрытых слоев. Каждое число скрытых слоев увеличивает сложность изучаемых объектов изображения. CNN изучает различные функции из каждого слоя.
Глубокая нейросеть тренируется проводить точные вычисления на больших наборах данных. Например, для обучения расчету цен в отелях нужны массивы данных о ценах за предыдущие годы. Нейросеть будет находить закономерности в параметрах и с каждой итерацией будет прогнозировать цены в определенный день точнее.
В deep learning есть два основных способа тренировки нейросети: с учителем и без учителя. В первом случае нейросети задают эталонный результат вычислений. При ответах с ошибкой она перенастраивает свои параметры и проводит вычисления снова, пока ответ не приблизится к эталону. Пример – определение стоимости дома.
При обучении без учителя глубокая нейросеть сама классифицирует входящие данные и вычисляет эталонный результат. Пример – кластеризация пользователей сайта по разным группам.
Машинный перевод
В технологии нейронного машинного перевода (NMT) нейросети обучают на миллионах примеров пар фрагментов текста и их переводов. Глубокое обучение позволяет модели анализировать контекст употребления слов и грамматику. Один из самых известных примеров — GNMT, нейронный машинный перевод от Google.
Компьютерное зрение
В технологиях компьютерного зрения deep learning помогает распознавать объекты на изображениях. Для этого нейронные сети анализируют области на фото, находя в них закономерности, полученные при обучении. Например, компьютерное зрение используют в поисковиках: алгоритмы Яндекс и Google способны находить похожие на заданные фотографии. Также глубокое обучение применяют для распознавания лиц на камерах видеонаблюдения и для редактирования фотографий.
Синтез и распознавание речи
Благодаря глубокому обучению технологии обработки и синтеза речи стали очень точными. Обучение многослойных нейросетей позволяет компьютеру распознавать голос с учетом речевых особенностей: произношения, акцента, скорости речи, возраста говорящего. В синтезе речи, например, в голосовых помощниках Siri и Алиса, глубокое обучение позволяет объединять записанные фрагменты так, чтобы голос казался естественным.
За прошедшие с тех пор годы технологические компании сделали свои библиотеки глубокого обучения открытыми. Это прежде всего Tensorflow от Google, Pytorch от Facebook, DSSTNE от Amazon и CNTK от Microsoft.