Введение 3
1. Изучение предметной области 8
1.1. Глубокое обучение. Что такое глубокое обучение? 8
1.2. Принцип работы глубокого обучения? 10
1.3. Методы глубокого обучения 11
1.4. Важность глубокого обучения 12
1.5. Разница между глубоким обучением и машинным обучением? 13
1.6. Преимущества глубокого обучения 14
1.7. Сложности внедрения технологии глубокого обучения 15
2. РАЗРАБОТКА ПРИЛОЖЕНИЯ НА ЯЗЫКЕ PYTHON ПРИ ИСПОЛЬЗОВАНИИ МЕХАНИЗМОВ DEEP
LEARNING 17
2.1. Постановка задачи 17
2.2. Методология решения поставленной задачи 17
2.2.2. Технология векторного представления слов Word2Vec 24
2.2.3. Библиотека для глубокого обучения Keras 26
2.3. Программная реализация 27
3. ТЕСТИРОВАНИЕ И РЕЗУЛЬТАТЫ РАЗРАБОТАННОГО ПРИЛОЖЕНИЯ 34
ЗАКЛЮЧЕНИЕ 39
СПИСОК ЛИТЕРАТУРЫ 40
Приложение 1:
В настоящее время, почти каждая сфера деятельности человека использует глубокое обучение. Примерами глубокого обучения могут служить такие технологии, как компьютерное зрение, машинный перевод, распознавание речи и другие. Эти и другие технологии используются при решении большого спектра задач поставленных перед многими большими компаниями.
Самым выдающимся открытием этого года стала программа, разработанная компанией Google, для игры в Го AlphaGo, которой удалось обыграть лучшего в мире игрока. Также машины глубокого обучения опережают человеческий разум и в других играх: шашки, шахматы и так далее.
Соглашусь, программы для отыскивания ходов в настольных играх не кажутся такими глобальными и не совсем подходят для решения реальных проблем в мире, но так кажется только на первый взгляд. Потому что игра Г о подразумевает, что искусственный интеллект не имеет шанса на победу. Для этого машине нужно обладать человеческой интуицией. Но сейчас компьютеры могут решать многие важные задачи, невозможные ранее, благодаря именно этой разработке.
Несомненно, глубокое обучение еще не достигло пика своего совершенства, но подходит к этому огромными шагами. И уже сейчас может приносить коммерческую прибыль. Примерами могут служить самоуправляемые машины таких компаний, как Google, Tesla и Uber, которые пытаются внедрить их в современную жизнь.
Представим некоторые проблемы, решаемые искусственными нейронными сетями:
• Классификация образов. Задача состоит в указании принадлежности входного образа, представленного вектором признаков, одному или нескольким, предварительно определенным классам.
• Кластеризация/категоризация. При решении задач кластеризации, которая известна так же как классификация образов без учителя, отсутствует обучающая выборка с метками классов. Алгоритм кластеризации основан на подобии образов и размещает близкие образы в один кластер. Известны случаи применения кластеризации для извлечения знаний, сжатия данных и исследования свойств данных.
• Аппроксимация функций. Предположим, что имеется обучающая выборка ((х1,у1),(х2,у2),(xN,yN)) , которая генерируется неизвестной функцией, искаженной шумом. Задача аппроксимации состоит в нахождении оценки этой функции.
• Предсказание/прогноз. Пусть заданы N дискретных отсчетов {y(t1),y(t2), ^,y(tN)} в последовательные моменты времени t1,t2,...,tN . Задача состоит в предсказании значение y(tN+1) . Прогноз имеет значительное влияние на принятие решений в бизнесе, науке и технике.
• Оптимизация. Многочисленные проблемы в математике, статистике, технике, медицине и экономике могут рассматриваться как проблемы оптимизации. Задачей оптимизации является нахождение решения, которое удовлетворяет системе ограничений и максимизирует или минимизирует целевую функцию.
• Управление. Рассмотрим динамическую систему, заданную совокупностью {u(t),y(t)} , где u(t) является входным управляющим воздействием, а y(t) - выход системы в момент времени t. В системах управления с эталонной моделью целью управления является расчет такого входного воздействия u(t) , при котором система следует по желаемой траектории, диктуемой эталонной моделью.
Актуальность. В настоящее время использование нейронных сетей становится всё более актуальной. Совершенно очевидно, что свою силу нейронные сети черпают, во-первых, из распараллеливания обработки информации и, во-вторых, из способности самообучаться, т.е. создавать обобщения. Под термином обобщение понимается способность получать обоснованный результат на основании данных, которые не встречались в процессе обучения. Эти свойства позволяют нейронным сетям решать сложные (масштабные) задачи, которые на сегодняшний день считаются трудноразрешимыми. Однако на практике при автономной работе нейронные сети не могут обеспечить готовые решения. Их необходимо интегрировать в сложные системы. В частности, комплексную задачу можно разбить на последовательность относительно простых, часть из которых может решаться нейронными сетями.
Итак, приведем некоторые преимущества и достоинства нейронных сетей перед традиционными вычислительными системами.
1. Решение задач при неизвестных закономерностях
Используя способность обучения на множестве примеров, нейронная сеть способная решать задачи, в которых неизвестны закономерности развития ситуации и зависимости между входными и выходными данными. Традиционные математические методы и экспертные системы в таких случаях пасуют.
2. Устойчивость к шумам во входных данных
Возможность работы при наличии большого числа неинформативных, шумовых входных сигналов. Нет необходимости делать их предварительный отсев, нейронная сеть сама определит их малопригодность для решения задачи и отбросит их.
3. Адаптирование к изменениям окружающей среды
Нейронные сети обладают способностью адаптироваться к изменениям окружающей среды. В частности, нейронные сети, обученные действовать в определенной среде, могут быть легко переучены для работы в условиях незначительных колебаний параметров среды. Более того, для работы в нестационарной среде (где статистика изменяется с течением времени) могут быть созданы нейронные сети, переучивающиеся в реальном времени. Чем выше адаптивные способности системы, тем более устойчивой будет ее работа в нестационарной среде. При этом следует заметить, что адаптивность не всегда ведет к устойчивости; иногда она приводит к совершенно противоположному результату. Например, адаптивная система с параметрами, быстро изменяющимися во времени, может также быстро реагировать и на посторонние возбуждения, что вызовет потерю производительности. Для того чтобы использовать все достоинства адаптивности, основные параметры системы должны быть достаточно стабильными, чтобы можно было не учитывать внешние помехи, и достаточно гибкими, чтобы обеспечить реакцию на существенные изменения среды.
4. Потенциальное сверхвысокое быстродействие
Нейронные сети обладают потенциальным сверхвысоким быстродействием за счет использования массового параллелизма обработки информации.
5. Отказоустойчивость при аппаратной реализации нейронной сети
Нейронные сети потенциально отказоустойчивы. Это значит, что при неблагоприятных условиях их производительность падает незначительно. Например, если поврежден какой-то нейрон или его связи, извлечение запомненной информации затрудняется. Однако, принимая в расчет распределенный характер хранения информации в нейронной сети, можно утверждать, что только серьезные повреждения структуры нейронной сети существенно повлияют на ее работоспособность. Поэтому снижение качества работы нейронной сети происходит медленно.
Целью данной работы является реализация методов глубокого обучения и их применение в решении задачи по распознаванию текста. Для достижения цели необходимо решить следующие задачи:
• изучение основ глубокого изучения и нейронных сетей, архитектуры и методов глубоких нейронных сетей;
• реализация методов глубокого обучения и их применение в решении задачи по глубокому обучению на языке Python с портала kaggle.com.
Вывод: Искусственные нейронные сети - динамически развивающаяся наука, которая расширяет понятия вычисления. Конечно, она имеет свои проблемы и недостатки, но ИНС уже позволили справиться с рядом непростых проблем и обещают создание новых программ и устройств, способных решать задачи, которые пока под силу только человеку.
В процессе написания данной выпускной квалификационной работы была создана система распознавания текста для распределения комментариев по классам, к которым они относятся (едким, непристойным, угрозой, оскорблением или выражением ненависти к идентичности).
Для выполнения этой задачи были изучены:
• Принципы работы глубокого обучения;
• Методы глубокого обучения;
• Построение нейронных сетей;
• Сложности внедрения технологии глубокого обучения.
В ходе работы были протестированы такие методы машинного обучения и глубокого обучения, как двунаправленные модели LSTM и GRU. Для них были подобраны различные признаки, включая локальные признаки слова, контекстные признаки, словарные признаки, а также распределенные представления слов, основанные на word2vec, и кластерные представления слов.
Разработанная система соответствует всем требованиям, которые были представлены на этапе постановке задачи.
Система была протестирована на собранной и размеченной для этих целей коллекции данных. Пример работы системы проиллюстрирован в Приложении 1.