Распознавание рукописных цифр из соревнования по MNIST в Kaggle.
На момент написания (11.11.17) был получен результат с точностью распознавания 0,99228, что соответствовало на тот момент 337-му месту в рейтинговом списке Kaggle.
Написана на Python 3 в Jupyter Notebook.
Используется блендинг над тремя нейронными сетями.
Первая сеть содержит только полносвязные слои. Входными данными первой сети являются непосредствено значения интенсивностей пикселей изображений.
Вторая сеть также содержит только полносвязные слои. Входными данными являются гистограммы направленных градиентов (HOG), посчитанные для 7 регионов изображений. Расчёт диаграмм в тетрадке можно пропустить, их можно сразу загрузить из файлов train_hst.csv и test_hst.csv.
Третья сеть является свёрточной, с архитектурой LeNet.
С целью уменьшения корреляции ошибок, в обучающие выборки каждой последующей сети входили все те изображения, на которых предыдущая сеть выдавала неверный результат.
При построении оценок для тестовой выборки использовалось голосование между тремя нейронными сетями. В случае, когда все сети выдавали различное предсказание, выбиралось предсказание сети, имеющей наибольшую точность на своей валидационной выборке.
- Python 3;
- Jupyter Notebook;
Пакеты: - keras;
- opencv-python;
- sklearn;
- matplotlib;
- numpy.
Барашков А.А., 2017