Как стать автором
Обновить

Об обучении нейросетей

Время на прочтение 3 мин
Количество просмотров 13K
image
Это статья уровня 2 (см. ниже).
Статья является логическим продолжением моего рассказа про сверточные нейронные сети и их применения для распознавания изображений.
Прежде чем продолжить хочу дать понимание чем же все таки занимаются люди из области Машинного обучения и какова их глобальная цель. Глобальная цель — это порабощение всех людей машинами создание методов и алгоритмов, способных путем обучения выстраивать сложные и нелинейные модели внешнего мира. В качестве пояснения предлагаю взглянуть на картинку, благодарно позаимствованную из [1]. Сейчас человечество уже умеет создавать алгоритмы, способные учится простым операциям, но что насчет такого вот преобразования — у нас есть изображение сидящего человека которое по сути является сырым вектором значений яркости картинки в каждой точке. И нам необходимо постепенно повышая абстрактность этих сырых данных сделать вывод «человек сидит». Отсюда собственно главный вопрос: Как создать систему способную не только понять простые (пусть и нелинейные) зависимости, но также обучиться сложным, многомерным и многоуровневым иерархиям представлений реального мира?

В этой связи стоит заметить, что некоторые трудноформализуемые задачи успешно решаются т.н. жесткими (hard-wired) методами. Но если та же задача была решена на том же качественном уровне и с соизмеримыми затратами ресурсов, то такой результат ценится больше, поскольку система добыла знания сама в процессе обучения.
Возвращаясь к теме СНС напомню, что они успешно используются в различных задачах распознавания, причем не только изображений, но также временных последовательностей (речь), а при определенном усовершенствовании могут не только классифицировать, но и генерировать и оценивать. Основная фишка сверточных нейронных сетей, отличающая их от всех остальных — это искусственное наложение ограничений на веса, а также послойное изменение размеров входа и локальное восприятие. И если послойное изменение размера карты признаков — это просто трюк, чтобы обеспечить инвариантность к масштабу, а локальное восприятие идея хорошая но довольно старая (неокогнитрон, 70е годы), то вот искусственное введение ограничений или другими словами механизм разделяемых весов — довольно интересная штука. Ряд отцов-нейросетивиков (Хинтон и его последователи) признали, что до сих пор нормально обучить нейросеть с более чем 3 слоями с помощью обратного распространения никому не удавалось и вряд ли удастся [1], за исключением именно СНС. И в качестве причины такой исключительности называется именно свойство разделения весов.
Идея разделяемых весов очень близка к идее разряженных признаков (sparce features) [2], смысл которых в следующем. У нас есть некая обучаемая система, которая принимает данные в сыром виде на входе, а на выходе выдает их в некотором своем представлении, т.е. формирует карты признаков. Идея разряженных признаков заключается в том, что при обучении систему нужно насильно склонять к использованию как можно меньшего количества выходов в процессе представления входных данных. Такое насилие обычно достигается путем введения т.н. штрафа за неразряженность (sparcity penalty). И в этом мне лично видится отличная аналогия с тем, как работает наш мозг. Во всем огромном разнообразии мира развивающемуся человеку (ребенку) можно свихнуться если стараться запоминать все подряд, поэтому естественным является то, что запоминать нужно признаки, наиболее общие для всех окружающих нас явлений и предметов. Таким образом в голове строится некий словарь образов, который затем используется нами для понимания всего остального мира. Причем на каждом уровне иерархии свой словарь. В качестве примера можно привести методику изучения языка когда вам показывают зеленое яблоко и говорят, что это green apple, а затем показывают два яблока и говорят, что это two apples. Из этих двух ситуаций мозг выделяет то, что было общим для обоих и понимает, что такое apple. Таким же образом введение штрафа за использование слишком большого количества выходов для кодирования данных ведет к обучению системой использования образов, как можно более общих для всех входов.
Теперь думаю становится яснее зачем в сверточных нейронных сетях искуственно ограничили количество весов, использующихся для обработки входных данных.
Думаю пока достаточно, продолжу эту тему в следующих статьях.

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


[1] Yoshua Bengio, Learning deep architectures for AI (2009), in: Foundations and Trends in Machine Learning, 2:1(1--127)
[2] M. Ranzato, Y. LeCun, «A Sparse and Locally Shift Invariant Feature Extractor Applied to Document Images». International Conference on Document Analysis and Recognition (ICDAR 2007), Curitiba, 2007
Теги:
Хабы:
+44
Комментарии 32
Комментарии Комментарии 32

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн