Лекция
Привет, Вы узнаете о том , что такое глубокое обучение, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое глубокое обучение, глубинное обучение, deep learning , настоятельно рекомендую прочитать все из категории Вычислительный интеллект.
глубокое обучение ( глубинное обучение ; англ. Deep learning) — совокупность методов машинного обучения (с учителем, с частичным привлечением учителя, без учителя, с подкреплением), основанных на обучении представлениям (англ. feature/representation learning), а не специализированным алгоритмам под конкретные задачи. Многие методы глубокого обучения были известны еще в 1980-е (и даже ранее ), но результаты были невпечатляющими , пока продвижения в теории искусственных нейронных сетей (предобучение нейросетей с помощью специального случая ненаправленной графической модели, так называемой ограниченной машины Больцмана) и вычислительные мощности середины 2000-х годов (в том числе использующие графические ускорители, программируемые пользователем вентильные матрицы и различные формы нейронных процессоров) не позволили создавать сложные технологические архитектуры нейронных сетей, обладающие достаточной производительностью и позволяющие решать широкий спектр задач, не поддававшихся эффективному решению ранее, например, в компьютерном зрении, машинном переводе, распознавании речи, причем качество решения во многих случаях теперь сопоставимо, а в некоторых случаях превосходит эффективность человека.
Несмотря на то что термин «глубокое обучение» появился в научном сообществе машинного обучения только в 1986 году после работы Рины Дехтер , первый общий рабочий алгоритм для глубоких многослойных перцептронов прямого распространения был опубликован в книге советских ученых Алексея Григорьевича Ивахненко и Валентина Григорьевича Лапы «Кибернетические предсказывающие устройства» .
Другие глубокие архитектуры, в особенности те, которые специализируются на распознавании образов, берут свое начало с неокогнитрона, разработанного Кунихико Фукусимой в 1980 году. В 1989 году Яну Лекуну удалось использовать алгоритм обратного распространения ошибки для обучения глубоких нейросетей для решения задачи распознавания рукописных ZIP-кодов . Несмотря на успешный опыт, для обучения модели потребовалось три дня, что существенно ограничивало применимость этого метода. Низкая скорость обучения связана со многими факторами, включая проблему исчезающих градиентов из-за большого разброса масштабов обучаемых параметров, которую в 1991 году анализировали Йорген Шмидхубер и Сепп Хохрайтер. Из-за этих проблем нейронные сети в 1990-х годах уступили место методу опорных векторов.
К 1991 году такие системы использовались для распознавания изолированных двумерных рукописных цифр, а распознавание трехмерных объектов осуществлялось путем сопоставления двумерных изображений с трехмерной объектной моделью, изготовленной вручную. В 1992 году создана модель кресцептрона для распознавания трехмерных объектов в загроможденных сценах.
В 1994 году Андре де Карвальо, вместе с Майком Фэйрхерстом и Дэвидом Биссетом, опубликовал экспериментальные результаты многослойной булевой нейронной сети, также известной как невесомая нейронная сеть, состоящая из трехуровневого самоорганизующегося модуля нейронной сети для выделения признаков (SOFT), а затем модуль многоуровневой классификации нейронной сети (GSN). Каждый модуль прошел независимое друг от друга обучение. Каждый слой в модуле извлекал объекты с растущей сложностью относительно предыдущего слоя.
В 1995 году Брендан Фрей продемонстрировал, что можно обучить (в течение двух дней) сеть, содержащую шесть полностью соединенных слоев и несколько сотен скрытых юнитов, используя алгоритм сна-бодрствования, разработанный совместно с Питером Даяном и Хинтоном[11]. Многие факторы способствуют медленной скорости, включая проблему исчезающего градиента, проанализированную в 1991 году Зеппом Хохрайтером.
Более простые модели, которые используют ручные работы, специфичные для конкретной задачи, такие как фильтры Габора и метод опорных векторов (МОВ), были популярным выбором в 1990-х и 2000-х годах из-за вычислительных затрат искусственной нейронной сети (ИНС, англ. ANN) и отсутствия понимания того, как мозг связывает свои биологические сети.
Как поверхностное, так и глубокое обучение (например, рекуррентные сети) ИНС изучалась в течение многих лет. Эти методы никогда не превосходили неоднородную смешанную Гауссову модель и скрытую модель Маркова, основанную на генеративных моделях речи, обученных дискриминационно[17]. Были проанализированы ключевые трудности, в том числе уменьшение градиента[12] и слабая временная корреляционная структура в нейронных прогностических моделях . Дополнительными трудностями были отсутствие обучающих данных и ограниченная вычислительная мощность.
Глубокое обучение приобрело популярность в середине 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 г. аналогичная система была разработана Крижевским , коллектив которого выиграл крупномасштабный конкурс ImageNet со значительным преимуществом по сравнению с методами поверхностного машинного обучения. В ноябре 2012 года команда Циресана также выиграла конкурс ICPR по анализу больших медицинских изображений для выявления рака, а в следующем году MICCAI Grand Challenge по той же теме. ] В 2013 и 2014 годах частота ошибок в задаче ImageNet с использованием глубокого обучения была еще снижена вследствие аналогичной тенденции в широкомасштабном распознавании речи. Стивен Вольфрам в рамках проекта по идентификации изображений опубликовал эти улучшения.
Классификация изображений была затем расширена до более сложной задачи генерации описаний (подписей) для изображений, часто в виде комбинации СНН и LSTM
Некоторые исследователи считают, что победа ImageNet в октябре 2012 года положила начало «революции глубокого обучения», которая изменила индустрию искусственного интеллекта.
В марте 2019 года Йошуа Бенжио, Джеффри Хинтон и Янн ЛеКун были награждены премией Тьюринга за концептуальные и инженерные прорывы, которые сделали глубокие нейронные сети критическим компонентом вычислений.
Искусственные нейронные сети (ИНС) — это вычислительные системы, основанные на принципах биологических нейронных сетей, составляющих мозг животных. Такие системы учатся (постепенно улучшают свои способности) выполнять задачи, как правило, без программирования для решения конкретных задач. Например, при распознавании изображений кошек они могут научиться распознавать изображения, содержащие кошек, анализируя примеры изображений, которые были вручную помечены как «кошка» или «нет кошки», и используя результаты анализа для идентификации кошек на других изображениях. Наибольшее применение ИНС нашли в программных приложениях, которые трудно выразить традиционным компьютерным алгоритмом, использующим программирование на основе правил.
ИНС основаны на наборе связанных единиц, называемых искусственными нейронами (аналог биологических нейронов в биологическом мозге). Каждое соединение (синапс) между нейронами может передавать сигнал другому нейрону. Принимающий (постсинаптический) нейрон может обрабатывать сигнал (сигналы) и затем сигнализировать о подключенных к нему нейронах. Нейроны могут иметь состояние, обычно представляемое действительными числами, обычно между 0 и 1. Нейроны и синапсы могут также иметь вес, который изменяется в процессе обучения, что может увеличивать или уменьшать силу сигнала, который он посылает далее.
Как правило, нейроны организованы в слои. Разные слои могут выполнять различные виды преобразований. Сигналы проходят от первого (входного) до последнего (выходного) слоя, возможно, после многократного прохождения слоев.
Первоначальная цель нейросетевого подхода состояла в том, чтобы решать задачи так же, как это делает человеческий мозг. Со временем внимание сосредоточилось на подборе определенных интеллектуальных способностей, что привело к отклонениям от биологии, таким как обратное распространение, или передаче информации в обратном направлении и настройке сети для отражения этой информации.
Нейронные сети используются для решения различных задач, включая машинное зрение, распознавание речи, машинный перевод, фильтрацию в социальных сетях, видеоигры и медицинскую диагностику.
Начиная с 2017 года, нейронные сети обычно имеют от нескольких тысяч до нескольких миллионов единиц и миллионы соединений. Об этом говорит сайт https://intellect.icu . Несмотря на то, что это число на несколько порядков меньше, чем число нейронов в человеческом мозге, эти сети могут выполнять множество задач на уровне, превышающем уровень людей (например, распознавание лиц, игра в «Go»).
Глубинная нейронная сеть (ГНС, англ. DNN — Deep neural network) — это искусственная нейронная сеть (ИНС) с несколькими слоями между входным и выходным слоями. ГНС находит корректный метод математических преобразований, чтобы превратить исходящие данные в выходящие, независимо от линейной или нелинейной корреляции. Сеть продвигается по слоям, рассчитывая вероятность каждого выхода. Например, ГНС, которая обучена распознавать породы собак, пройдет по заданному изображению и вычислит вероятность того, что собака на изображении относится к определенной породе. Пользователь может просмотреть результаты и выбрать вероятности, которые должна отображать сеть (выше определенного порога, например), и вернуть в сеть предложенную метку. Каждое математическое преобразование считается слоем, а сложные ГНС имеют много слоев, отсюда и название «глубинные» или «глубокие» сети.
ГНС могут моделировать сложные нелинейные отношения. Архитектуры ГНС генерируют композиционные модели, в которых объект выражается в виде многоуровневой композиции примитивов. Дополнительные уровни позволяют составлять элементы из более низких уровней, потенциально моделируя сложные данные с меньшим количеством единиц, чем мелкая сеть с аналогичными показателями.
Глубокая архитектура включает в себя множество вариантов нескольких основных подходов. Каждая архитектура нашла успех в определенных областях. Не всегда возможно сравнить производительность нескольких архитектур, если они не были оценены на одних и тех же наборах данных.
ГНС, как правило, представляют собой сети с прямой связью, в которых данные передаются от входного уровня к выходному уровню без обратной связи. Сначала ГНС создает карту виртуальных нейронов и назначает случайные числовые значения или «веса» соединениям между ними. Веса и входные данные умножаются и возвращают выходной сигнал от 0 до 1. Если сеть не точно распознала конкретный шаблон, алгоритм будет корректировать весовые коэффициенты[38]. Таким образом, алгоритм может сделать определенные параметры более значимыми, пока он не определит правильные математические манипуляции для полной обработки данных.
Глубокое обучение характеризуется как класс алгоритмов машинного обучения, который:
Все определения констатируют
Состав конкретных нелинейных слоев зависит от решаемой проблемы. Используются как скрытые слои нейронной сети, так и слои сложных логических преобразований[40]. Система может включать скрытые переменные, организованные послойно в глубоких генеративных моделях, таких как узлы в глубокой сети доверия и глубокой ограниченной машине Больцмана.
Алгоритмы глубокого обучения противопоставлены алгоритмам неглубокого обучения по количеству параметризованных преобразований, с которыми сталкивается сигнал, распространяющийся от входного слоя к выходному слою, где параметризованным преобразованием считается такой блок обработки данных, у которого есть обучаемые параметры, такие как веса или пороги[41]. Цепочка преобразований от входа к выходу называется CAP — путем передачи ответственности (англ. credit assignment path, CAP). CAP описывают потенциальные причинные связи вдоль сети от входа к выходу, при этом путь в разных ветвях может иметь разную длину. Для нейронной сети прямого распространения (feedforward) глубина CAP не отличается от глубины сети и равна количеству скрытых слоев плюс один (выходной слой также параметризован). Для рекуррентных нейронных сетей, в которых сигнал может перескакивать через слои минуя промежуточные, CAP из-за обратной связи потенциально неограничен в длине. Не существует универсально согласованного порога глубины деления неглубокого обучения от глубокого обучения, но обычно считается, что глубокое обучение характеризуется несколькими нелинейными слоями (CAP > 2). Йорген Шмидхубер выделяет также «очень глубокое обучение», когда CAP > 10[41].
1.Нефть и газ
Глубокое обучение позволяет определить лучший способ оптимизации операций. Например, он может преобразовывать сейсмические карты в трехмерные карты для повышения точности прогнозов коллектора. Глубокое обучение помогает анализировать огромные объемы данных, включая давление насоса, температуру и скорость потока.
2.Строительство
Многие строительные компании используют модели глубокого обучения, подобные AlphaGo, для моделирования проектов и поиска оптимальной последовательности укладки труб и бетона. Глубокое обучение позволяет находить самый быстрый и эффективный способ создания проектов.
3.Финансы
Крупнейшие банки используют глубокое обучение для электронных открытий. Например, JPMorgan Chase использует преимущества глубокого обучения для обеспечения соответствия государственным нормативным требованиям и обнаружения инсайдерской торговли.
4.Информационная безопасность
Когда дело касается вредоносных программ, вредоносных URL-адресов и обнаружения кода, у глубокого обучения нет конкурентов.
5.Здравоохранение
Команды Калифорнийского университета в Лос-Анджелесе создали интеллектуальный микроскоп, который генерирует многомерные наборы данных для обучения систем глубокого обучения обнаружению раковых клеток с вероятностью обнаружения 99,9%.
Социальные медиа
Pinterest использует инструмент визуального поиска, чтобы находить визуально похожие объекты. Компания воспользовалась преимуществами глубокого обучения, чтобы научить систему распознавать изображения, а затем рекомендовать их пользователям.
Глубокое обучение — это алгоритмы машинного обучения для моделирования высокоуровневых абстракций с применением многочисленных нелинейных преобразований.
В первую очередь к глубинному обучению относятся следующие методы и их вариации:
Комбинируя эти методы, создаются сложные системы, соответствующие различным задачам искусственного интеллекта.
Глубокое обучение является апробированной выборкой из широкого семейства методов машинного обучения для представлений данных, наиболее соответствующих характеру задачи. Изображение, например, может быть представлено многими способами, такими как вектор интенсивности значений на пиксель, или (в более абстрактной форме) как множество примитивов, областей определенной формы, и т. д. Удачные представления данных облегчают решение конкретных задач — например, распознавания лиц и выражений лица[46]). В системах глубокого обучения автоматизирует сам процесс выбора и настройки признаков, проводя обучение признаков[en] без учителя или с частичным привлечением учителя, используя для этого эффективные алгоритмы и иерархическое извлечение признаков.
Исследования в этой области позволили усовершенствовать модели работы с большими объемами немаркированных данных. Некоторые подходы возникли в результате достижений в области нейронаук, успехов интерпретации обработки информации, построения коммуникационных моделей в нервной системе, таких как нейронное кодирование, связанное с определением отношения между стимулом и нейронными реакциями и взаимосвязи электрической активности между нейронами в головном мозге[.
Системы глубокого обучения нашли применение в таких областях, как компьютерное зрение, распознавание речи, обработка естественного языка, аудиораспознавание, биоинформатика, где для ряда задач были продемонстрированы существенно лучшие результаты, чем ранее.
Несмотря на успехи использования глубинного обучения, у него все же есть фундаментальное ограничение: модели глубинного обучения ограничены в том, что они могут представлять, и большинство программ нельзя выразить в виде непрерывного геометрического морфинга многообразия данных[49].
Осталось, однако, и скептическое представление, что глубокое обучение — не что иное, как модное слово или ребрендинг для нейронных сетей[50][51].
Наименование | Разработчик | Лицензия[a] | Открытое | Платформа | Язык | Интерфейс | Поддержка OpenMP | Поддержка OpenCL | Поддержка CUDA | Автоматическое дифференцирование | Предварительное обучение | рекуррентные сети | сверточные сети | Машина Больцмана/Глубокая сеть доверия | Параллельные вычисления |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Apache SINGA (англ.)русск. | Apache Incubator | Apache 2.0 | Да | Linux, Mac OS X, Windows | C++ | Python, C++, Java | Нет | Да | Да | Неизвестно | Да | Да | Да | Да | Да |
Caffe | Berkeley Vision and Learning Center | Лицензия BSD | Да | Linux, Mac OS X, Windows | C++ | Python, MATLAB | Да | В разработке | Да | Да | Да | Да | Да | Нет | Неизвестно |
Deeplearning4j | Группа Skymind, Adam Gibson | Apache 2.0 | Да | Linux, Mac OS X, Windows, Android (Кроссплатформенность) | Java | Java, Scala, Clojure, Python (Keras) | Да | Нет | Да | Вычислительный граф | Да | Да | Да | Да | Да |
Dlib (англ.)русск. | Девис Кинг | Лицензия Boost | Да | Кроссплатформенность | C++ | Python, C++ | Да | Нет | Да | Да | Да | Нет | Да | Да | Да |
Keras | Франсуа Шолле | Лицензия MIT | Да | Linux, Mac OS X, Windows | Python | Python | Через Theano | В стадии разработки через Theano, планируется через TensorFlow | Да | Да | Да | Да | Да | Да | Да |
Microsoft Cognitive Toolkit | Microsoft Research | Лицензия MIT[10] | Да | Windows, Linux[11] (OSX в планах через Docker) | C++ | Python, C++, командная строка,[12] BrainScript[13] (.NET в планах[14]) | Да[15] | Нет | Да | Да | Да[16] | Да[17] | Да[17] | Нет[18] | Да[19] |
MXNet (англ.)русск. | Distributed (Deep) Machine Learning Community | Apache 2.0 | Да | Linux, Mac OS X, Windows,[20][21] AWS, Android,[22] iOS, JavaScript[23] | малая корневая библиотека на C++ | C++, Python, Julia, Matlab, JavaScript, Go, R, Scala, Perl | Да | В планах[24] | Да | Да[25] | Да[26] | Да | Да | Да | Да[27] |
Neural Designer (англ.)русск. | Artelnics | Проприетарное | Нет | Linux, Mac OS X, Windows | C++ | Графический интерфейс пользователя | Да | Нет | Нет | Неизвестно | Неизвестно | Нет | Нет | Нет | Неизвестно |
OpenNN | Artelnics | GNU LGPL | Да | Кроссплатформенность | C++ | C++ | Да | Нет | Нет | Неизвестно | Неизвестно | Нет | Нет | Нет | Неизвестно |
TensorFlow | Команда Google Brain | Apache 2.0 | Да | Linux, Mac OS X, Windows[28] | C++, Python | Python, C/C++, Java, Go | Нет | В планах[29][30] | Да | Да[31] | Да[32] | Да | Да | Да | Да |
Theano | Монреальский университет | Лицензия BSD | Да | Кроссплатформенность | Python | Python | Да | В разработке [33] | Да | Да[34][35] | Через зоопарк моделей Lasagne[36] | Да | Да | Да | Да[37] |
Torch | Ронан Коллобер, Корай Кавукчоглу, Клемент Фарабет | Лицензия BSD | Да | Linux, Mac OS X, Windows,[38] Android,[39] iOS | C, Lua | Lua, LuaJIT,[40] C, библиотека утилит для C++/OpenCL[41] | Да | Внешняя реализация [42][43] | Да[44][45] | Через Autograd Твиттера[46] | Да[47] | Да | Да | Да | Да[48] |
Mathematica | Wolfram Research | Проприетарное | Нет | Windows, Mac OS X, Linux, Облачные вычисления | C++ | командная строка, Java, C++ | Нет | Да | Да | Да | Да[49] | Да | Да | Да | Да |
Данная статья про глубокое обучение подтверждают значимость применения современных методик для изучения данных проблем. Надеюсь, что теперь ты понял что такое глубокое обучение, глубинное обучение, deep learning и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Вычислительный интеллект
Комментарии
Оставить комментарий
Вычислительный интеллект
Термины: Вычислительный интеллект