Что такое машинное обучение?

Искусственный интеллект наравне с нейронными сетями и машинным обучением для многих звучит как нечто из будущего, если не из фантастического, то по крайней мере из не очень близкого. Это одновременно и правда и заблуждение. Рассмотрим подробнее.Для начала необходимо понять, что входит в концепцию машинного обучения и чем она отличается от традиционного программирования.  Многие до сих думают, что программы для компьютеров пишутся человеком, и это действительно так во многих случаях. Однако, в ряде случаев этот подход не работает, человек просто не может знать заранее оптимальный способ решения ряда задач. Например, написать универсальный переводчик между языкам или программу распознавания образов или рисования котиков. Все эти задачи можно объединить общим описанием — «они не имеют чёткого описания и обладают большим набором вариантов». Написать программу, которая бы учла множество факторов сразу и выдала правдоподобный ответ с использованием только опыта практически не возможно. Однако было придумано решение и для этой ситуации. Компьютер можно научить принимать правильные решения при помощи обучения. На практике это очень похоже на обучение людей — одна и та же операция повторяется сотни раз с похожими условиями до достижения наиболее устойчивого навыка (результата).

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

Интересно и понятно про это рассказывает Андрей Себрант в своём традиционном примере про защиту газона от котиков. Вкратце суть задачи: защитить газон от посягательств котиков, которые повадились по ночам делать своё грязное дело на новом газоне. Обычное решение с человеком заключается в том, чтобы следить за газоном и при появлении котиков прогонять их. Эффективность получается достаточно низкая — зарплата человека пусть даже и низкоквалифицированного всё равно достаточно высока, для круглосуточной защиты потребуется несколько человек, плюс отпуска, больничные и прочие накладные расходы. Если же рассматривать задачу с применением машинного обучения, то система её решающая будет состоять из нескольких простых устройств: видео-камеры нацеленной на газон, компьютера распознающего котиков и принимающего решения о том, что он собирается сделать дело, а не просто проходит мимо и соответственно необходимости отдать приказ прогнать последнего, и непосредственного исполнительного устройства, в данном примере системы полива. Решение получается простое, дешёвое, как с точки зрения создания, так и эксплуатации. Вся суть системы находится именно в искусственном интеллекте, который научили отличать котиков от собак, белок, детей и других подвижных объектов, а также научили отличать характер поведения котиков — реагировать нужно только на коварных, а тех, кто просто проходит, пробегает мимо можно пропустить.

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

Каким же образом решает задачу машинное обучение? Созданием искусственной нейронной сети (ИНС) и её обучением. Нейронная сеть в данном случае имеет прямую отсылку к нейронной сети живого организма (как правило говорят про человека). Стоит пояснить, что под нейроном в данном случае подразумевается некий элементарный узел выполняющий какую-то простую функцию. А ИНС — совокупность нейронов с определёнными взаимосвязями между ними.

На рисунке ниже рассматривается нейронная сеть из 2 входных нейронов, 4 скрытых слоёв по 4, 2, 4, 2 нейрона в каждом и 1 выходного нейрона. Каждый нейрон в этой сети выполняет задачу разделения плоскости на 2 части. Это отлично видно на входных нейронах разделяющих плоскость вертикально и горизонтально. Каждый последующий нейрон имеет связь с нейронами предыдущего уровня. Чем она сильнее, тем ярче и толще пунктирная линия на рисунке. Выходной же нейрон отображает результат работы всех предыдущих слоёв. На нём же происходит сравнение полученного результата с желаемым: жёлтый и синий фон — результат работы сети по разделению плоскости, жирные точки — эталонные данные, график сверху показывает отклонение результат работы сети от эталона. В процессе обучения отклонение должно снижаться. Что мы и видим. В определённый момент при достижении стабильного малого отклонения можно считать, что нейронная сеть обучена.

2018-03-28_19-57-39
Наш пример в песочнице Tensoflow

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

Фото: Flickr Gene Kogan CC BY-NC-SA 2.0

В этот момент приходит понимание, что на самом деле люди не знают каким именно образом работает та или иная нейронная сеть. И даже более того — у них нет возможности это узнать. По факту нейронная сеть — чёрный ящик, который можно обучить выполнять те или иные действия, но нет возможности понять каким образом он это делает. Илон Маск назвал искусственный интеллект угрозой и призвал его контролировать на законодательном уровне. Забавный случай произошёл спустя буквально месяц после этого, когда чат-боты Facebook изобрели свой язык.

Приведём ещё несколько примеров успешной работы нейронных сетей:

Выводы:

  • нейронные сети, машинное обучение и искусственный интеллект стали реальностью уже сейчас,
  • все 3 области являются очень перспективными и одними из наиболее развиваемых технологий в мире,
  • нейронная сеть — «чёрный ящик», никто не понимает как именно она работает. Это её основное отличие от программирования.

Материалы для изучения:

 

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s