Глубокое обучение
Глубокое обучение (англ. deep learning) — совокупность широкого семейства методов машинного обучения, основанных на имитации работы человеческого мозга в процессе обработки данных и создания паттернов используемых для принятия решений[1]. Как правило, глубокое обучение предназначено для работы с большими объемами данных и использует сложные алгоритмы для обучения модели[2]. Несмотря на то, что данный раздел машинного обучения появился еще в 1980-х, до недавнего времени его применение было сильно ограничено из-за недостака вычислительных мощностей существовавших компьютеров. Ситуация изменилась только в середине 2000-х.
На создание моделей глубокого обучения оказали влияние некоторые процессы и паттерны, происходящие в биологических нейронных системах. Несмотря на это, данные модели во многом отличаются от биологического мозга (и в структуре и в функциях), что делает невозможным использование теорем и доказательств, применяющихся в нейробиологии.
История
- 1943 — Искусственный нейрон Маккаллока — Питтса[3] — узел искусственной нейронной сети, являющийся упрощённой моделью естественного нейрона.
- 1949 — Принцип обучения нейронов Хебба[4] — изначально наблюдаемая причинно-следственная связь между активациями пре- и постсинаптического нейрона имеет тенденцию к усилению.
- 1957 — Модель перцептрона предложена Фрэнком Розенблаттом[5] — математическая или компьютерная модель восприятия информации мозгом.
- 1960 — Дельта-правило обучения перцептрона[6] — метод обучения перцептрона по принципу градиентного спуска по поверхности ошибки.
- 1969 — Выход книги Марвина Минска и Сеймура Паперта "Перцептроны"[7]. В данной книге математически показаны ограничения перцептронов.
- 1974 — Метод обратного распространения ошибки впервые предложен А. И. Галушкиным и Дж. Вербосом[8] — метод вычисления градиента, который используется при обновлении весов многослойного перцептрона.
- 1980 — Первая свёрточная нейронная сеть предложена Кунихико Фукусимой[9] — специальная архитектура искусственных нейронных сетей использующая некоторые особенности зрительной коры.
- 1982 — Рекуррентные нейронные сети предложены Д. Хопфилдом — вид нейронных сетей, где связи между элементами образуют направленную последовательность.
- 1991 — Проблема "исчезающего" градиента была сформулирована С. Хочрейтом. Проблема "исчезающего" градиента заключается в быстрой потере информации с течением времени.
- 1997 — Долгая краткосрочная память предложена С. Хочрейтом и Ю. Шмидхубером[10]. В отличие от традиционных рекуррентных нейронных сетей, LSTM-сеть хорошо приспособлена к обучению на задачах классификации, обработки и прогнозирования временных рядов в случаях, когда важные события разделены временными промежутками с неопределённой продолжительностью и границами.
- 1998 — Градиентный спуск для сверточных нейронных сетей предложен Я. Лекуном.
- 2006 — Публикации Г. Хинтона, С. Осиндера и Я. Теха об обучении сетей глубокого доверия. Данные публикации, а также их активное освещение в средствах массовой информации смогли привлечь внимание ученых и разработчиков со всего мира к глубоким сетям.
- 2012 — Предложение дропаута Г. Хинтоном, А. Крижевски и И. Шутковичем[11]. Дропаут (от англ. dropout) — метод регуляризации искусственных нейронных сетей, предназначен для предотвращения переобучения сети.
- 2012 — Нейронные сети побеждают в ImageNet Challenge[12]. Данное событие ознаменовало начало эры нейронных сетей и глубокого обучения.
- 2014 — Группа исследователей под руководством Зеппа Хохрейтера использовала глубокое обучение для определения токсичного воздействия лекарств и бытовых средств на окружающую среду. Данна работа была отмечена первым местом на соревновании "Tox21 Data Challenge"[13].
- 2016 — Программа для игры в го Google AlphaGo выиграла со счётом 4:1 у Ли Седоля, лучшего международного игрока в эту игру. AlphaGo, разработанная DeepMind, использует глубокое обучение с помощью многоуровневых нейронных сетей.
В настоящее время глубокое обучение используется во многих сферах.
Определение
Глубокое обучение — это класс алгоритмов машинного обучения, который:
- Использует многослойную систему нелинейных фильтров для извлечения признаков с преобразованиями. Каждый последующий слой получает на входе выходные данные предыдущего слоя.
- Может сочетать алгоритмы обучения с учителем[на 12.12.18 не создан] (пример — классификация) и без учителя [на 12.12.18 не создан] (пример — анализ образца).
- Формирует в процессе обучения слои выявления признаков на нескольких уровнях представлений, которые соответствуют различным уровням абстракции; при этом признаки организованы иерархически — признаки более высокого уровня являются производными от признаков более низкого уровня.
Нейронные сети
- Искусственные нейронные сети (англ. artificial neural networks (ANN))[14]at
- Глубокие нейронные сети (англ. deep neural network (DNN))[15]
Применения
- Распознавание речи[16]. Все основные коммерческие системы распознавания речи (например, Microsoft Cortana, Xbox, Skype Translator, Amazon Alexa, Google Now, Apple Siri, Baidu и iFlyTek) основаны на глубоком обучении.
- Компьютерное зрение[на 06.12.18 не создан]. На сегодняшний день системы распознавания образов основанные на глубоком обучении уже умеют давать более точные результаты, чем человеческий глаз[17].
- Обработка естественного языка[18]. Нейронные сети использовались для реализации языковых моделей еще с начала 2000-х годов. Изобретение LSTM помогло улучшить машинный перевод и языковое моделирование[19].
- Обнаружение новых лекарственных препаратов. К примеру, нейронная сеть AtomNet использовалась для прогнозирования новых биомолекул — кандидатов для лечения таких заболевания, как вирус Эбола и рассеянный склероз.
- Рекомендательные системы[20]. На сегодняшний день глубокое обучение применяется для изучения пользовательских предпочтений во многих доменах.
- Предсказание генномных онтологий в биоинформатике[21].
Полный список возможных применений глубокого обучения[22].
Фреймворки для глубокого обучения
- TensorFlow[23]
- Microsoft Cognitive Toolkit[24]
- Wolfram Mathematica[25]
- Keras[26]
- Deeplearning4j[27]
- Caffe[28]
- Torch/PyTorch[29]
- MXNet[30]
- Chainer[31]
Сопоставление фреймворков, библиотек и отдельных программ для глубокого обучения[32].
См. также
- Нейронные сети, перцептрон[на 06.12.18 не создан]
- Сверточные нейронные сети[на 06.12.18 не создан]
- Рекуррентные нейронные сети[на 06.12.18 не создан]
- Обучение с подкреплением[на 06.12.18 не создан]
Примечания
- ↑ Deep Learning, Investopedia
- ↑ The difference between neural networks and deep learning
- ↑ Artificial neuron, Wikipedia
- ↑ Hebbian theory, Wikipedia
- ↑ Perceptron, Wikipedia
- ↑ Delta rule, Wikipedia
- ↑ Perceptrons book, WIkipedia
- ↑ Backpropagation, Wikipedia
- ↑ Convolutional_neural_network, Wikipedia
- ↑ Long short-term memory, Wikipedia
- ↑ Dropout, Wikipedia
- ↑ ImageNet Challenge, Wikipedia
- ↑ [1] Tox21 Data Challenge Winners
- ↑ Artificial neural network, Wikipedia
- ↑ Deep neural networks , Wikipedia
- ↑ Speech recognition, Wikipedia
- ↑ Multi-column deep neural network for traffic sign classification
- ↑ Natural language processing, Wikipedia
- ↑ Sequence to Sequence Learning with Neural Networks
- ↑ Recommender system, Wikipedia
- ↑ Deep learning in bioinformatics, Wikipedia
- ↑ Applications of deep learning, Wikipedia
- ↑ TensorFlow, Wikipedia
- ↑ Microsoft Cognitive Toolkit, Wikipedia
- ↑ Wolfram Mathematica, Wikipedia
- ↑ Keras, Wikipedia
- ↑ Deeplearning4j, Wikipedia
- ↑ Caffe, Wikipedia
- ↑ PyTorch — ваш новый фреймворк глубокого обучения, habr
- ↑ MXNet, official site
- ↑ Chainer, official site
- ↑ Comparison of deep learning software, Wikipedia