SlideShare une entreprise Scribd logo
1  sur  19
Машинное обучение

         Распознавание рукописных цифр




         Бабий А.С. - apratster@gmail.com
Задача распознавания.



       Уже существует поддержка рукописного ввода




      Как это работает?
      Почему иногда не срабатывает?
      Как обучать готовые программы?
      Как научиться самому создавать обучаемые программы?




                        Машинное обучение. Распознавание рукописных цифр.   2
Задача распознавания.


    Этапы решения задачи распознавания:


                                  1)   Где взять выборки?
        Создаем тестовую
                                  2)   Размер выборок?
      и обучающую выборки
                                  3)   Что внутри выборок?
                                  1)   Подготовка данных.
       Выделяем признаки          2)   Как сравнивать объекты?
                                  3)   Как искать признаки?

        Выделяем классы           1) Как определить качество кластеризации?
                                  2) Когда остановиться

        Классифицируем            1)Какой алгоритм классификации выбрать?




                        Машинное обучение. Распознавание рукописных цифр.     3
Задача распознавания.



   1. Kaggle – что это? We’re making data science a sport.




 2. Как научиться? Где соревноваться?         http://www.kaggle.com




                        Машинное обучение. Распознавание рукописных цифр.   4
Задача распознавания


    Выборка:

    Данные для этой задачи взяты из набора данных MNIST
    http://yann.lecun.com/exdb/mnist/

     Обучающая выборка - 60000 образцов


                таблица с результатами применения методов
                                     +
                  Ссылки на публикации с описанием методов




                        Машинное обучение. Распознавание рукописных цифр.   5
Предварительная обработка данных

    Матрица 28х28, цвет в градации серого от 0 до 255



  1) Переходим к черно-белому изображению(адаптивный порог, метод
     Оцу[1])
  2) Морфологическое преобразование – уменьшаем до толщины 1
     пиксела[2].




                      Машинное обучение. Распознавание рукописных цифр.   6
Предварительная обработка данных


   Наклон символа – находим эллипс максимально близкий к нашему символу




Есть функция в OpenCV, Matlab b т.п. Используется метод наименьших квадратов




                      Машинное обучение. Распознавание рукописных цифр.    7
Предварительная обработка данных




                                           Число Эйлера




     Дополнительные значимые свойства?

      1) Симметрия
      2) Расположение «центра масс» цифры




                     Машинное обучение. Распознавание рукописных цифр.   8
Предварительная обработка данных


  На вход сети подаются такие данные:

       1) Данные о пикселах(bw) после обработки 16х16
       2) Число Эйлера
       3) Треть в которой расположен «центр масс»
                        Все данные нормализованы!




                      Машинное обучение. Распознавание рукописных цифр.   9
Создание сети


  В зависимости от наших предпочтений, можем выбрать
  1) Matlab
  2) R, Python + libraries


     Для Matlab – nftool, довольно все просто понятно, мастер ИНС

     Библиотеки для создания ИНС

      Fast Artificial Neural Network Library
      (FANN)
      http://leenissen.dk

      Kohonen neural network library
      http://knnl.sourceforge.net/

      Python! Neurolab
      http://code.google.com/p/neurolab/

                       Машинное обучение. Распознавание рукописных цифр.   10
Создание сети

         Выбор размера скрытого слоя ИНС

         Слишком мало нейронов скрытого слоя – плохо
         Слишком много мало нейронов скрытого слоя - плохо

         Как подобрать?

          Мера Вапника-Червоненкиса


           Один из методов редукции сети

           Перебор возможных вариантов, ГА




                     Машинное обучение. Распознавание рукописных цифр.   11
Создание сети


    Пути улучшения:




                      Машинное обучение. Распознавание рукописных цифр.   12
Выводы


  1.   Важно определить стойкие признаки
  2.   Нормализация данных
  3.   ИНС – не всегда срабатывает лучше других методов!
  4.   Обучение - долгий процесс


  Понимание сути задачи первично для анализа данных

  Как автоматически(полуавтоматически) выявлять признаки?


  Качество распознавания персептроном - 88%




                      Машинное обучение. Распознавание рукописных цифр.   13
Результаты




             Машинное обучение. Распознавание рукописных цифр.   14
Результаты




             Машинное обучение. Распознавание рукописных цифр.   15
Результаты




             Машинное обучение. Распознавание рукописных цифр.   16
Результаты




             Машинное обучение. Распознавание рукописных цифр.   17
Спасибо за внимание!
Источники литературы
1.   Otsu, N., "A Threshold Selection Method from Gray-Level Histograms," IEEE Transactions
     on Systems, Man, and Cybernetics, Vol. 9, No. 1, 1979, pp. 62-66.

2.   Lam, L., Seong-Whan Lee, and Ching Y. Suen, "Thinning Methodologies-A Comprehensive
     Survey," IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol 14, No. 9,
     September 1992, page 879, bottom of first column through top of second column.

3. http://leenissen.dk

4. http://knnl.sourceforge.net/

5. http://code.google.com/p/neurolab/

Contenu connexe

En vedette

Face detection and recognition using OpenCV
Face detection and recognition using OpenCVFace detection and recognition using OpenCV
Face detection and recognition using OpenCVAndrew Babiy
 
ROS - Robotics Operation System
ROS - Robotics Operation SystemROS - Robotics Operation System
ROS - Robotics Operation Systemhudvin
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Dmitry Kornev
 
Распознавание лиц в реальном времени по базам фотографий глобального масштаба...
Распознавание лиц в реальном времени по базам фотографий глобального масштаба...Распознавание лиц в реальном времени по базам фотографий глобального масштаба...
Распознавание лиц в реальном времени по базам фотографий глобального масштаба...Ontico
 
Машинное обучение на платформе .NET
Машинное обучение на платформе .NETМашинное обучение на платформе .NET
Машинное обучение на платформе .NETDotNetConf
 
Deep learning: Cложный анализ данных простыми словами_Сергей Шелпук
Deep learning: Cложный анализ данных простыми словами_Сергей ШелпукDeep learning: Cложный анализ данных простыми словами_Сергей Шелпук
Deep learning: Cложный анализ данных простыми словами_Сергей ШелпукGeeksLab Odessa
 
Введение в машинное обучение
Введение в машинное обучение Введение в машинное обучение
Введение в машинное обучение Anton Anokhin
 
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...solit
 
Алгебраический подход к анализу данных и его приложения
Алгебраический подход к анализу данных и его приложенияАлгебраический подход к анализу данных и его приложения
Алгебраический подход к анализу данных и его приложенияАлександр Дьяконов
 
Определение курильщика по кардиограмме
Определение курильщика по кардиограммеОпределение курильщика по кардиограмме
Определение курильщика по кардиограммеАлександр Дьяконов
 
Matrix Laboratory (эффективное программирование)
Matrix Laboratory (эффективное программирование)Matrix Laboratory (эффективное программирование)
Matrix Laboratory (эффективное программирование)Александр Дьяконов
 
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15] Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15] Python Meetup
 
Введение в язык программирования Питон (Python)
Введение в язык программирования Питон (Python)Введение в язык программирования Питон (Python)
Введение в язык программирования Питон (Python)Александр Дьяконов
 
Машинное обучение на платформе .NET
Машинное обучение на платформе .NETМашинное обучение на платформе .NET
Машинное обучение на платформе .NETRoman Nevolin
 

En vedette (20)

Face detection and recognition using OpenCV
Face detection and recognition using OpenCVFace detection and recognition using OpenCV
Face detection and recognition using OpenCV
 
ROS - Robotics Operation System
ROS - Robotics Operation SystemROS - Robotics Operation System
ROS - Robotics Operation System
 
Машинное обучение
Машинное обучениеМашинное обучение
Машинное обучение
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
 
Распознавание лиц в реальном времени по базам фотографий глобального масштаба...
Распознавание лиц в реальном времени по базам фотографий глобального масштаба...Распознавание лиц в реальном времени по базам фотографий глобального масштаба...
Распознавание лиц в реальном времени по базам фотографий глобального масштаба...
 
Машинное обучение на платформе .NET
Машинное обучение на платформе .NETМашинное обучение на платформе .NET
Машинное обучение на платформе .NET
 
