Приложение
Если вы еще не внедрили алгоритмы машинного обучения, прежде чем действительно стоит проверить: www.ml-class.org
Это бесплатный урок, который проводит Эндрю Нг, директор Стэнфордского центра машинного обучения.Курс представляет собой полностью онлайновый курс, посвященный реализации широкого спектра алгоритмов машинного обучения.Он не слишком разбирается в теоретических тонкостях алгоритмов, а скорее учит, как выбирать, реализовывать, использовать алгоритмы и как диагностировать их производительность.- Это уникально тем, что ваша реализация алгоритмов проверяется автоматически!Это отлично подходит для начала работы в области машинного обучения, так как у вас есть мгновенная обратная связь.
В классе также есть как минимум два упражнения по распознаванию рукописных цифр.(Упражнение по программированию 3: с многочленовой классификацией и Упражнение по программированию 4: с нейронными сетями с прямой связью)
Класс начался некоторое время назад, но все еще должна быть возможность зарегистрироваться.Если нет, новый запуск должен начаться в начале следующего года.Если вы хотите иметь возможность проверить свои реализации, вам нужно зарегистрироваться на «Advanced Track».
Один из способов реализовать распознавание рукописного ввода
Ответ на этот вопрос зависит от ряда факторов, в том числе от того, какие у вас есть ограничения на ресурсы (встроенная платформа) и есть ли у вас хорошая библиотека символов с правильной маркировкой: т.е. различные примеры рукописного письма, для которого вы знаете, чтобукву, которую они представляют.
Если у вас есть библиотека приличного размера, возможно, вам потребуется реализация быстрого и грязного стандартного алгоритма машинного обучения.Вы можете использовать многочленные классификаторы, нейронные сети или машины опорных векторов.
Я считаю, что машина опорных векторов будет быстрее всего реализовать, поскольку есть отличные библиотеки, которые обрабатывают часть кода машинного обучения для вас, например libSVM .Если вы знакомы с использованием алгоритмов машинного обучения, это может занять менее 30 минут.
Основная процедура, которую вы, вероятно, захотите реализовать, выглядит следующим образом:
Обучениекакие символы «выглядят»
- Бинаризируйте изображения в вашей библиотеке.
- Разверните изображения в массивы векторов / 1-D.
- Передайте«векторное представление» изображений в вашей библиотеке и их меток в libSVM, чтобы узнать, как пиксельное покрытие соотносится с представленным символом для изображений в библиотеке.
- Алгоритм возвращает вам наборпараметры модели, которые описывают алгоритм распознавания, который был изучен.
Вы должны повторить 1-4 для каждого символа, который хотите распознать, чтобы получить соответствующий набор параметров модели.
Примечание: шаги 1-4 вам нужно выполнить только один раз для вашей библиотеки (но один раз для каждого символа, который вы хотите распознать).Вы можете сделать это на своем компьютере разработчика и включить параметры только в код, который вы отправляете / распространяете.
Если вы хотите распознать символ:
Каждый наборПараметры модели описывает алгоритм, который проверяет, представляет ли символ один конкретный символ или нет.Вы «узнаете» символ, протестировав все модели с текущим символом, а затем выбрав модель, которая наилучшим образом соответствует тестируемому символу.
Это тестирование выполняется путем повторной передачи параметров модели и символа для тестирования.в развернутом виде в библиотеку SVM, которая вернет пригодность для протестированной модели.