Эволюция ИИ в процессе решения практических задач
На рис. 2.5 представлены данные в так называемой категории "Top-5 error". Соревнование предполагает, что для ответа выбирается Топ-5 предсказаний, в которых сеть наиболее уверена, и если искомый ответ (класс) попал в эти пять предсказаний, то утверждается, что сеть не ошиблась, и напротив, если правильный класс в эти 5 предсказаний не попал, то, соответственно, считается, что сеть ошиблась.
Например, сеть распознает животное на картинке и выдает в порядке убывания вероятности следующие предположения: "ягуар, гепард, снежный леопард, египетская кошка" - если правильный ответ попадает в эти пять предположений, то этот ответ засчитывается как верный.
В 2011 году хорошим результатом считалась ошибка классификации на уровне 25%.
На рис. 2.5 выделяется 2012 год, который мы уже упомянули, говоря о новых возможностях доступного для обучения нейронной сети оборудования (см. рис. 2.4). В этом году исследователи из Университета Торонто использовали методы, основанные на глубоком обучении, чтобы установить новый уровень техники в конкурс ILSVRC - сверточная нейронная сеть 14 Сверточная нейронная сеть (СНС) - это сеть глубокого обучения специальной архитектуры, предложенная Яном Лекуном в 1988 году и нацеленная на эффективное распознавание образов. Принцип действия сверточных сетей будет описан ниже в данной лекции AlexNet 15Архитектура сети была разработана Алексом Крижевским в сотрудничестве с Ильей Суцкевером и Джеффри Хинтоном показала уникальный результат, достигнув ошибки на уровне 15,3% в "ILSVRCTOP-5", что было более чем на 10,8 процентных пункта ниже, чем у проекта, занявшего второе место. Высокая производительность достигалась за счет глубины модели16AlexNet имела 8 слоев, включая 5 сверточных, 600 млн соединений и 61 млн обучаемых параметров , что потребовало высокой производительности, которая достигалась благодаря использованию во время обучения графических процессоров (GPU).
Это было значимое событие поскольку ошибку удалось снизить радикально, показав результат, на который все остальные методы были неспособны. В последующие годы ошибка упала до нескольких процентов (рис. 2.5). В 2014 г. победителем конкурса ILSVRC стала сеть VGGNet. Модель, предложенная Симоняном и Зиссерманом, состояла из 19 слоев (138 млн параметров). В том же году GoogleNet, которая имела 22 слоя, еще снизила ошибку, а в 2015 году исследователи констатировали, что программы в определенных задачах проекта ILSVRC превзошли человеческие способности.
Нейронная сеть Resnet (Residual Networks), разработанная Microsoft Research, стала победителем конкурса ImageNet в 2015 году, она имела уже 152 слоя и демонстрировала ошибку на уровне 3,6% [65]. В 2016 г. при использовании ансамбля моделей 17Несколько обученных моделей делают предсказание, и выбирается коллективное решение тем или иным способом удалось показать результат с ошибкой в 3%, а в 2017 г. SENet снизила ошибку до уровня 2,25%.
После окончания конкурса в 2017 году исследователи продолжают использовать набор данных ImageNet для тестирования и разработки приложений компьютерного зрения. На рис. 2.6 показаны успехи систем, показывающих все более высокие результаты с течением времени. В отличие от рис. 2.5, где была показана ошибка, на рис. 2.6 показана точность в процентах "TOP-5 Accuracy".
Рис. 2.6. Динамика показателей TOP-5 Accuracy в Imagenet-соревновании. Источник: AI Index Report 2021 [66]
В последние годы исследователи стали повышать производительность своих систем путем их предварительного обучения на дополнительных данных, в частности на фотографиях из социальных сетей. Предварительное обучение на этих наборах данных обеспечивает более эффективное использование данных ImageNet, что позволило в 2021 г. в категории "TOP-5 Accuracy" достигнуть точности на уровне 98,8% (ошибка всего в 1,2%).
Мы упомянули решающую роль архитектуры сверточных сетей в достижении высокой точности распознавания изображений. Учитывая важность данной технологии, рассмотрим принцип ее действия чуть подробнее.
Сверточные нейронные сети
Ранее мы отметили, что при решении задачи распознавания простого геометрического объекта мы можем описать правила его начертания (указать признаки, по которым его можно отличить). Однако, говоря о решении более сложной задачи (например, такой как необходимость отличить на фото кошку от собаки), описать признаки, по которым можно принять подобное решение, достаточно сложно. Животное может находиться в разных позах, может быть сфотографировано в разных ракурсах при разном освещении. Собака, если на фото видно лишь три лапы, не перестает быть собакой, при этом человеку достаточно мельком взглянуть на фото и определить, что это за животное, вне зависимости от того, видны на фото лапы и хвост или нет.
Как это делает человек?
Интересно заметить, что при мгновенном решении подобных задач человеку непросто перечислить, по каким именно признакам он отличил кошку от собаки на том или ином изображении. То есть найти признаки - это отдельная задача, которую необходимо формализовать для ИИ. Сверточная сеть обладает способностью самостоятельно учиться находить подобные признаки, составляя их на основании элементов изображения, причем решает она эту задачу более эффективно и экономично, чем многослойный персептрон.
Почему речь идет об экономичности?
Следует отметить, что обработка больших изображений по схеме, которую мы рассмотрели, говоря о работе многослойного персептрона рис. 1.28, когда на вход подаются значения каждого пикселя в виде входного вектора, требует весьма существенных вычислительных ресурсов. Например, если речь идет об обработке цветного изображения 100 на 100 пикселей, по схеме рис. 1.29, то число входных параметров (учитывая, что цвет обычно предоставляется значениями яркости по трем каналам Red Blue Green) составит 100 х 100 х 3, то есть 30 000. При изображении 1000 на 1000 точек мы получим уже три миллиона параметров. Одна из задач, стоявших перед разработчиками нейросетей для распознавания изображений, заключалась в получении экономичного решения, которое бы учитывало особенности представления информации в изображениях.
Большое количество параметров сети плохо не только с точки зрения вычислительной сложности, но и с точки зрения необходимого для обучения количества данных. Поскольку в процессе обучения параметры подстраиваются по обучающим примерам, то чем больше параметров необходимо подстроить - тем большее количество примеров необходимо. С точки зрения работы с изображениями это означает, что для распознавания кота необходимо показать нейросети изображения, на которых кот располагается во всех возможных позах во всех местоположениях внутри кадра. Распознавание же кота человеком устроено несколько по-другому - человек "сканирует" изображение, ища знакомые признаки (паттерны).