Deep learning: Cложный анализ данных простыми словами_Сергей Шелпук
Deep learning: Cложный анализ данных простыми словами_Сергей ШелпукDeep learning: Cложный анализ данных простыми словами_Сергей Шелпук
Deep learning: Cложный анализ данных простыми словами_Сергей Шелпук
 
Введение в машинное обучение
Введение в машинное обучение Введение в машинное обучение
Введение в машинное обучение
 
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
 
Алгебраический подход к анализу данных и его приложения
Алгебраический подход к анализу данных и его приложенияАлгебраический подход к анализу данных и его приложения
Алгебраический подход к анализу данных и его приложения
 
Определение курильщика по кардиограмме
Определение курильщика по кардиограммеОпределение курильщика по кардиограмме
Определение курильщика по кардиограмме
 
Решение задачи Search Results Relevance
Решение задачи Search Results RelevanceРешение задачи Search Results Relevance
Решение задачи Search Results Relevance
 
Спектральная теория графов
Спектральная теория графовСпектральная теория графов
Спектральная теория графов
 
Matrix Laboratory (эффективное программирование)
Matrix Laboratory (эффективное программирование)Matrix Laboratory (эффективное программирование)
Matrix Laboratory (эффективное программирование)
 
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15] Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
 
Введение в язык программирования Питон (Python)
Введение в язык программирования Питон (Python)Введение в язык программирования Питон (Python)
Введение в язык программирования Питон (Python)
 
Deep Q-Learning
Deep Q-LearningDeep Q-Learning
Deep Q-Learning
 
Теория нечётких множеств
Теория нечётких множествТеория нечётких множеств
Теория нечётких множеств
 
Машинное обучение на платформе .NET
Машинное обучение на платформе .NETМашинное обучение на платформе .NET
Машинное обучение на платформе .NET
 
Pandas: обзор основных функций
Pandas: обзор основных функцийPandas: обзор основных функций
Pandas: обзор основных функций
 

Similaire à Recognition of handwritten digits

Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...
Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...
Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...Anton Moiseev
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationAnton Gorokhov
 
Deep Learning Course Introduction
Deep Learning Course IntroductionDeep Learning Course Introduction
Deep Learning Course IntroductionIhar Nestsiareania
 
обработка информации и алгоритмы
обработка информации  и алгоритмыобработка информации  и алгоритмы
обработка информации и алгоритмыЕлена Ключева
 
обработка информации и алгоритмы
обработка информации  и алгоритмыобработка информации  и алгоритмы
обработка информации и алгоритмыЕлена Ключева
 
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"Nikolay Grebenshikov
 
Машинное обучение в электронной коммерции — практика использования и подводны...
Машинное обучение в электронной коммерции — практика использования и подводны...Машинное обучение в электронной коммерции — практика использования и подводны...
Машинное обучение в электронной коммерции — практика использования и подводны...Ontico
 
FaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_reviewFaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_reviewKhryashchev
 
когнитивные технологии, Ibm
когнитивные технологии, Ibmкогнитивные технологии, Ibm
когнитивные технологии, IbmSkolkovo Robotics Center
 
Когнитивные технологии
Когнитивные технологииКогнитивные технологии
Когнитивные технологииSkolkovo Robotics Center
 
