Продолжая совершенствовать распознавание рукописного текста, наиболее заметного результата Google добилась с помощью машинного обучения.
В первоначальном подходе Google строка разбивалась на отдельные письменные символы, каждый из которых ассоциировался с несколькими вариантами подходящих букв, а затем подбирались наиболее вероятные слова.
Теперь же происходит анализ последовательности ключевых точек с учётом временных меток и штрихов между ними, которая затем нормализируется и преобразуется в кубические кривые Безье. Этот процесс декодирования символов предоставляет вводные данные для многослойной рекуррентной нейронной сети (RNN). Экспериментируя с различными типами RNN, разработчики Google остановились на квазирекуррентных нейронных сетях (QRNN). Они обеспечивают лучшие результаты прогнозирования, что становится возможным благодаря чередованию свёрточных и рекуррентных слоёв.
Новый подход позволил существенно, на 20–40 %, уменьшить количество ошибок при распознавании рукописного текста. Но для обеспечения удобного пользовательского окружения недостаточно добиться точной работы, её нужно сделать ещё и быстрой. Поэтому разработчики сконвертировали обученные в TensorFlow модели в модели TensorFlow Lite, вчетверо сократив нагрузку, и достигли минимальных задержек в клавиатуре Gboard при исполнении всех задач на самом мобильном устройстве.
Источник: