Изменения

Перейти к: навигация, поиск

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

12 391 байт добавлено, 19:17, 4 сентября 2022
м
rollbackEdits.php mass rollback
'''Глубокое обучение''' (англ. deep learning) {{---}} совокупность широкого семейства методов машинного обучения, основанных на обучении представлениям, а не специализированным алгоритмам под конкретные задачи[[Файл:Ml_areas. jpg|thumb|250px|Глубокое обучение может быть с учителем, с частичным привлечением учителя, без учителя и с подкреплением. Несмотря на то, что данный раздел как часть машинного обучения появился еще в 1980х, до недавнего времени его применение было сильно ограничено из-за недостака вычислительных мощностей существовавших компьютеров. Ситуация изменилась только в середине 2000х.]]
'''Глубокое обучение''' (англ. deep learning) {{---}} совокупность широкого семейства методов машинного обучения, основанных на имитации работы человеческого мозга в процессе обработки данных и создания паттернов, используемых для принятия решений<ref>[https://www.investopedia.com/terms/d/deep-learning.asp Deep Learning, Investopedia]</ref>. Как правило, глубокое обучение предназначено для работы с большими объемами данных и использует сложные алгоритмы для обучения модели<ref>[https://www.quora.com/What-is-the-difference-between-Neural-Networks-and-Deep-Learning The difference between neural networks and deep learning]</ref>. На больших датасетах глубокое обучение показывает более высокую точность результатов в сравнении с традиционным машинным обучением. Зависимость производительности (качества результатов) от объема данных представлена на рисунке ниже. {|align="center" |-valign="top" |[[Файл:Perfm_data.jpg|border|450px|thumb|left|Зависимость производительности от объема данных.]] |} Несмотря на то, что данный раздел машинного обучения появился еще в 1980-х, до недавнего времени его применение было сильно ограничено из-за недостатка вычислительных мощностей существовавших компьютеров. Ситуация изменилась только в середине 2000-х. На создание моделей глубокого обучения оказали влияние некоторые процессы и паттерны, происходящие в биологических нейронных системах. Несмотря на это, данные модели имеют множество различий во многом отличаются от биологического мозга (и в структуре и в функциях), что делает невозможным использование теорем и доказательств, применяющихся в нейробиологии.
== История ==
Термин «глубокое обучение» появился в научном сообществе машинного * 1943 {{---}} Искусственный нейрон Маккаллока — Питтса<ref>[https://en.wikipedia.org/wiki/Artificial_neuron Artificial neuron, Wikipedia]</ref> {{---}} узел искусственной нейронной сети, являющийся упрощённой моделью естественного нейрона;* 1949 {{---}} Принцип обучения нейронов Хебба<ref>[https://en.wikipedia.org/wiki/Hebbian_theory Hebbian theory, Wikipedia]</ref> {{---}} изначально наблюдаемая причинно-следственная связь между активациями пре- и постсинаптического нейрона имеет тенденцию к усилению;* 1957 {{---}} Модель перцептрона предложена Фрэнком Розенблаттом<ref>[https://en.wikipedia.org/wiki/Perceptron Perceptron, Wikipedia]</ref> {{---}} математическая или компьютерная модель восприятия информации мозгом;* 1960 {{---}} Дельта-правило обучения перцептрона<ref>[https://en.wikipedia.org/wiki/Delta_rule Delta rule, Wikipedia]</ref> {{---}} метод обучения перцептрона по принципу градиентного спуска по поверхности ошибки;* 1969 {{---}} Выход книги Марвина Минска и Сеймура Паперта "Перцептроны"<ref>[https://en.wikipedia.org/wiki/Perceptrons_(book) Perceptrons book, WIkipedia]</ref>. В данной книге математически показаны ограничения перцептронов;* 1974 {{---}} Метод обратного распространения ошибки впервые предложен А. И. Галушкиным и Дж. Вербосом<ref>[https://en.wikipedia.org/wiki/Backpropagation Backpropagation, Wikipedia]</ref> {{---}} метод вычисления градиента, который используется при обновлении весов многослойного перцептрона;* 1980 {{---}} Первая свёрточная нейронная сеть предложена Кунихико Фукусимой<ref>[https://en.wikipedia.org/wiki/Convolutional_neural_network Convolutional_neural_network, Wikipedia]</ref> {{---}} специальная архитектура искусственных нейронных сетей использующая некоторые особенности зрительной коры;* 1982 {{---}} Рекуррентные нейронные сети предложены Д. Хопфилдом {{---}} вид нейронных сетей, где связи между элементами образуют направленную последовательность;* 1991 {{---}} Проблема "исчезающего" градиента была сформулирована С. Хочрейтом. Проблема "исчезающего" градиента заключается в 1986 году в работе израильскобыстрой потере информации с течением времени;* 1997 {{-американского ученой Рины Дехтер «Learning While Searching in Constraint-Satisfaction-Problems»}} Долгая краткосрочная память предложена С. Хочрейтом и Ю. Шмидхубером<ref>[https://wwwen.researchgatewikipedia.netorg/publicationwiki/221605378_Learning_While_Searching_in_ConstraintLong_short-Satisfactionterm_memory Long short-term memory, Wikipedia]</ref>. В отличие от традиционных рекуррентных нейронных сетей, LSTM-сеть хорошо приспособлена к обучению на задачах классификации, обработки и прогнозирования временных рядов в случаях, когда важные события разделены временными промежутками с неопределённой продолжительностью и границами;* 1998 {{-Problems Learning While Searching in Constraint-Satisfaction-Problems}} Градиентный спуск для сверточных нейронных сетей предложен Я. Лекуном;* 2006 {{---}} Публикации Г. Хинтона, С. Осиндера и Я. Теха об обучении сетей глубокого доверия. Данные публикации, а также их активное освещение в средствах массовой информации смогли привлечь внимание ученых и разработчиков со всего мира к глубоким сетям;* 2012 {{---}} Предложение дропаута Г. Хинтоном, А. Крижевски и И. Шутковичем<ref>[https://en.wikipedia.org/wiki/Dropout_(neural_networks) Dropout, Wikipedia]</ref>. Стоит отметитьДропаут (от англ. dropout) {{---}} метод регуляризации искусственных нейронных сетей, что первый общий рабочий алгоритм предназначен для глубоких многослойных перцептронов прямого распространения был опубликован предотвращения переобучения сети;* 2012 {{---}} Нейронные сети побеждают в книге советских учёных Алексея Григорьевича Ивахненко ImageNet Challenge<ref>[https://en.wikipedia.org/wiki/ImageNet#ImageNet_Challenge ImageNet Challenge, Wikipedia]</ref>. Данное событие ознаменовало начало эры нейронных сетей и глубокого обучения;* 2014 {{---}} Группа исследователей под руководством Зеппа Хохрейтера использовала глубокое обучение для определения токсичного воздействия лекарств и Валентина Григорьевича Лапы «Кибернетические предсказывающие устройства»бытовых средств на окружающую среду. Данна работа была отмечена первым местом на соревновании "Tox21 Data Challenge"<ref>[https://tripod.nih.gov/tox21/challenge/leaderboard.jsp Tox21 Data Challenge Winners]</ref>;* 2016 {{---}} Программа для игры в го Google AlphaGo выиграла со счётом 4:1 у Ли Седоля, лучшего международного игрока в эту игру. AlphaGo, разработанная DeepMind, использует глубокое обучение с помощью многоуровневых нейронных сетей;* 2018 {{---}} Глубокое обучение впервые используется для планирования лучевой терапии<ref>[https://aapm.onlinelibrary.wiley.com/doi/abs/10.1002/mp.13271 Automatic treatment planning based on three‐dimensional dose distribution predicted from deep learning technique]</ref>. В настоящее время глубокое обучение используется [[Глубокое обучение#Применения | во многих сферах]]== Определение == '''Глубокое обучение''' {{---}} это класс алгоритмов машинного обучения, который:
Многие архитектуры глубокого * Использует многослойную систему нелинейных фильтров для извлечения признаков с преобразованиями. Каждый последующий слой получает на входе выходные данные предыдущего слоя; * Может сочетать алгоритмы [[Обучение с учителем | обучения появились с искусственной нейронной сети Neocognitronучителем]]<refsup>[https://enна 28.wikipedia01.org/wiki/Neocognitron Neocognitron, Wikipedia19 не создан]</refsup>, представленной в 1980 году Кунихикой Фукусимой. Особенное влияние данная сеть оказала на архитектуры, использующиеся для компьютерного зрения. В 1989 году Яну Лекуну удалось использовать алгоритм обратного распространения ошибки для обучения глубоких нейросетей для решения задачи распознавания рукописных ZIP(пример {{---кодов}} классификация) и [[Обучение без учителя | без учителя ]]<refsup>[https://www.ics.uciна 28.edu/~welling/teaching/273ASpring09/lecun-89e01.pdf Backpropagation Applied to Handwritten Zip Code Recognition19 не создан]</refsup>. Хотя алгоритм работал, (пример {{---}} анализ образца);* Формирует в процессе обучения слои выявления признаков на его обучение потребовалось 3 днянескольких уровнях представлений, что существенно ограничевало применимость данного методакоторые соответствуют различным уровням абстракции; при этом признаки организованы иерархически {{---}} признаки более высокого уровня являются производными от признаков более низкого уровня;{|align="center" |-valign="top" |[[Файл:Network_dif. Из-за низкой скоростя обучения png|border|550px|thumb|left|Глубокие и неглубокие нейронные сети в 1990-х годах уступили место методу опорных векторов.]] |}
Популярность глубокое обучение приобрело в середине 2000-х годов== Применения ==* Распознавание речи<ref>[https://en.wikipedia.org/wiki/Speech_recognition Speech recognition, Wikipedia]</ref>. Этому способстовали несколько факторов: Все основные коммерческие системы распознавания речи (например, Microsoft Cortana, Xbox, Skype Translator, Amazon Alexa, Google Now, Apple Siri, Baidu и iFlyTek) основаны на глубоком обучении;* появились [[:Задача нахождения объектов на изображении | Компьютерное зрение]]<sup>[на 28.01.19 не создан]</sup>. На сегодняшний день системы распознавания образов основанные на глубоком обучении уже умеют давать более мощные компьютерыточные результаты, способные обучать большие нейронные сетичем человеческий глаз<ref>[https://www.sciencedirect.com/science/article/pii/S0893608012000524 Multi-column deep neural network for traffic sign classification]</ref>;* появились новые датасетыОбработка естественного языка<ref>[https://en.wikipedia.org/wiki/Natural_language_processing Natural language processing, достаточные по объёму, чтобы обучение больших сетей имело смыслWikipedia]</ref>. Нейронные сети использовались для реализации языковых моделей еще с начала 2000-х годов. Изобретение LSTM помогло улучшить машинный перевод и языковое моделирование<ref>[https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf Sequence to Sequence Learning with Neural Networks]</ref>;* произошли существенные продвижения в теории искусственных нейронных сетейОбнаружение новых лекарственных препаратов. В появихшихся статьях авторы показалиК примеру, что можно эффективно предобучать многослойную нейронную нейронная сетьAtomNet использовалась для прогнозирования новых биомолекул {{---}} кандидатов для лечения таких заболевания, если обучать каждый слой отдельно при помощи ограниченной машины Больцманакак вирус Эбола и рассеянный склероз;* Рекомендательные системы<ref>[https://en.wikipedia.org/wiki/Recommender_system Recommender system, а затем дообучать при помощи метода обратного распространения ошибкиWikipedia]</ref>. На сегодняшний день глубокое обучение применяется для изучения пользовательских предпочтений во многих доменах;* технология привлекли внимание крупных медиаПредсказание генномных онтологий в биоинформатике<ref>[https://en.wikipedia.org/wiki/Deep_learning#Bioinformatics Deep learning in bioinformatics, — первым из мировых СМИ об этом написал The New York TimesWikipedia]</ref>.
== Определение == Полный список возможных применений глубокого обучения<ref>[https://en.wikipedia.org/wiki/Deep_learning#Applications Applications of deep learning, Wikipedia]</ref>.
== Разделы Transfer learning ==[[Файл:Transfer.jpeg|border|450px|thumb|Transfer learning.Иллюстрация из [https://habr.com/company/binarydistrict/blog/428255/ статьи] на habr.com.]]'''Transfer learning''' {{---}} это применение к решению задачи знаний, извлеченных нейронной сетью при решении другой задачи.
== Задачи ==Глубокие нейронные сети требуют больших объемов данных для сходимости обучения.Поэтому часто встречается ситуация, когда для решаемой задачи недостаточно данных для того, чтобы хорошо натренировать все слои нейросети.Для решения этой проблемы и используется '''transfer learning'''<ref>[https://habr.com/company/binarydistrict/blog/428255/ Transfer Learning: как быстро обучить нейросеть на своих данных, habr.com]</ref>.
== Sigmoid function ==.Чаще всего '''transfer learning''' выглядит следующим образом: к натренированной на определенную задачу нейросети добавляется еще несколько скрытый слоев, которые позволяют использовать уже полученные знания для решения более конкретной задачи.Например, знания, полученные при обучении распознаванию различных предметов, могут применяться при решении задачи распознавания еды.<div style="clear:{{{1|both}}};"></div>
== Rectified Linear Units Фреймворки для глубокого обучения ==* TensorFlow<ref>[https://en.wikipedia.org/wiki/TensorFlow TensorFlow, Wikipedia]</ref>;* Microsoft Cognitive Toolkit<ref>[https://en.wikipedia.org/wiki/Microsoft_Cognitive_Toolkit Microsoft Cognitive Toolkit, Wikipedia]</ref>;* Wolfram Mathematica<ref>[https://en.wikipedia.org/wiki/Wolfram_Mathematica Wolfram Mathematica, Wikipedia]</ref>;* Keras<ref>[https://en.wikipedia.org/wiki/Keras Keras, Wikipedia]</ref>;* Deeplearning4j<ref>[https://en.wikipedia.org/wiki/Deeplearning4j Deeplearning4j, Wikipedia]</ref>;* Caffe<ref>[https://en.wikipedia.org/wiki/Caffe_(ReLUsoftware) ==Caffe, Wikipedia]</ref>;* Torch/PyTorch<ref>[https://habr.com/post/334380 PyTorch — ваш новый фреймворк глубокого обучения, habr]</ref>;* MXNet<ref>[https://mxnet.apache.org MXNet, official site]</ref>;* Chainer<ref>[https://chainer.org Chainer, official site]</ref>.Сопоставление фреймворков, библиотек и отдельных программ для глубокого обучения<ref>[https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software Comparison of deep learning software, Wikipedia]</ref>.
== См. также ==
...* [[:Нейронные сети, перцептрон]]* [[:Сверточные нейронные сети]]* [[:Рекуррентные нейронные сети]]* [[:Обучение с подкреплением]]
== Примечания ==
* [https://en.wikipedia.org/wiki/Deep_learning Deep learning, Wikipedia]
* [https://ru.wikipedia.org/wiki/Глубокое_обучение Глубокое обучение, Wikipedia]
* [http://www.deeplearningbook.org/ Deep Learning Book, MIT]
* [https://towardsdatascience.com/multi-layer-neural-networks-with-sigmoid-function-deep-learning-for-rookies-2-bf464f09eb7f Multi-Layer Neural Networks with Sigmoid Function, Towards Data Science]
* [https://www.kaggle.com/dansbecker/rectified-linear-units-relu-in-deep-learning Rectified Linear Units (ReLU) in Deep Learning, Kaggle]
 
[[Категория: Машинное обучение]]
[[Категория: Глубокое обучение]]
1632
правки

Навигация