Что мы получаем, когда применяем простую глубокую сверточную сеть GAN к данным китайского почерка? Из набора данных, состоящего всего из 178 уникальных символов «ханзи» и 25 тысяч изображений, какие скрытые особенности китайского письма научится воссоздавать ИИ?

Модели машинного обучения GAN недавно попали в заголовки, особенно для создания гиперреальных лиц (Этот человек не существует). Итак, я хотел построить собственную сеть GAN.

Что такое GAN?

GAN расшифровываются как генеративно-состязательные сети. В этой модели используются два независимых нейронных агента, которые конкурируют друг с другом. Одному агенту поручено научиться создавать убедительные подделки, а другому — научиться ловить подделки. Вместе эти противники могут научиться генерировать невероятно убедительные поддельные данные.

Настройка

Этот эксперимент является ответвлением от учебника TensorFlow Генеративная состязательная сеть с глубокой сверткой. В этом пошаговом руководстве конкретно обсуждается создание изображений рукописных арабских цифр. TensorFlow — фантастический ресурс для машинного обучения с открытым исходным кодом, и их веб-сайт содержит учебные пособия для всех видов популярных моделей машинного обучения.

Источником входных данных было подмножество всеобъемлющей базы данных китайского почерка CASIA. В частности, это 178 символов теста HSK 1, подготовленного пользователем Kaggle Виталий Кызым. Использование всего 178 символов из тысяч доступных было вопросом снижения требований к хранению данных. Ниже показан пример входных изображений:

Чтобы повторить или воспроизвести результаты этой модели, откройте этот блокнот в Colab.

В структуру DCGAN были внесены различные улучшения для улучшения обучения более сложным изображениям китайских иероглифов. Это включало настройку размеров слоев, чтобы они соответствовали большему количеству функций в пространстве ввода, и добавление дополнительных сверточных слоев для распознавания большего количества особенностей китайского почерка. Другими словами, сеть была расширена, потому что на первый взгляд китайские иероглифы сложнее генерировать и различать, чем цифры 0–9.

Обратите внимание, что 300 эпох обучения были достигнуты за 3 часа с использованием графического процессора Google Colab в составе учетной записи Colab Pro. Настоятельно рекомендуется обучение на графическом процессоре. Особенно в бесплатной учетной записи Colab, если время выполнения не зависит от ЦП, обучение становится на несколько величин медленнее. Для машинного обучения обучение на GPU предпочтительнее, чем на CPU.

Просмотр результатов

Эпоха 0

Нейронная сеть начинает обучение на буквальном случайном шуме. Со временем компания разработает математические операции для преобразования этого случайного шума в то, как, по ее мнению, выглядит китайский язык.

Эпоха 12

ИИ теперь понимает китайский как какие-то вертикальные черные вещи на белом фоне.

Эпоха 28

Появляются комбинации вертикальных и горизонтальных штрихов.

Эпоха 37

Знакомые формы начинают появляться. Потенциально можно распознать 说 или 品.

Эпоха 65

Появляются более сложные штрихи, напоминающие крючок 或.

Эпоха 88

Композиция штрихов становится все изощреннее и убедительнее. Издалека мне показалось, что это китайский язык.

Эпоха 173

Нейронная сеть генерирует 土 и 王.

Эпоха 195

Те самые радикалы, которых мы видим? (Как и левые части 很, 佷 и 恨.)

Эпоха 266

С этого момента в модели нет очевидных улучшений. В образце из 16 символов много необычных фигур и форм: 基, 之, 书, 奴 и 店.

Китайский стиль

Китайский и английский шрифт эстетически различаются на фундаментальном уровне. Английский алфавит в основном происходит от языков с долгой историей вырезания в камне или мраморе. Китайский, с другой стороны, был языком, который развился из истории, когда его смазывали тушью. Именно по этой причине в алфавите используются простые прямые линии или кривые, в то время как китайские «ханзи» обычно содержат много плавных штрихов.

Удивительно видеть, как простая нейронная сеть находит эти скрытые функции и воспроизводит их. Это было мое первое использование моей новой подписки Google Colab Pro, и я с нетерпением жду возможности использовать ее в ближайшем будущем!