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

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости

Новостная лента форума ailab.ru


--------— Не верь всему , что ты видишь эт уже--— чье-то г-лубинное обучение))-----------------Глубокое обучение

----------+---

Глубокое обучение (глубинное обучение; англ. Deep learning) — совокупность методов машинного обучения (с учителем, с частичным привлечением учителя, без учителя, с подкреплением), основанных на обучении представлениям (англ. feature/representation learning), а не специализированным алгоритмам под конкретные задачи. Многие методы глубокого обучения были известны ещё в 1980-е (и даже ранее[1]), но результаты были невпечатляющими[2], пока продвижения в теории искусственных нейронных сетей (предобучение нейросетей с помощью специального случая ненаправленной графической модели, так называемой ограниченной машины Больцмана) и вычислительные мощности середины 2000-х (прежде всего, графических процессоров Nvidia, а в настоящее время и тензорных процессоров Google) не позволили создавать сложные технологические архитектуры нейронных сетей, обладающие достаточной производительностью и позволяющие решать широкий спектр задач, не поддававшихся эффективному решению ранее, например, в компьютерном зрении, машинном переводе, распознавании речи, причём качество решения во многих случаях теперь сопоставимо, а в некоторых случаях превосходит эффективность «белковых» экспертов[-------------------------------------------------------

-Несмотря на то что термин «глубокое обучение» появился в научном сообществе машинного обучения только в 1986 году после работы Рины Дехтер[4], первый общий рабочий алгоритм для глубоких многослойных перцептронов прямого распространения был опубликован в книге советских учёных Алексея Григорьевича Ивахненко и Валентина Григорьевича Лапы «Кибернетические предсказывающие устройства»[5].

Другие глубокие архитектуры, в особенности те, которые специализируются на распознавании образов, берут своё начало с неокогнитрона, разработанного Кунихико Фукусимой в 1980 году. В 1989 году Яну Лекуну удалось использовать алгоритм обратного распространения ошибки для обучения глубоких нейросетей для решения задачи распознавания рукописных ZIP-кодов[6]. Несмотря на успешный опыт, для обучения модели потребовалось три дня, что существенно ограничивало применимость этого метода. Низкая скорость обучения связана со многими факторами, включая проблему исчезающих градиентов из-за большого разброса масштабов обучаемых параметров, которую в 1991 году анализировали Йорген Шмидхубер и Сепп Хохрайтер. Из-за этих проблем нейронные сети в 1990-х годах уступили место методу опорных векторов.

К 1991 году такие системы использовались для распознавания изолированных двумерных рукописных цифр, а распознавание трёхмерных объектов осуществлялось путём сопоставления двумерных изображений с трёхмерной объектной моделью, изготовленной вручную. В 1992 году создана модель кресцентрона[7][8][9] для распознавания трёхмерных объектов в загромождённых сценах.

В 1994 году Андре де Карвальо, вместе с Майком Фэйрхерстом и Дэвидом Биссетом, опубликовал экспериментальные результаты многослойной булевой нейронной сети, также известной как невесомая нейронная сеть, состоящая из трехуровневого самоорганизующегося модуля нейронной сети для выделения признаков (SOFT), а затем модуль многоуровневой классификации нейронной сети (GSN). Каждый модуль прошел независимое друг от друга обучение. Каждый слой в модуле извлекал объекты с растущей сложностью относительно предыдущего слоя.[10]

В 1995 году Брендан Фрей продемонстрировал, что можно обучить (в течение двух дней) сеть, содержащую шесть полностью соединенных слоев и несколько сотен скрытых юнитов, используя алгоритм сна-бодрствования, разработанный совместно с Питером Даяном и Хинтоном[11]. Многие факторы способствуют медленной скорости, включая проблему исчезающего градиента, проанализированную в 1991 году Зеппом Хохрайтером[12][13].

Более простые модели, которые используют ручные работы, специфичные для конкретной задачи, такие как фильтры Габора и метод опорных векторов (МОВ), были популярным выбором в 1990-х и 2000-х годах из-за вычислительных затрат искусственной нейронной сети (ИНС, англ. ANN) и отсутствия понимания того, как мозг связывает свои биологические сети.

Как поверхностное, так и глубокое обучение (например, рекуррентные сети) ИНС изучалась в течение многих лет[14][15][16]. Эти методы никогда не превосходили неоднородную смешанную Гауссову модель и скрытую модель Маркова, основанную на генеративных моделях речи, обученных дискриминационно[17]. Были проанализированы ключевые трудности, в том числе уменьшение градиента[12] и слабая временная корреляционная структура в нейронных прогностических моделях[18][19]. Дополнительными трудностями были отсутствие обучающих данных и ограниченная вычислительная мощность.

Глубокое обучение приобрело популярность в середине 2000-х годов, когда всё сошлось воедино: компьютеры стали достаточно мощными, чтобы обучать большие нейронные сети (вычисления научились делегировать графическим процессорам, что ускорило процесс обучения на порядок), наборы данных стали достаточно объёмными, чтобы обучение больших сетей имело смысл, а в теории искусственных нейронных сетей произошло очередное продвижение — статьи Хинтона, Осиндеро и Тэ[20], а также Бенджио[21], в которых авторы показали, что можно эффективно предобучать многослойную нейронную сеть, если обучать каждый слой отдельно при помощи ограниченной машины Больцмана, а затем дообучать при помощи метода обратного распространения ошибки.

Революция в глубоком обучении[править | править код]

В 2012 году команда под руководством Джорджа Э. Даля выиграла Конкурс "Merck Molecular Activity Challenge", используя многозадачные глубокие нейронные сети для прогнозирования биомолекулярной мишени одного препарата.[22] В 2014 году группа Хохрейтера использовала глубокое обучение для выявления нецелевых и токсических эффектов химических веществ, присутствующих в окружающей среде, в питательных веществах, продуктах домашнего обихода и лекарствах, и выиграла «Tox21 Data Challenge» от Национального института здравоохранения США, Управления по санитарному надзору за качеством пищевых продуктов и медикаментов и NCATS.[23]

Концептуальное изображение глубокого обучения в виде подмножества машинного обучения, а машинного обучения как подмножество искусственного интеллекта (ИИ)

Значительное развитие в распознавании изображений или объектов ощущалось в период с 2011 по 2012 годы. Хотя сверточные нейронные сети (СНН), обученные обратному распространению, существовали в течение десятилетий, и GPU внедряли нейронные сети в течение многих лет, включая СНН, быстрые реализации СНН на GPU использовали для развития компьютерного зрения. В 2011 году этот подход впервые позволил добиться сверхчеловеческой производительности в конкурсе визуального распознавания образов. Также в 2011 году он выиграл конкурс рукописного ввода ICDAR, а в мае 2012 года - конкурс сегментации изображений ISBI.[24] До 2011 года СНН не играли основной роли на конференциях по компьютерному зрению, но в июне 2012 года доклад Циресана[25] на ведущей конференции CVPR показал, как максимальное объединение СНН на GPU может значительно улучшить многие результаты бенчмарков. В октябре 2012 г. аналогичная система была разработана Крижевским[26], коллектив которого выиграл крупномасштабный конкурс ImageNet со значительным преимуществом по сравнению с методами поверхностного машинного обучения. В ноябре 2012 года команда Циресана также выиграла конкурс ICPR по анализу больших медицинских изображений для выявления рака, а в следующем году MICCAI Grand Challenge по той же теме.[27] В 2013 и 2014 годах частота ошибок в задаче ImageNet с использованием глубокого обучения была еще снижена вследствие аналогичной тенденции в широкомасштабном распознавании речи. Стивен Вольфрам в рамках проекта по идентификации изображений опубликовал эти улучшения.[28]

Классификация изображений была затем расширена до более сложной задачи генерации описаний (подписей) для изображений, часто в виде комбинации СНН и LSTM.[29][30][31][32]

Некоторые исследователи считают, что победа ImageNet в октябре 2012 года положила начало «революции глубокого обучения», которая изменила индустрию искусственного интеллекта.[33]

В марте 2019 года Йошуа Бенжио, Джеффри Хинтон и Янн ЛеКун были награждены премией Тьюринга за концептуальные и инженерные прорывы, которые сделали глубокие нейронные сети критическим компонентом вычислений.

Нейронные сети[править | править код]

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

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

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

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

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

Начиная с 2017 года, нейронные сети обычно имеют от нескольких тысяч до нескольких миллионов единиц и миллионы соединений. Несмотря на то, что это число на несколько порядков меньше, чем число нейронов в человеческом мозге, эти сети могут выполнять множество задач на уровне, превышающем уровень людей (например, распознавание лиц, игра в «Go»)[34].

Глубинные нейронные сети[править | править код]

Глубинная нейронная сеть (ГНС, англ. DNN - Deep neural network) - это искусственная нейронная сеть (ИНС) с несколькими слоями между входным и выходным слоями[35][36]. ГНС находит корректный метод математических преобразований, чтобы превратить исходящие данные в выходящие, независимо от линейной или нелинейной корреляции. Сеть продвигается по слоям, рассчитывая вероятность каждого выхода. Например, ГНС, которая обучена распознавать породы собак, пройдет по заданному изображению и вычислит вероятность того, что собака на изображении относится к определенной породе. Пользователь может просмотреть результаты и выбрать вероятности, которые должна отображать сеть (выше определенного порога, например), и вернуть в сеть предложенную метку. Каждое математическое преобразование считается слоем, а сложные ГНС имеют много слоев, отсюда и название «глубинные» или «глубокие» сети.

ГНС могут моделировать сложные нелинейные отношения. Архитектуры ГНС генерируют композиционные модели, в которых объект выражается в виде многоуровневой композиции примитивов[37]. Дополнительные уровни позволяют составлять элементы из более низких уровней, потенциально моделируя сложные данные с меньшим количеством единиц, чем мелкая сеть с аналогичными показателями[35].

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

ГНС, как правило, представляют собой сети с прямой связью, в которых данные передаются от входного уровня к выходному уровню без обратной связи. Сначала ГНС создает карту виртуальных нейронов и назначает случайные числовые значения или «веса» соединениям между ними. Веса и входные данные умножаются и возвращают выходной сигнал от 0 до 1. Если сеть не точно распознала конкретный шаблон, алгоритм будет корректировать весовые коэффициенты[38]. Таким образом, алгоритм может сделать определенные параметры более значимыми, пока он не определит правильные математические манипуляции для полной обработки данных.

Определения[править | править код]

Глубокое обучение характеризуется как класс алгоритмов машинного обучения, который[39]:

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

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

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

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

Все определения констатируют

наличие нескольких слоев нелинейной обработки

обучение с учителем или без учителя признаков каждого слоя, формируя иерархию от низкого до высокого уровня[39].

Состав конкретных нелинейных слоёв зависит от решаемой проблемы. Используются как скрытые слои нейронной сети, так и слои сложных логических преобразований[40]. Система может включать скрытые переменные, организованные послойно в глубоких генеративных моделях, таких как узлы в глубокой сети доверия и глубокой ограниченной машине Больцмана.

Алгоритмы глубокого обучения противопоставлены алгоритмам неглубокого обучения по количеству параметризованных преобразований, с которыми сталкивается сигнал, распространяющийся от входного слоя к выходному слою, где параметризованным преобразованием считается такой блок обработки данных, у которого есть обучаемые параметры, такие как веса или пороги[41]. Цепочка преобразований от входа к выходу называется CAP — путём передачи ответственности (англ. credit assignment path, CAP). CAP описывают потенциальные причинные связи вдоль сети от входа к выходу, при этом путь в разных ветвях может иметь разную длину. Для нейронной сети прямого распространения (feedforward) глубина CAP не отличается от глубины сети и равна количеству скрытых слоев плюс один (выходной слой также параметризован). Для рекуррентных нейронных сетей, в которых сигнал может перескакивать через слои минуя промежуточные, CAP из-за обратной связи потенциально неограничен в длине. Не существует универсально согласованного порога глубины деления неглубокого обучения от глубокого обучения, но обычно считается, что глубокое обучение характеризуется несколькими нелинейными слоями (CAP > 2). Йорген Шмидхубер выделяет также «очень глубокое обучение», когда CAP > 10[41].

Содержание[править | править код]

Глубокое обучение — это алгоритмы машинного обучения для моделирования высокоуровневых абстракций с применением многочисленных нелинейных преобразований[39][40][41][42][43].

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

Определённые системы обучения без учителя, такие как ограниченная машина Больцмана для предварительного обучения, автокодировщик, глубо

Комментарии: