Главная arrow книги arrow Копия Глава 20. Статистические методы обучения arrow Практический пример: распознавание рукописных цифр
Практический пример: распознавание рукописных цифр

Чтобы можно было воспользоваться структурой самой задачи (тем, что вход состоит из пикселов в двухмерном массиве и что небольшие изменения в положении или наклоне изображения не имеют значения), был разработан ряд специализированных нейронных сетей, называемых LeNet. Каждая сеть имела входной слой из 32x32 элементов, по которым 2 0x2 0 пикселов отцентровывались таким образом, чтобы каждый входной элемент был представлен с помощью локальной окрестности пикселов. За ними следовали три слоя скрытых элементов. Каждый слой состоял из нескольких гиперплоскостей из пхп массивов, где значение п было меньше, чем в предыдущем слое, с тем чтобы сеть сокращала объем выборки входных данных, и где веса каждого элемента в гиперплоскости ограничивались идентичными весами, с тем чтобы эта гиперплоскость действовала как детектор какой-то характеристики: оно позволяла выделять некоторую характеристику, такую как длинная вертикальная линия или короткая полукруглая дуга. Выходной слой включал 10 элементов. Было опробовано много версий такой архитектуры; в одной из наиболее успешных версий применялись скрытые слои, состоящие соответственно из 768, 192 и 30 элементов. Обучающий набор был дополнен путем применения аффинных преобразований к фактическим входным данным — сдвиг, поворот на небольшой угол и масштабирование изображений (безусловно, эти преобразования должны были быть небольшими, поскольку иначе цифра 6 могла бы превратиться в 9!). Наилучшим значением частоты ошибок, достигнутым с помощью сетей LeNet, было 0,9%.

В усиленной нейронной сети комбинировались три копии архитектуры LeNet, притом что вторая обучалась на смеси образцов, которые первая распознавала с ошибками 50%, а третья обучалась на образцах, для которых не было достигнуто согласование с помощью первых двух копий. Во время проверки проводилось голосование между тремя сетями с назначенными с помощью их весами для каждой из десяти цифр, а полученные оценки складывались для определения победителя. Частота ошибок при обработке проверочного набора составляла 0,7%.

Машина поддерживающих векторов (см. раздел 20.6) с 25000 поддерживающих векторов достигла частоты ошибок 1,1%. Это— замечательное достижение, поскольку метод SVM, как и простой подход с использованием ближайших соседних точек, почти не потребовал размышлений или неоднократных экспериментов со стороны разработчика, но вместе с тем позволил сразу же приблизиться к производительности сетей LeNet, на создание которых ушли годы интенсивных разработок. Разумеется, в машине поддерживающих векторов не используются данные о структуре задачи, поэтому она действовала бы с таким же успехом, если бы те же пикселы были представлены после применения к ним какой-то перестановки.