Добро пожаловать в сообщество Tencent Cloud +, чтобы получить больше обширной технической практики Tencent по галантерее ~
Эта статья написанаСюй ФаньвэньОпубликован вКолонка «Облако + сообщество»
Модель CNN-RNN от Quickdraw
Модель отрисовки, используемая в "Guess Xiaoge", по сути является классификационной моделью. Входными данными являются координаты точки штриха и начальная идентификационная информация каждого штриха. Применяется несколько каскадных одномерных сверток, а затем используется слой BiLSTM. , Результаты суммируются и окончательно классифицируются с использованием слоя Softmax.
Вся структура сети показана на рисунке:
Структура моделиДанные и код из открытых источников подробно описаны в следующих справочных документах. Вся сеть относительно проста, а окончательная точность модели с параметрами по умолчанию составляет 75%.Как показано на рисунке ниже, это не требовательная сцена, и эффект достаточно хорош.
Здесь я делюсь несколькими интересными мелочами, которые заметил автор (мастер стучит).
мельчайший
предварительная обработка данных
Для штриха-3 (x, y, n) данные TFRecord, используемые Google по умолчанию, нормализуют и различают координаты.
# 1. Size normalization.
lower = np.min(np_ink[:, 0:2], axis=0)
upper = np.max(np_ink[:, 0:2], axis=0)
scale = upper - lower
scale[scale == 0] = 1
np_ink[:, 0:2] = (np_ink[:, 0:2] - lower) / scale
# 2. Compute deltas.
np_ink[1:, 0:2] -= np_ink[0:-1, 0:2]
np_ink = np_ink[1:, :]
Зачем нормализовать?
- Подобно роли входного слоя BN, распределение данных корректируется из области сходимости исходной функции активации в область с большим градиентом
- Заботьтесь только о тенденции штриха картины, а не о размере картины, то есть нет большой разницы между рисованием большого круга и рисованием маленького круга на уровне входных данных.
Зачем обрабатывать разницу?
- Игнорировать влияние положения начальной координаты, то есть начать рисовать одну и ту же фигуру в середине и четырех углах холста, и нет большой разницы в уровне входных данных.
сверточный слой
Множественные одномерные свертки (conv1d) каскадируются, и используются линейные функции активации, слой пула не используется.
- Линейная активация была изменена на relu, и показатель точности немного снизился до 73%.
- Линейная активация изменена на relu+ плюс объединяющий слой (размер = 4, шаг = 4), а уровень точности снова снижен до 70%.
Почему эффект линейной активации и удаления слоя пула улучшается на 2-3 балла?
Какова роль объединяющего слоя:
- Уменьшение количества параметров, фактически добавление объединяющего слоя сокращает время обучения более чем вдвое;
- Чтобы поддерживать локальную инвариантность признаков, кажется, что наш ввод - это не сложная информация о пикселях изображения, а информация об штрихе, и выполняется обработка различий, и локальная инвариантность не очень необходима;
- Уменьшение избыточности и удаление шума может быть не особенно очевидным для простых штрихов.
Автор (чисто) понимает, что простые штрихи уже сильно абстрагируются людьми для объектов, поэтому нет необходимости использовать сложные сети CNN для абстрагирования признаков, а глобальные признаки получаются последующим уровнем RNN.
мелкое мышление
Google запустил веб-версию QuickDraw в ноябре 2016. В последнее время она снова стала популярной только с помощью апплета, до этого было получено большое количество реальных пользовательских данных и использовано для оптимизации эффекта этого апплета.
Для чего еще можно использовать модели?
Недавно я видел статью, в которой изучается взаимосвязь между порядком рисования людей в разных странах и их национальными характерами в этих данных фигурок, а модель классификации временных рядов имеет много исследований и достижений в области анализа аномалий, распознавания почерка. , распознавание речи, классификация текста и т.д.
Разница в рисовании круговАвтор изучил аномальный анализ пользователей компьютеров на этапе последипломного образования и создал модель классификации в соответствии с траекторией мыши пользователя и работой клавиатуры, чтобы определить, работает ли он. Теперь, когда я думаю об этом, должно быть неплохо использовать эту модель непосредственно для запуска предыдущей задачи.
На уровне продукта, какие еще инновации мы можем иметь?
- AutoDraw: автоматически превращайте свои рисунки в красивые художественные изображения (доступно в Google).
- Рисование историй: рисуйте 4-кадровые комиксы, система автоматически сгенерирует историю (это не должно быть проблемой с технологией NLG верхнего уровня)
- Оценка чертежей: автоматически оценивайте свои чертежи по инновациям, техническим характеристикам, полноте и т. д.
Какую ценность могут иметь эти данные о картинах, которые можно добыть?
Живопись - это то, как люди описывают мир, который они понимают по-своему. Если вы начнете с этих простых набросков, вы сможете научиться понимать объекты и мир. Короче говоря, вы можете перейти к этапу высокого уровня абстракции текущего распознавания изображений. алгоритмы Улучшение эффекта некоторых задач, немного более сложные могут даже использоваться для улучшения способности к рассуждению машин и изучения способности людей абстрактно моделировать объекты и мир (мозговые дыры).
Справочная документация
tensorflow.nuggets.im/tutorials/day…
woohoo.сердце машины.com/articles/20…
вопросы и ответы
Как реализовать расчет сверточного слоя CNN?
Связанное Чтение
Введение и применение принципов планирования Linux (часть 1)
Эта статья была разрешена автором для публикации сообщества Tencent Cloud +, исходная ссылка: https://cloud.tencent.com/developer/article/1171905?fromSource=waitui.
Добро пожаловать в сообщество Tencent Cloud+ или подпишитесь на общедоступную учетную запись WeChat облачного сообщества (QcloudCommunity), чтобы как можно скорее получить больше массовой технической практики по сухим товарам~
Огромный технический практический опыт, все вСообщество Юнцзя!