ДонНТУ   Портал магистров

Обучение искусственной нейронной сети

Содержание

Введение

В наше время человек начинает во многом полагаться на роботов. Для автоматизации работы роботов человек разрабатывает искусственный интеллект. Человек издавна стремился воссоздать интеллект подобный собственному. Но разработать такой искусственный интеллект довольно сложно

Моей целью было разобрать методы обучения искусственной нейронной сети на примере соцального эксперимента с ИИ Quick, Draw!

1. Понятие искусственной нейронной сети

Искусственная нейронная сеть – математическая модель, а также её программное или аппаратное воплощение, построенная по принципу организации и функционирования биологических нейронных сетей – сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти процессы. Первой такой попыткой были нейронные сети У. Маккалока и У. Питтса [1]. После разработки алгоритмов обучения получаемые модели стали использовать в практических целях: в задачах прогнозирования, для распознавания образов, в задачах управления и др [2].

ИНС представляет собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов). Такие процессоры обычно довольно просты (особенно в сравнении с процессорами, используемыми в персональных компьютерах). Каждый процессор подобной сети имеет дело только с сигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам. И, тем не менее, будучи соединёнными в достаточно большую сеть с управляемым взаимодействием, такие по отдельности простые процессоры вместе способны выполнять довольно сложные задачи.

– с точки зрения машинного обучения, нейронная сеть представляет собой частный случай методов распознавания образов, дискриминантного анализа, методов кластеризации и т. п.

– с математической точки зрения, обучение нейронных сетей — это многопараметрическая задача нелинейной оптимизации.

– с точки зрения кибернетики, нейронная сеть используется в задачах адаптивного управления и как алгоритмы для робототехники.

– с точки зрения развития вычислительной техники и программирования, нейронная сеть – способ решения проблемы эффективного параллелизма [3].

– а с точки зрения искусственного интеллекта, ИНС является основой философского течения коннективизма и основным направлением в структурном подходе по изучению возможности построения (моделирования) естественного интеллекта с помощью компьютерных алгоритмов.

Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Возможность обучения — одно из главных преимуществ нейронных сетей перед традиционными алгоритмами. Технически обучение заключается в нахождении коэффициентов связей между нейронами. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение. Это значит, что в случае успешного обучения сеть сможет вернуть верный результат на основании данных, которые отсутствовали в обучающей выборке, а также неполных и/или «зашумленных», частично искажённых данных.

2. Распознавание образов и классификация

В качестве образов могут выступать различные по своей природе объекты: символы текста, изображения, образцы звуков и т. д. При обучении сети предлагаются различные образцы образов с указанием того, к какому классу они относятся. Образец, как правило, представляется как вектор значений признаков. При этом совокупность всех признаков должна однозначно определять класс, к которому относится образец. В случае, если признаков недостаточно, сеть может соотнести один и тот же образец с несколькими классами, что неверно. По окончании обучения сети ей можно предъявлять неизвестные ранее образы и получать ответ о принадлежности к определённому классу.

Топология такой сети характеризуется тем, что количество нейронов в выходном слое, как правило, равно количеству определяемых классов. При этом устанавливается соответствие между выходом нейронной сети и классом, который он представляет. Когда сети предъявляется некий образ, на одном из её выходов должен появиться признак того, что образ принадлежит этому классу. В то же время на других выходах должен быть признак того, что образ данному классу не принадлежит. Если на двух или более выходах есть признак принадлежности к классу, считается, что сеть не уверена в своём ответе.

3. Сбор данных для обучения

Выбор данных для обучения сети и их обработка является самым сложным этапом решения задачи. Набор данных для обучения должен удовлетворять нескольким критериям:

– Репрезентативность – данные должны иллюстрировать истинное положение вещей в предметной области;

– Непротиворечивость – противоречивые данные в обучающей выборке приведут к плохому качеству обучения сети.

Исходные данные преобразуются к виду, в котором их можно подать на входы сети. Каждая запись в файле данных называется обучающей парой или обучающим вектором. Обучающий вектор содержит по одному значению на каждый вход сети и, в зависимости от типа обучения (с учителем или без), по одному значению для каждого выхода сети. Обучение сети на «сыром» наборе, как правило, не даёт качественных результатов. Существует ряд способов улучшить восприятие сети.

– Нормировка выполняется, когда на различные входы подаются данные разной размерности. Например, на первый вход сети подаются величины со значениями от нуля до единицы, а на второй – от ста до тысячи. При отсутствии нормировки значения на втором входе будут всегда оказывать существенно большее влияние на выход сети, чем значения на первом входе. При нормировке размерности всех входных и выходных данных сводятся воедино;

– Квантование выполняется над непрерывными величинами, для которых выделяется конечный набор дискретных значений. Например, квантование используют для задания частот звуковых сигналов при распознавании речи;

– Фильтрация выполняется для зашумленных данных.

Кроме того, большую роль играет само представление как входных, так и выходных данных. Предположим, сеть обучается распознаванию букв на изображениях и имеет один числовой выход – номер буквы в алфавите. В этом случае сеть получит ложное представление о том, что буквы с номерами 1 и 2 более похожи, чем буквы с номерами 1 и 3, что, в общем, неверно. Для того, чтобы избежать такой ситуации, используют топологию сети с большим числом выходов, когда каждый выход имеет свой смысл. Чем больше выходов в сети, тем большее расстояние между классами и тем сложнее их спутать.

4. Обучение сети

В процессе обучения сеть в определенном порядке просматривает обучающую выборку. Порядок просмотра может быть последовательным, случайным и т. д. Некоторые сети, обучающиеся без учителя (например, сети Хопфилда), просматривают выборку только один раз. Другие (например, сети Кохонена), а также сети, обучающиеся с учителем, просматривают выборку множество раз, при этом один полный проход по выборке называется эпохой обучения. При обучении с учителем набор исходных данных делят на две части – собственно обучающую выборку и тестовые данные; принцип разделения может быть произвольным. Обучающие данные подаются сети для обучения, а проверочные используются для расчета ошибки сети (проверочные данные никогда для обучения сети не применяются). Таким образом, если на проверочных данных ошибка уменьшается, то сеть действительно выполняет обобщение. Если ошибка на обучающих данных продолжает уменьшаться, а ошибка на тестовых данных увеличивается, значит, сеть перестала выполнять обобщение и просто запоминает обучающие данные. Это явление называется переобучением сети или оверфиттингом. В таких случаях обучение обычно прекращают. В процессе обучения могут проявиться другие проблемы, такие как паралич или попадание сети в локальный минимум поверхности ошибок. Невозможно заранее предсказать проявление той или иной проблемы, равно как и дать однозначные рекомендации к их разрешению.

Все выше сказанное относится только к итерационным алгоритмам поиска нейросетевых решений. Для них действительно нельзя ничего гарантировать и нельзя полностью автоматизировать обучение нейронных сетей. Однако, наряду с итерационными алгоритмами обучения, существуют не итерационные алгоритмы, обладающие очень высокой устойчивостью и позволяющие полностью автоматизировать процесс обучения

5. Социальный эксперимент с ИИ

В ноябре 2016го года компания Google выпустила игру Quick, Draw! с целью провести эксперимент (рис. 1).

Игра <q>Quick, Draw!</q>

Рисунок 1 – Игра Quick, Draw!

Игра предлагала игрокам нарисовать картинку объекта или идеи и потом использовала искусственный интеллект для отгадывания того, что изображено (рис. 2) [46].

Процесс игры

Рисунок 2 – Процесс игры
(анимация: 6 кадров, постоянное повторение, 176 килобайт)

Искусственный интеллект обучался от каждого рисунка, увеличивая свою способность угадывать верно в будущем. [5] Концепт угадываемого может быть прост как нога или более сложен как миграция животных [6] Эта игра – одна из многих простых игр, созданных компанией Google, которые основаны на ИИ, как часть проекта, известного как A.I. Experiments [7].

Более 15 миллионов игроков нарисовали миллионы рисунков играя в Quick, Draw!. Эти рисунки являются уникальной базой данных, (рис. 3) которая помогает исследователям увидеть как люди во всём мире рисуют (рис. 4) и создаваь художникам вещи, о которых мы даже не могли подумать.

База данных рисунков

Рисунок 3 – База данных рисунков

База данных одного рисунка

Рисунок 4 – База данных одного рисунка (на примере рисунка кот)

Выводы

Был рассмотрен пример обучения искусственной нейронной сети методом постоянного дополнения базы данных сети. За искусственным интеллектом будущее и за его развитием крайне интересно наблюдать. Обучение искусственного интеллекта – долгий и сложный процесс. Данный проект был бы невозможен без миллионов людей, которые участвовали в проекте играя в Quick, Draw!.

Список источников

  1. Мак-Каллок У. С., Питтс В. Логическое исчисление идей, относящихся к нервной активности // Автоматы / Под ред. К. Э. Шеннона и Дж. Маккарти. — М.: Изд-во иностр. лит., 1956. — С. 363—384. (Перевод английской статьи 1943 г.)
  2. Искусственная нейронная сеть – Материал википедии, свободной энциклопедии
  3. Горбань А. Н. Кто мы, куда мы идём, как путь наш измерить? Пленарный доклад на открытии конференции Нейроинформатика-99 (МИФИ, 20 января 1999). Журнальный вариант: Горбань А. Н. Нейроинформатика: кто мы, куда мы идём, как путь наш измерить // Вычислительные технологии. — М.: Машиностроение. — 2000. — № 4. — С. 10—14. = Gorban A.N.Neuroinformatics: What are us, where are we going, how to measure our way? The Lecture at the USA-NIS Neurocomputing Opportunities Workshop, Washington DC, July 1999 (Associated with IJCNN’99).
  4. You can now play a Pictionary-style game called Quick Draw against Google's AI - Режим доступа: https://www.wired.co.uk/article/google-draw-ai-artificial-intelligence-experiments
  5. How Does Google "Quick, Draw!" Work? This Game Makes Learning About Artificial Intelligence Fun - Режим доступа: https://www.bustle.com/articles/196717-how-does-google-quick-draw-work-this-game-makes-learning-about-artificial-intelligence-fun
  6. Let A Computer Guess What You’re Drawing In This High-Tech Pictionary Game - Режим доступа: https://www.huffingtonpost.com/entry/quick-draw-google-doodling_us_58331234e4b099512f83caca
  7. Quick, Draw! - Режим доступа: https://quickdraw.withgoogle.com/
  8. Quick, Draw! The Data - Режим доступа: https://quickdraw.withgoogle.com/data