Как начать моделировать? Переход от текстов к моделям в требованиях (Григорий...
Как начать моделировать? Переход от текстов к моделям в требованиях (Григорий...Как начать моделировать? Переход от текстов к моделям в требованиях (Григорий...
Как начать моделировать? Переход от текстов к моделям в требованиях (Григорий...Alexander Orlov
 
Компьютерное зрение
Компьютерное зрениеКомпьютерное зрение
Компьютерное зрениеStan Serebryakov
 
Нейросетевые системы автоматического распознавания морских объектов
Нейросетевые системы автоматического распознавания морских объектовНейросетевые системы автоматического распознавания морских объектов
Нейросетевые системы автоматического распознавания морских объектовNatalia Polkovnikova
 
Нейроморфный чип “Алтай” ориентированный на использование в РТК (ПСиЗУ 2016)
Нейроморфный чип “Алтай” ориентированный на использование в РТК (ПСиЗУ 2016)Нейроморфный чип “Алтай” ориентированный на использование в РТК (ПСиЗУ 2016)
Нейроморфный чип “Алтай” ориентированный на использование в РТК (ПСиЗУ 2016)motivnt
 
проект таланова н.п.
проект таланова н.п.проект таланова н.п.
проект таланова н.п.nikap_talanova
 
проект таланова н.п.
проект таланова н.п.проект таланова н.п.
проект таланова н.п.nikap_talanova
 
проект таланова н.п.
проект таланова н.п.проект таланова н.п.
проект таланова н.п.nikap_talanova
 

Similaire à Recognition of handwritten digits (20)

Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...
Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...
Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: Personalization
 
Deep Learning Course Introduction
Deep Learning Course IntroductionDeep Learning Course Introduction
Deep Learning Course Introduction
 
обработка информации и алгоритмы
обработка информации  и алгоритмыобработка информации  и алгоритмы
обработка информации и алгоритмы
 
обработка информации и алгоритмы
обработка информации  и алгоритмыобработка информации  и алгоритмы
обработка информации и алгоритмы
 
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
 
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данныхSECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
 
Машинное обучение в электронной коммерции — практика использования и подводны...
Машинное обучение в электронной коммерции — практика использования и подводны...Машинное обучение в электронной коммерции — практика использования и подводны...
Машинное обучение в электронной коммерции — практика использования и подводны...
 
FaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_reviewFaceDetection+GenderRecognition_review
FaceDetection+GenderRecognition_review
 
когнитивные технологии, Ibm
когнитивные технологии, Ibmкогнитивные технологии, Ibm
когнитивные технологии, Ibm
 
Когнитивные технологии
Когнитивные технологииКогнитивные технологии
Когнитивные технологии
 
Как начать моделировать? Переход от текстов к моделям в требованиях (Григорий...
Как начать моделировать? Переход от текстов к моделям в требованиях (Григорий...Как начать моделировать? Переход от текстов к моделям в требованиях (Григорий...
Как начать моделировать? Переход от текстов к моделям в требованиях (Григорий...
 
Компьютерное зрение
Компьютерное зрениеКомпьютерное зрение
Компьютерное зрение
 
лекция 1
лекция 1лекция 1
лекция 1
 
Введение в алгоритмы и структуры данных
Введение в алгоритмы и структуры данныхВведение в алгоритмы и структуры данных
Введение в алгоритмы и структуры данных
 
Нейросетевые системы автоматического распознавания морских объектов
Нейросетевые системы автоматического распознавания морских объектовНейросетевые системы автоматического распознавания морских объектов
Нейросетевые системы автоматического распознавания морских объектов
 
Нейроморфный чип “Алтай” ориентированный на использование в РТК (ПСиЗУ 2016)
Нейроморфный чип “Алтай” ориентированный на использование в РТК (ПСиЗУ 2016)Нейроморфный чип “Алтай” ориентированный на использование в РТК (ПСиЗУ 2016)
Нейроморфный чип “Алтай” ориентированный на использование в РТК (ПСиЗУ 2016)
 
проект таланова н.п.
проект таланова н.п.проект таланова н.п.
проект таланова н.п.
 
проект таланова н.п.
проект таланова н.п.проект таланова н.п.
проект таланова н.п.
 
проект таланова н.п.
проект таланова н.п.проект таланова н.п.
проект таланова н.п.
 

Recognition of handwritten digits

  • 1. Машинное обучение Распознавание рукописных цифр Бабий А.С. - apratster@gmail.com
  • 2. Задача распознавания. Уже существует поддержка рукописного ввода Как это работает? Почему иногда не срабатывает? Как обучать готовые программы? Как научиться самому создавать обучаемые программы? Машинное обучение. Распознавание рукописных цифр. 2
  • 3. Задача распознавания. Этапы решения задачи распознавания: 1) Где взять выборки? Создаем тестовую 2) Размер выборок? и обучающую выборки 3) Что внутри выборок? 1) Подготовка данных. Выделяем признаки 2) Как сравнивать объекты? 3) Как искать признаки? Выделяем классы 1) Как определить качество кластеризации? 2) Когда остановиться Классифицируем 1)Какой алгоритм классификации выбрать? Машинное обучение. Распознавание рукописных цифр. 3
  • 4. Задача распознавания. 1. Kaggle – что это? We’re making data science a sport. 2. Как научиться? Где соревноваться? http://www.kaggle.com Машинное обучение. Распознавание рукописных цифр. 4
  • 5. Задача распознавания Выборка: Данные для этой задачи взяты из набора данных MNIST http://yann.lecun.com/exdb/mnist/ Обучающая выборка - 60000 образцов таблица с результатами применения методов + Ссылки на публикации с описанием методов Машинное обучение. Распознавание рукописных цифр. 5
  • 6. Предварительная обработка данных Матрица 28х28, цвет в градации серого от 0 до 255 1) Переходим к черно-белому изображению(адаптивный порог, метод Оцу[1]) 2) Морфологическое преобразование – уменьшаем до толщины 1 пиксела[2]. Машинное обучение. Распознавание рукописных цифр. 6
  • 7. Предварительная обработка данных Наклон символа – находим эллипс максимально близкий к нашему символу Есть функция в OpenCV, Matlab b т.п. Используется метод наименьших квадратов Машинное обучение. Распознавание рукописных цифр. 7
  • 8. Предварительная обработка данных Число Эйлера Дополнительные значимые свойства? 1) Симметрия 2) Расположение «центра масс» цифры Машинное обучение. Распознавание рукописных цифр. 8
  • 9. Предварительная обработка данных На вход сети подаются такие данные: 1) Данные о пикселах(bw) после обработки 16х16 2) Число Эйлера 3) Треть в которой расположен «центр масс» Все данные нормализованы! Машинное обучение. Распознавание рукописных цифр. 9
  • 10. Создание сети В зависимости от наших предпочтений, можем выбрать 1) Matlab 2) R, Python + libraries Для Matlab – nftool, довольно все просто понятно, мастер ИНС Библиотеки для создания ИНС Fast Artificial Neural Network Library (FANN) http://leenissen.dk Kohonen neural network library http://knnl.sourceforge.net/ Python! Neurolab http://code.google.com/p/neurolab/ Машинное обучение. Распознавание рукописных цифр. 10
  • 11. Создание сети Выбор размера скрытого слоя ИНС Слишком мало нейронов скрытого слоя – плохо Слишком много мало нейронов скрытого слоя - плохо Как подобрать? Мера Вапника-Червоненкиса Один из методов редукции сети Перебор возможных вариантов, ГА Машинное обучение. Распознавание рукописных цифр. 11
  • 12. Создание сети Пути улучшения: Машинное обучение. Распознавание рукописных цифр. 12
  • 13. Выводы 1. Важно определить стойкие признаки 2. Нормализация данных 3. ИНС – не всегда срабатывает лучше других методов! 4. Обучение - долгий процесс Понимание сути задачи первично для анализа данных Как автоматически(полуавтоматически) выявлять признаки? Качество распознавания персептроном - 88% Машинное обучение. Распознавание рукописных цифр. 13
  • 14. Результаты Машинное обучение. Распознавание рукописных цифр. 14
  • 15. Результаты Машинное обучение. Распознавание рукописных цифр. 15
  • 16. Результаты Машинное обучение. Распознавание рукописных цифр. 16
  • 17. Результаты Машинное обучение. Распознавание рукописных цифр. 17
  • 19. Источники литературы 1. Otsu, N., "A Threshold Selection Method from Gray-Level Histograms," IEEE Transactions on Systems, Man, and Cybernetics, Vol. 9, No. 1, 1979, pp. 62-66. 2. Lam, L., Seong-Whan Lee, and Ching Y. Suen, "Thinning Methodologies-A Comprehensive Survey," IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol 14, No. 9, September 1992, page 879, bottom of first column through top of second column. 3. http://leenissen.dk 4. http://knnl.sourceforge.net/ 5. http://code.google.com/p/neurolab/