Комментарии 11
А не пробовали заточить сети на распознавание составляющих иероглифы элементов по отдельности, и затем другую сеть на распознавание иероглифов по сочетаниям и положениям элементов?
+1
Да, такой подход мы называем факторизацией, мы его тоже пробовали. Он очень хорошо работает для корейской письменности, там собственно он и используется. Для китайского качество пока получается ниже, чем у двухуровневой модели, но мы планируем продолжать исследования в этом направлении.
+3
Если честно, мне кажется этот подход и для латиницы с кириллицей должен прекрасно срабатывать. Особенно, если отслеживать не только наличие элементов, их положение, но и их способы их связанности друг с другом — отступы, засечки, промежутки, сдвиги и т.п…
+2
Да, может заработать. Здесь главный вопрос в том, каким образом такую сложную информацию закодировать в выходах нейронной сети, чтобы она при этом хорошо обучилась.
Для корейского с факторизацией всё просто и интуитивно, т.к. составляющих элементов достаточно мало, и их позиции в символе строго фиксированы. В итоге можно просто сделать у сети 4 выхода небольшого размера, которые кодируют символ.
Для китайского уже становится сложнее, потому что составляющих элементов сильно больше, как и возможных комбинаций их взаимного расположения.
С европейскими языками, кстати, скорее всего будет проще, чем с китайским, тут вопрос эксперимента. Другой вопрос будет ли от этого какая-то практическая польза, ибо алфавит там уже небольшой и распознаётся хорошо и быстро одной простенькой нейросетью.
Для корейского с факторизацией всё просто и интуитивно, т.к. составляющих элементов достаточно мало, и их позиции в символе строго фиксированы. В итоге можно просто сделать у сети 4 выхода небольшого размера, которые кодируют символ.
Для китайского уже становится сложнее, потому что составляющих элементов сильно больше, как и возможных комбинаций их взаимного расположения.
С европейскими языками, кстати, скорее всего будет проще, чем с китайским, тут вопрос эксперимента. Другой вопрос будет ли от этого какая-то практическая польза, ибо алфавит там уже небольшой и распознаётся хорошо и быстро одной простенькой нейросетью.
+3
Я пока не разобрался, в каком формате выводятся из сетей, определяющих лица, положение найденного лица на фотографии? Но почему-то уверен, что примерно в этом же формате можно их передавать сетке, оценивающей сочетание элементов.
+1
Там обычно предсказывают 3 числа, соответствующие углам поворота в пространстве (Yaw, pitch, roll) и обучают на это задачу регрессии. В символах тоже можно подумать в направлении регрессии и кодирования взаимного расположения элементов через неё, вполне возможно что заработает.
+2
Вы не пробовали CapsNet для End-to-End?
В иероглифах важно взаимное расположение небольшого количества стандартных элементов, а сильная сторона CapsNet вроде бы как раз в умении выделять подобные вещи. То есть они могут хорошо решить задачу факторизации иероглифа.
Или это тоже тупик?
В иероглифах важно взаимное расположение небольшого количества стандартных элементов, а сильная сторона CapsNet вроде бы как раз в умении выделять подобные вещи. То есть они могут хорошо решить задачу факторизации иероглифа.
Или это тоже тупик?
+2
Алексей, спасибо за подробное изложение вашего подхода к распознаванию китайских иероглифов с помощью нейронных сетей. Я, когда-то интересовался этой задачей. Хочу спросить: «Есть ли возможность воспользоваться данными растровых изображений всех 10 000 иероглифов для целей обучения?». Хотелось бы восстановить алгоритм и пропустить через него. Может удастся чем-то помочь.
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Много иероглифов – много нейросетей: как построить эффективную систему распознавания для большого числа классов?