Нейронные сети что это >< Как проходит обучение и распознавание задач

Нейронные сети решают интеллектуальные задачи

Начнем с главного. Основное назначение нейронных сетей – это решение интеллектуальных задач.

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

Функционирование такого программного обеспечения – это полностью детерминированный алгоритм:

  • получить видеопоток с камеры ведущего;
  • сжать его;
  • передать в виде пакетов по определенному протоколу до зрителя;
  • распаковать обратно в видеопоток;
  • отобразить его для зрителя.

Такого рода задачи не являются интеллектуальными.

Какие же задачи призваны решать нейронные сети? Их сила заключена в решении так называемых интеллектуальных задач, задач иного типа, например:

  • распознавание лиц
  • распознавание стульев в ТЦ (отличить стулья KFC от McDonalds)
  • автопилот Tesla и т.д.

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

Место нейронных сетей в области Data Mining и Machine Learning

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

Data Mining – это непосредственная работа с данными и их анализ человеком с использованием своих собственных интеллектуальных ресурсов.

Классический пример прикладной программы, использующейся в области Data Mining – это широко распространенный пакет MATLAB.

В случае с Data Mining человек сам, как исследователь, занимается этим вопросом и погружается в него. В качестве примерной аналогии здесь можно вспомнить знаменитый фильм “Игры разума”, когда главный герой, весь обложенный данными, сидел, думал и разгадывал некий шифр.

Ещё один пример хорошо показывает нам разницу между Data Mining и Machine Learning(Машинное обучение). В то время, когда многие пытались разгадать коды немецкой шифровальной машины “Enigma” вручную, своей головой, английский математик и криптограф Алан Тьюринг создавал машину, которая сама будет разгадывать этот код.

И машина в итоге победила.

Machine Learning – это обучение машины для того, чтобы она решала задачи определенного типа без участия человека.

Еще один пример – разработка кредитного скоринга в банке, т.е. создание надежной системы оценки кредитоспособности (кредитных рисков) человека, основанная на численных статистических методах.

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

Это тоже пример обычного классического Data Mining.

Machine Learning же – это ситуация, когда мы на этот Data Mining запускаем алгоритм, по которому происходит работа с данными. И именно написанный человеком алгоритм уже находит определенные закономерности, которые нам важно знать о неких данных.

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

Два вида Machine Learning

Дальше нам важно понимать, что машинное обучение делится на 2 больших класса:

  1. Классическое машинное обучение

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

Это математические методы, в которых много математической статистики, теории вероятностей, линейной алгебры, математического анализа и т.д. Это операции с матрицами, разделяющие поверхности и др.

В классическом машинном обучении очень велико участие человека.

Например, как писалось распознавание лиц методом классического машинного обучения?

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

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

Т.е. человек самостоятельно продумывал алгоритм, выделяя множество параметров и то, как они соотносятся друг с другом, а дальше уже распознавала машина на основе тех “ориентиров”, которые ей дал человек.

  1. Нейронные сети

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

К примеру, если бы мы писали классическим методом отдельно распознавание лиц и отдельно распознавание кошек и собак, то это были бы категорически разные алгоритмы.

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

Отличие нейронной сети в том, что у неё есть принцип, по которому она обучается, и нам нужно лишь дать ей выборку для обучения, чтобы она сама научилась.

Главное – выбрать правильную архитектуру сети(допустим, для работы с 2-D изображениями), указать, сколько классов объектов мы должны иметь на выходе и дать правильную обучающую выборку.

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

В них будут определенные отличия, но они будут минимальными.

Глубокое Обучение (Deep Learning)

И, наконец, в нейронных сетях выделяют глубокое обучение (Deep Learning).

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

Начнем чуть издалека. Когда нейронная сеть маленькая (без скрытых слоев или с минимальным их количеством), она не способна описать сложные явления и решить сколь-нибудь значимые значимые задачи, и в этом отношении её можно назвать “туповатой”.

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

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

Важно отметить, что глубокое обучение нужно не всегда.

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

Иными словами, сложность нейронной сети должна соответствовать сложности изучаемого явления.

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

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

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

Типы задач, которые решают нейронные сети

Сейчас давайте разберем классические типы задач, которые можно целесообразно решать с использованием нейронных сетей.

Сразу можно сказать, что перечисленные ниже типы нельзя считать жестко разграниченными – они могут плавно перетекать друг в друга.

  1. Распознавание образов (классификация)

Классификация– типичная и одна из самых распространенных задач, например:

– Распознавание лиц
– Распознавание эмоций
– Классификация типов огурцов на конвейере при сортировке и т.д.

Задача распознавания образов – это ситуация, когда у нас есть некоторое количество классов (от 2 и более) и нейронная сеть должна отнести образ к той или иной категории. Это задача классификации.

  1. Регрессия

Следующий тип задач – это регрессия.

Суть этой задачи – получить на выходе из нейронной сети не класс, а конкретное число, например:

– Определение возраста по фото
– Прогнозирование курса акций
– Оценка стоимости недвижимости

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

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

  1. Прогнозирование временных рядов

Прогнозирование временных рядов– это задача, во многом схожая с регрессией.

Суть её заключается в том, что у нас есть динамический временной ряд значений, и нам нужно понять, какие значения будут идти в нем дальше.

Например, это задачи по предсказанию:

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

Даже автопилот Tesla отчасти тоже можно отнести к задаче этого типа, ведь видеоряд следует рассматривать как временной ряд из картинок.

Возвращаясь же к примеру с оценкой процессов, происходящих в котлах, задача, по сути, является двойной.

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

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

  1. Кластеризация

Кластеризация– это обучение, когда нет учителя.

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

Например, это:

– Выявление классов читателей при email-рассылках
– Выявление классов изображений

Типичная маркетинговая задача – эффективно вести email-рассылку. Допустим, у нас есть миллион email-адресов, и мы ведем некую рассылку.

Разумеется, люди ведут себя совершенно по-разному: кто-то открывает почти все письма, кто-то не открывает почти ничего.

Кто-то постоянно кликает по ссылкам в письмах, а кто-то просто их читает и кликает крайне редко.

Кто-то открывает письма по вечерам в выходные, а кто-то – утром в будние, и так далее.

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

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

Если передать эти изображения нейронной сети, то, после их анализа, она, к примеру “скажет” нам, что обнаружила 17 различных классов.

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

Это примеры типичных задач кластеризации.

  1. Генерация

Генеративные сети (GAN) – это самый новый, недавно появившийся тип сетей, который стремительно развивается.

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

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

Кроме того, в этот список можно добавить и задачи трансформации контента:

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

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

Параллельно с этим роликом идет другой, переделанный в лето. Там уже вместо снега зеленые газоны, деревья с листвой, люди легко одеты и т.д.

Безусловно, есть и некоторые другие типы задач, которые решают нейронные сети, но все основные мы с вами рассмотрели.

Поделиться в соц.сетях:

Вам также может понравиться...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector