Elettracompany.com

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Глубокое машинное обучение

Глубокое машинное обучение

Что такое deep learning и почему о нем все говорят?

» data-href-next=»https://hightech.fm/2018/04/18/metro» data-id-next=»48892″ data-title-next=»Московские власти начали внедрять в метро и ЖД-станциях систему распознавания лиц»> ;

Что такое deep learning и почему о нем все говорят?

3 октября 2015 года мессенджер Telegram оказался недоступен для части пользователей в России и по всему миру. Причины возникших проблем пока неизвестны.

Что такое deep learning и почему о нем все говорят?

О чем речь?

С появления термина «глубокое обучение» прошло уже больше 20 лет, но широко заговорили о нем только недавно. Кратко объясняем, почему так получилось, что такое deep learning, чем оно отличается от машинного обучения и почему вам надо об этом знать.

Что это такое?

Глубокое обучение — это ветвь развития машинного обучения, где используется модель, вдохновленная устройством мозга — взаимодействием нейронов.

Сам термин появился еще в 1980-х, но до 2012 года для реализации этой технологии не хватало мощностей и на нее почти никто не обращал внимание. После серии статей известных ученых, публикаций в научных изданиях технология быстро стала популярной и получила внимание крупных медиа, — первым из мировых СМИ об этом написал The New York Times. Одним из поводов для материала стала научная работа специалистов из университетов Торонто Алекса Крижевского, Ильи Сатскевера и Джеффа Хинтона. Они описали и проанализировали результаты конкурса распознавания изображений ImageNet, где с большим отрывом победила их нейросеть, обученная с помощью deep learning, — система определила 85% объектов. С тех пор в конкурсе побеждала только глубокая нейросеть

Погодите, а что такое машинное обучение?

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

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

А глубокое обучение как работает?

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

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

Сергей Николенко, соавтор книги «Глубокое обучение»: «Есть три термина, которые в последнее время часто используют почти взаимозаменяемо: искусственный интеллект, машинное обучение и глубокое обучение. Однако на самом деле это „вложенные“ термины: искусственный интеллект — это всё что угодно, что может помочь компьютеру выполнять человеческие задачи; машинное обучение — это раздел ИИ, в котором программы не просто решают задачи, а обучаются на основе имеющегося у них опыта, а глубокое обучение — это раздел машинного обучения, изучающий глубокие нейронные сети.

Проще говоря: 1. если вы написали программу, играющую в шахматы, — это искусственный интеллект; 2. если она при этом обучается на базе партий гроссмейстеров или играя против самой себя — это машинное обучение; 3. а если обучается у неё при этом не что-нибудь, а глубокая нейронная сеть, — это глубокое обучение».

Как работает глубокое обучение?

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

И что с помощью него уже разработали?

Больше всего проектов с глубоким обучением применяется в распознавании фотографии или аудио, диагностике заболеваний. Например, оно уже используется в переводах Google с изображения: технология Deep Learning позволяет определить, есть ли на картинке буквы, а затем переводит их. Другой проект, который работает с фото, — система распознавания лиц под названием DeepFace. Она умеет распознавать человеческие лица с точностью 97,25% — примерно с той же точностью, что и человек.

В 2016 году Google выпустил WaveNet — систему, которая может имитировать человеческую речь. Для этого компания загрузила в систему миллионы минут записанных голосовых запросов, которые использовались в проекте OK Google, и после изучения, нейросеть смогла сама составить предложения с правильными ударениями, акцентом и без нелогичных пауз.

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

А почему глубинное обучение не начали внедрять раньше?

Раньше это было затратно, сложно и долго — нужны были мощные графические процессоры, видеокарты и объемы памяти. Бум глубинного обучения как раз связан с широким распространением графических процессоров, которые ускоряют и удешевляют вычисления, практически неограниченные возможности хранения данных и развитие технологии «больших данных».

Это прорывная технология, она все поменяет?

Об этом сложно сказать точно, мнения разнятся. С одной стороны, Google, Facebook и другие крупные компании уже вложили миллиарды долларов и настроены оптимистично. По их мнению, нейросети с глубинным обучением способны поменять технологическое устройство мира. Один из главных специалистов по машинному обучению — Эндрю Ынг — говорит: «Если человек может выполнить задачу в уме за секунду, скорее всего, в ближайшее время эта задача будет автоматизирована». Ынг называет машинное обучение «новым электричеством» — это техническая революция, и компании, которые ее проигнорируют, очень быстро обнаружат себя безнадежно отставшими от конкурентов.

С другой стороны, есть и скептики: они считают, что глубокое обучение — это модное слово или ребрендинг нейронных сетей. К примеру, старший преподаватель факультета компьютерных наук ВШЭ Сергей Бартунов считает, что этот алгоритм — лишь один из вариантов (и при этом не лучший) обучения нейросети, который быстро подхватили массовые издания и о которых теперь знают все.

Сергей Николенко, соавтор книги «Глубокое обучение»: «История искусственного интеллекта уже знала две „зимы“, когда за волной хайпа и завышенных ожиданий следовало разочарование. Оба раза, кстати, это было связано с нейронными сетями. Сначала в конце 1950-х решили, что перцептрон Розенблатта тут же приведёт к машинному переводу и осознающим себя компьютерам; но, конечно, не получилось из-за ограниченности железа, данных и отсутствия подходящих моделей.

А в конце 1980-х ту же ошибку совершили, когда разобрались, как обучать любые архитектуры нейронных сетей. Показалось, что вот он, золотой ключик, открывающий любые двери. Это уже был не такой уж наивный вывод: действительно, если взять нейронную сеть из конца 1980-х, механически сделать её больше (увеличить число нейронов) и обучить на современных наборах данных и современном „железе“, она будет очень даже неплохо работать! Но ни данных, ни „железа“ в то время не хватало, и революцию глубокого обучения пришлось отложить до конца нулевых годов.

Сейчас мы живём на третьей волне хайпа искусственного интеллекта. Закончится ли она третьей „зимой“ или созданием сильного ИИ — покажет только время».

Deep learning & Machine learning: в чем разница?

В чем разница между Deep learning и Machine learning? Насколько они похожи или отличаются друг от друга? Насколько они выгодны для бизнеса? Давайте разберемся!

Machine learning и Deep learning – это 2 подмножества искусственного интеллекта (ИИ), которые активно привлекают к себе внимание уже на протяжении двух лет. Если вы хотите получить простое объяснение их различий, то вы в правильном месте!

Прежде всего, давайте посмотрим на некоторые интересные факты и статистику Deep learning и Machine learning:

  • Оклад AI-специалиста приравнивается к стоимости Roll-Royce Ghost Series II 2017 года (согласно New York Times);
  • Есть ли вероятность потерять работу из-за прогресса AI? Согласно недавнему отчету PwC – возможно. Они предполагают, что примерно к 2030 г. 38% всех рабочих мест в США могут быть заменены искусственным интеллектом и технологиями автоматизации;
  • Первая AI-программа “The Logic Theorist” была создана в 1955 году компанией Newell & Simon (World Information Organization);
  • Исследователи прогнозируют, что к 2020 году 85% взаимодействия с клиентами будет осуществляться без участия человека (Gartner);
  • Рынок искусственного интеллекта или машинного обучения вырастет до 5,05 млрд долларов к 2020 году (Motley Fool);
Читать еще:  Инструктор групповых программ обучение москва

Любопытно? Теперь попытаемся разобраться, в чем на самом деле разница между Deep learning и Machine learning, и как можно использовать их для новых бизнес-возможностей.

Deep learning & Machine learning

Должно быть, вы имеете элементарное представление о Deep learning и Machine learning. Для чайников представляем несложные определения:

Machine learning для чайников:

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

Deep learning для чайников:

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

Взгляните на изображение выше. Это коллекция фотографий кошек и собак. Теперь предположим, что вы хотите идентифицировать изображения собак и кошек отдельно с помощью алгоритмов Machine learning и нейронных сетей Deep learning.

Deep learning & Machine learning: в каких случаях используется Machine learning

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

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

Deep learning & Machine learning: в каких случаях используется Deep learning

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

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

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

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

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

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

Что мы узнали:

  1. Основное различие между глубоким обучением и машинным обучением обусловлено тем, как данные представляются в систему. Алгоритмы машинного обучения почти всегда требуют структурированных данных, в то время как сети глубокого обучения полагаются на слои ANN (искусственные нейронные сети).
  2. Алгоритмы машинного обучения созданы для того, чтобы «учиться» действовать, понимая помеченные данные, а затем использовать их для получения новых результатов с большим количеством наборов данных. Однако, когда результат получается неверным, возникает необходимость их «доучивать».
  3. Сети глубокого обучения не требуют вмешательства человека, так как многоуровневые слои в нейронных сетях помещают данные в иерархии различных концепций, которые в конечном итоге учатся на собственных ошибках. Тем не менее, даже они могут быть ошибочными, если качество данных недостаточно хорошее.
  4. Данные все решают. Именно качество данных в конечном итоге определяет качество результата.

То, чего не было в примере, но стоит отметить:

  1. Поскольку алгоритмы машинного обучения требуют маркированных данных, они не подходят для решения сложных запросов, которые включают в себя огромное количество данных.
  2. Хоть в данном случае мы увидели применение Deep learning для решения незначительного запроса, — реальное применение нейронных сетей глубокого обучения происходит в гораздо большем масштабе. Фактически, учитывая количество слоев, иерархий и концепций, которые обрабатывают эти сети, Deep learning подходит только для выполнения сложных вычислений, а не простых.
  3. Оба эти подмножества ИИ так или иначе связаны с данными, что позволяет представлять собой определенную форму «интеллекта». Однако следует знать, что глубокое обучение требует гораздо больше данных, чем традиционный алгоритм машинного обучения. Причиной этого является то, что сети Deep learning могут идентифицировать различные элементы в слоях нейронных сетей только при взаимодействии более миллиона точек данных. Алгоритмы машинного обучения, с другой стороны, способны обучаться по заранее запрограммированным заданным критериям.

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

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

Когда использовать Deep learning в бизнесе?

  • Если у вас огромное количество данных;
  • Если вам приходится решать задачи, слишком сложные для машинного обучения;
  • Если у вас есть достаточно вычислительных ресурсов и возможность на управление оборудованием и программным обеспечением для обучения нейронных сетей Deep learning.

Когда использовать Machine learning в бизнесе?

  • Если у вас есть данные, которые можно структурировать и использовать для обучения алгоритмов Machine learning;
  • Если вы хотите использовать преимущества ИИ, чтобы обогнать конкурентов;
  • Лучшие решения Machine learning могут помочь автоматизировать различные бизнес-операции, включая проверку личности, рекламу, маркетинг и сбор информации, а также использовать большие возможности в будущем.

Подведем итоги:

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

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

Глубокое машинное обучение

Об авторе: Андрей Беляев, технический директор (CTO) исследовательской компании Neurodata Lab.

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

В чем разница между этими названиями?

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

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

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

Получается, что машинное обучение — это обучение ИИ

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

Машинное обучение — это подход, при котором алгоритм «учится» решать задачу. Один из самых простых примеров алгоритма, использующего машинное обучение, это классификация фотографий на те, где изображены кошки и те, где есть собаки:

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

Читать еще:  Обучение в специализированном классе

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

Такие алгоритмы можно научить решать задачи любой сложности?

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

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

А что насчет глубокого обучения? Чем оно отличается от машинного?

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

Нейронные сети? Как те, что в мозгу у человека?

Такое сравнение действительно часто используется. Нейросеть — это последовательность слоев, каждый из которых, в свою очередь, состоит из нейронов, и каждый выполняет свою роль. Есть нейроны (или группы нейронов), которые учатся выделять важные элементы на изображениях, например шерсть у кошки или собаки; есть те, которые учатся делать выводы, исходя из выделенных элементов — например, если у животного длинные лапы, то, скорее всего, это собака. Эти нейроны объединяются в группы (слои), а они превращаются в единую нейронную сеть.

И все же можно как-то сравнить процессы внутри нейросети с деятельностью мозга?

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

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

А как происходит процесс обучения?

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

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

Что значит «поощрять» и «штрафовать» нейросеть?

С математической точки зрения нейросеть — это функция с большим количеством параметров. Штрафование этой функции за неверное определения лица — это когда мы, упрощенно говоря, корректируем работу функции таким образом, чтобы в будущем она меньше ошибалась. Соответственно, поощрение нейросети — это когда мы ее просто не штрафуем.

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

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

Подписывайтесь и читайте нас в Яндекс.Дзене — технологии, инновации, эко-номика, образование и шеринг в одном канале.

Глубокое обучение (Deep Learning): краткий туториал

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

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

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

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

Машинное обучение — это попытка научить компьютеры самостоятельно обучаться на большом количестве данных вместо жестко постулированных правил.

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

Контролируемое и неконтролируемое обучение

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

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

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

Неконтролируемое обучение (обучение без учителя, unsupervised learning) — это машинное обучение с использованием наборов данных без определенной структуры.

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

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

Теперь вы подготовлены к изучению того, что такое глубокое обучение и как оно работает.

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

Разница между машинным и глубоким обучением

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

Мы хотим, чтобы наш сервис предсказывал цену на авиабилет по следующим входным данным:

  • аэропорт вылета;
  • аэропорт назначения;
  • дата отбытия;
  • авиакомпания.

Нейронные сети глубокого обучения

Давайте заглянем внутрь нашей модели. Как и у животных, искусственная нейронная сеть содержит взаимосвязанные нейроны. На диаграмме они представлены кругами:

Глубокая нейронная сеть (с двумя скрытыми слоями)

Нейроны сгруппированы в три различных типа слоев:

  • входной слой;
  • скрытый слой (слои);
  • выходной слой.

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

Скрытые слои выполняют математические вычисления со входными данными. Одна из задач при создании нейронных сетей — определение количества скрытых слоев и нейронов на каждом слое.

Слово «глубина» в термине «глубокое обучение» означает наличие более чем одного скрытого слоя.

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


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

Читать еще:  Вязание на спицах обучение с нуля

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

Каждый нейрон имеет функцию активации. Ее смысл трудно понять без привлечения математических рассуждений. Одной из ее целей является «стандартизация» данных на выходе из нейрона.

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

Обучение глубокой сети

Обучение нейросети — самая сложная часть глубокого обучения. Почему?

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

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

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

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

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

Как уменьшить значение функции потерь?

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

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

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

Для минимизации функции потерь нужно многократно перебирать данные. Именно поэтому нам требуется большая вычислительная мощность. Уточнение весов с помощью градиентного спуска выполняется автоматически. В этом и состоит магия глубокого обучения!

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

В сухом остатке:

  • Глубокое обучение использует нейронную сеть для воспроизведения интеллекта животных.
  • Существует три типа слоев нейронов в нейронной сети: входной слой, скрытый слой (слои) и выходной слой.
  • Связи между нейронами имеют вес, определяемый важностью элемента входных данных.
  • Для обучения глубокой нейронной сети необходим реально большой набор данных.
  • Итерационно сравнивая выходные результаты со включенными в набор данными, можно вычислить функцию потерь, указывающую, насколько сильно ошибается алгоритм.
  • После каждой итерации (epoch) веса между нейронами перераспределяются с помощью метода градиентного спуска для минимизации функции потерь.

Как работает глубокое обучение — просто о сложном

«Сегодня в сфере IT очень популярны такие технологии, как искусственный интеллект (ИИ) и машинное обучение. Словосочетание «искусственный интеллект» используется направо и налево. Среди людей, обучающихся на разработчиков, очень много тех, кто хотел бы изучать науку об ИИ. Директора многих компаний хотят внедрять ИИ в свои сервисы. Но зачастую многие из них даже не понимают, что такое искусственный интеллект», — пишут FreeCodeCamp.

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

Для понимания материала не требуются глубокие математические знания.

Немного о терминологии

Прежде всего, нужно разобраться в основных терминах.

Искусственный интеллект и машинное обучение

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

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

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

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

Обучение с учителем и обучение без учителя

При использовании обучения с учителем задаются определенные входные и выходные данные.

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

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

Обучение без учителя подразумевает обучение ИИ на основе наборов данных без определенной структуры.

Во время обучения без учителя ИИ осуществляет логическую классификацию данных.

В качестве примера можно привести прогнозирование поведения пользователей для интернет-магазина. Тренировка ИИ происходит без входов и выходов.

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

Глубокое обучение — принцип работы

Глубокое обучение — один из методов машинного обучения. С его помощью можно обучать ИИ прогнозированию выходов на основе набора входных данных. Здесь применяется обучение как с учителем, так и без учителя.

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

Сервис должен спрогнозировать стоимость на основе следующих входных данных (обратные рейсы не учитываются):

  • Начальный пункт полета;
  • Конечный пункт полета;
  • Дата вылета;
  • Авиакомпания.

Нейросети

Что происходит в «мозгу» ИИ?

Так же, как в мозгу живого существа, у ИИ есть нейроны. Они обозначены в виде кружков. Нейроны связаны между собой.

Есть три вида слоев нейронов:

  • Входной слой
  • Скрытые слои
  • Выходной слой

Входной слой получает входные данные. В нем 4 нейрона: начальный пункт полета, конечный пункт полета, дата вылета, авиакомпания. От этого слоя входные данные транслируются на первый скрытый слой.

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

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

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

Как именно вычисляется прогноз стоимости?

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

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

У каждого нейрона есть функция активации. Если простыми словами, одна из ее задач – «стандартизация» выходных данных.

После того, как входные данные прошли через все слои нейросети, выходной слой выдает выходные данные.

Как видно, все довольно просто.

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

Обучение ИИ – сложнейший этап глубокого обучения.

Во-первых, набор данных должен быть огромным.

Во-вторых, ресурсы для вычислений должны быть очень большими.

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

Для обучения машины потребуется задать входы из набора данных и сравнить полученные выходы с выходами из набора данных. Поначалу выходы будут неверными.

После обработки, можно создать функцию стоимости, которая показывает, насколько неверными были выходы ИИ в сравнении с реальными выходами.

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

Как сократить функцию стоимости?

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

Лучше применить метод под названием «градиентный спуск».

С его помощью можно найти минимум функции стоимости.

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

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

Изменение весов с использованием градиентного спуска происходит автоматически. В этом заключается магия глубокого обучения!

Обученный ИИ сайта по оценке стоимости авиарейсов способен прогнозировать цены на будущее.

Где узнать дополнительную информацию?

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

Для изучения технических аспектов глубокого обучения стоит пройти соответствующие онлайн-курсы.

Deep Learning Specialization, созданный Andrew Ng – на сегодня один из лучших курсов по глубокому обучению. Без получения сертификата его можно прослушать бесплатно.

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector
×
×