Глубокое обучение
Глубокое обучение (англ. deep learning) — совокупность широкого семейства методов машинного обучения, основанных на обучении представлениям, а не специализированным алгоритмам под конкретные задачи. Глубокое обучение может быть с учителем, с частичным привлечением учителя, без учителя и с подкреплением. Несмотря на то, что данный раздел машинного обучения появился еще в 1980-х, до недавнего времени его применение было сильно ограничено из-за недостака вычислительных мощностей существовавших компьютеров. Ситуация изменилась только в середине 2000-х.
На создание моделей глубокого обучения оказали влияние некоторые процессы и паттерны, происходящие в биологических нейронных системах. Несмотря на это, данные модели во многом отличаются от биологического мозга (и в структуре и в функциях), что делает невозможным использование теорем и доказательств, применяющихся в нейробиологии.
История
- 1943 - Искусственный нейрон Маккаллока — Питтса[1] — узел искусственной нейронной сети, являющийся упрощённой моделью естественного нейрона.
- 1949 - Принцип обучения нейронов Хебба[2] — изначально наблюдаемая причинно-следственная связь между активациями пре- и постсинаптического нейрона, имеет тенденцию к усилению.
- 1957 - Модель перцептрона предложена Фрэнком Розенблаттом[3] — математическая или компьютерная модель восприятия информации мозгом.
- 1960 - Дельта-правило обучения перцептрона[4] — метод обучения перцептрона по принципу градиентного спуска по поверхности ошибки.
- 1969 - Выход книги Марвина Минска и Сеймура Паперта "Перцептроны"[5]. В данной книге математически показаны ограничения перцептронов.
- 1974 - Метод обратного распространения ошибки впервые предложен А. И. Галушкиным и Дж. Вербосом[6] — метод вычисления градиента, который используется при обновлении весов многослойного перцептрона.
- 1980 - Первая свёрточная нейронная сеть предложена Кунихико Фукусимой[7] — специальная архитектура искусственных нейронных сетей использующая некоторые особенности зрительной коры.
- 1982 - Рекуррентные нейронные сети предложены Д. Хопфилдом — вид нейронных сетей, где связи между элементами образуют направленную последовательность.
- 1991 - Проблема "исчезающего" градиента была сформулирована С. Хочрейтом. Проблема "исчезающего" градиента заключается в быстрой потере информации с течением времени.
- 1997 - Долгая краткосрочная память предложена С. Хочрейтом и Ю. Шмидхубером[8]. В отличие от традиционных рекуррентных нейронных сетей, LSTM-сеть хорошо приспособлена к обучению на задачах классификации, обработки и прогнозирования временных рядов в случаях, когда важные события разделены временными лагами с неопределённой продолжительностью и границами.
- 1998 - Градиентный спуск для сверточных нейронных сетей предложен Я. Лекуном.
- 2006 - Публикации Г. Хинтона, С. Осиндера и Я. Теха об обучении сетей глубоких убеждений. Данные публикации, а также их активное освещение в средствах массовой информации смогли привлечь внимание ученых и разработчиков со всего мира к глубоким сетям.
- 2012 - Предложение дропаута Г. Хинтоном, А. Крижевски и И. Шутковичем[9]. Дропаут (от англ. dropout) — метод регуляризации искусственных нейронных сетей, предназначен для предотвращения переобучения сети.
- 2012 - Нейронные сети побеждают в ImageNet Challenge[10]. Данное событие ознаменовало начало эры нейронных сетей и глубокого обучения.
Начиная с 2012 года машинное обучение во-многом фокусируется на глубоких сетях. Искусственный интеллект и машинное обучение обычно упоминаются в контексте глубокого обучения.
Глубокое обучение используется во-многих сферах.
Определение
Глубокое обучение — это класс алгоритмов машинного обучения, который:
- использует многослойную систему нелинейных фильтров для извлечения признаков с преобразованиями. Каждый последующий слой получает на входе выходные данные предыдущего слоя.
- может сочетать алгоритмы обучения с учителем (пример — классификация) и без учителя (пример — анализ образца).
- формирует в процессе обучения слои выявления признаков на нескольких уровнях представлений, которые соответствуют различным уровням абстракции; при этом признаки организованы иерархически - признаки более высокого уровня являются производными от признаков более низкого уровня.
Нейронные сети
Применения
- Распознавание речи[13]. Все основные коммерческие системы распознавания речи (например, Microsoft Cortana, Xbox, Skype Translator, Amazon Alexa, Google Now, Apple Siri, Baidu и iFlyTek) основаны на глубоком обучении.
- Компьютерное зрение Задача нахождения объектов на изображении[на 06.12.18 не создан]. На сегодняшний день системы распознавания образов основанные на глубоком обучении уже умеют давать более точные результаты, чем человеческий глаз[14].
- Обработка естественного языка[15]. Нейронные сети использовались для реализации языковых моделей еще с начала 2000-х годов. Изобретение LSTM помогло улучшить машинный перевод и языковое моделирование[16].
- Обнаружение новых лекарственных препаратов. К примеру, нейронная сеть AtomNet использовалась для прогнозирования новых биомолекул - кандидатов для лечения таких заболевания, как вирус Эбола и рассеянный склероз.
- Рекомендательные системы[17]. На сегодняшний день глубокое обучение применяется для изучения пользовательских предпочтений во многих доменах.
- Предсказание генномных онтологий в биоинформатике[18].
Полный список возможных применений глубокого обучения[19].
Фреймворки для глубокого обучения
- TensorFlow[20]
- Microsoft Cognitive Toolkit[21]
- Wolfram Mathematica[22]
- Keras[23]
- Deeplearning4j[24]
- Caffe[25]
- Torch/PyTorch[26]
- MXNet[27]
- Chainer[28]
Сопоставление фреймворков, библиотек и отдельных программ для глубокого обучения[29].
См. также
- Нейронные сети, перцептрон[на 06.12.18 не создан]
- Сверточные нейронные сети[на 06.12.18 не создан]
- Рекуррентные нейронные сети[на 06.12.18 не создан]
- Обучение с подкреплением[на 06.12.18 не создан]
Примечания
- ↑ 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
- ↑ 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