Что такое глубокая нейросеть

0
21

Глубокое обучение

История

Глубокое обучение (англ. deep learning) — совокупность широкого семейства методов машинного обучения, основанных на имитации работы человеческого мозга в процессе обработки данных и создания паттернов, используемых для принятия решений [1] . Как правило, глубокое обучение предназначено для работы с большими объемами данных и использует сложные алгоритмы для обучения модели [2] . На больших датасетах глубокое обучение показывает более высокую точность результатов в сравнении с традиционным машинным обучением. Зависимость производительности (качества результатов) от объема данных представлена на рисунке ниже.

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

В deep learning есть два основных способа тренировки нейросети: с учителем и без учителя. В первом случае нейросети задают эталонный результат вычислений. При ответах с ошибкой она перенастраивает свои параметры и проводит вычисления снова, пока ответ не приблизится к эталону. Пример – определение стоимости дома.

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

В глубоком обучении используется больше одного скрытого слоя. Такие модели называют глубокими нейронными сетями (deep neural network). Например, в компьютерном зрении используют сверточные нейросети. В архитектуре таких нейросетей используют множество слоев, подбирая их количество под каждую задачу. Чем дальше информация со входного изображения продвигается по нейросети, тем более абстрактные детали находит нейросеть. Например, на первых слоях модель находит палочки и круги, из которых состоит любое изображение, а в конце сеть уже может найти хвосты и уши для распознавания животных на фотографиях.

Первые компьютерные модели нейронных сетей появились в 1943 году. Американские ученые Уолтер Питтс и Уоррен Маккалок создали аналог нейронных сетей человеческого мозга и написали алгоритмы для имитации мыслительного процесса. Позднее исследователи изучали алгоритмы работы искусственных нейросетей, но у технологии были ограничения: для полноценной работы в те годы не хватало мощных компьютеров и объемы имеющихся данных были слишком малы.

Кратчайшая история

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

Глубокие нейронные сети требуют больших объемов данных для сходимости обучения. Поэтому часто встречается ситуация, когда для решаемой задачи недостаточно данных для того, чтобы хорошо натренировать все слои нейросети. Для решения этой проблемы и используется transfer learning [22] .

Машинное обучение – это набор методов, который позволяет на основе данных «обучить» компьютер решать сложные задачи, снимая с человека необходимость создавать точный алгоритм решения. Например, создать пошаговый алгоритм, по которому компьютер будет отличать кошек и собак на изображениях, крайне сложно из-за большой вариативности изображений с животными, а обучить модель на выборке таких изображений относительно просто. Узнать больше о машинном обучении, задачах, которые оно решает, моделях и их обучении можно в нашем материале.

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

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

ЧИТАТЬ ТАКЖЕ:  Как будет искусственный интеллект по английски

Современный этап развития глубокого обучения наступил в начале 2010-х годов. Этому помогли рост производительности графических процессоров и появление сверточных нейронных сетей, при создании которых вдохновлялись устройством человеческого глаза. В 2012 году применение deep learning позволило снизить долю ошибок при распознавании объектов на изображениях в рамках проекта ImageNet до 16%. Сегодня нейросети справляются с подобными задачами с точностью до 94-99%, что превышает возможности человека.

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

В технологиях компьютерного зрения deep learning помогает распознавать объекты на изображениях. Для этого нейронные сети анализируют области на фото, находя в них закономерности, полученные при обучении. Например, компьютерное зрение используют в поисковиках: алгоритмы Яндекс и Google способны находить похожие на заданные фотографии. Также глубокое обучение применяют для распознавания лиц на камерах видеонаблюдения и для редактирования фотографий.

Глубже – сложнее

Рассмотрим этот процесс более конкретно на примере нейросети для распознавания лиц. Для изображений наиболее часто используются модели со свёрточными слоями. Основная функция этого слоя – выделение определённых фрагментов или узоров на изображении. Такое выделение осуществляется с помощью применения фильтра к исходному изображению. Фильтр – это изображение, которое содержит в себе образец элементов, которые необходимо выделить. На изображении снизу можно видеть результат применения фильтра границ:

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

Помимо сложностей описанных выше исследователи встречаются и с другими проблемами глубоких сетей. Одна из таких проблем – сложность или невозможность интерпретации модели. В редких случаях (как в примере с распознаванием лиц) получается понять, какие признаки извлекает модель и какую важность она им присваивает. Понимание, как модель работает «внутри», важно не только в исследованиях, но и в практических применениях: например, если решение о выдаче кредита генерируется моделью, то необходимо иметь возможность объяснить клиенту, почему модель вынесла именно такой вердикт.

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

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

Подбор оптимальных характеристик и настройка процедуры обучения глубоких нейросетей – непростая задача. Так, до выхода статьи Deep Residual Learning for Image Recognition [2] исследователям удавалось обучать только сети средней глубины. Помимо этого есть зависимость между глубиной модели и размером обучающей выборки – чем больше слоёв с обучаемыми параметрами в сети, тем больше данных необходимо для обучения. Глубокую нейросеть не обучишь на «маленьких» данных.

Нейросеть – это одна из моделей машинного обучения, способная объяснять сложные зависимости в данных. Под зависимостями в данных можно понимать связь между входными данными и выходными: между изображением и его категорией, между аудиодорожкой и её транскрипцией, между корпусом текстов и векторными представлениями слов. Было доказано, что нейросети способны объяснить, или другими словами, моделировать любую зависимость с наперёд заданной точностью [1]. Способность модели объяснять зависимости называется выразительностью. Выразительность нейросети определяется многими факторами, одним из которых является глубина.

Возможность работать с глубокими моделями поставила ряд нетривиальных вопросов: Как подбирать архитектуру модели (выбирать тип слоёв, их порядок и количество)? Как эффективно обучать глубокие модели? На что и как влияет глубина? – именно на эти вопросы пытается ответить подобласть машинного обучения – глубинное обучение.

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь