Чтобы использовать многомерный вход, вам понадобятся многомерные нейроны (которые, я полагаю, ваш формализм не поддерживает). К сожалению, вы не указали какую-либо информацию о своей структуре сети, которая, по моему мнению, является основным источником проблем. Всякий раз, когда вы оцениваете представление функции, вам нужно знать, как будет структурирован входной уровень: если это непрактично, вам, вероятно, потребуется другое представление.
Ваш многомерный вектор: Сеть, которая принимает 1 изображение в качестве входных данных, имеет только 1 (!) Входной узел, содержащий несколько векторов (соответственно строк). Это худшее Возможное представление ваших данных. Если мы:
- сгладить входную иерархию: мы получаем 1 входной нейрон для каждой строки.
- полностью сгладить входную иерархию: мы получаем 1 входной нейрон для каждого пикселя.
Подумайте обо всех трех подходах и о том, что они делают с вашими данными. Последний подход почти всегда так же плох, как и первый подход. Нейронные сети работают лучше всего с функциями. Особенности не являются реструктуризацией пикселей (ваши векторы строк). Они должны быть META-данными, которые вы можете получить из пикселей: Яркость, места, где мы переходим от белого к белому, ограничивающие прямоугольники, кромки, формы, массы тяжести ... есть тонны вещей, которые можно выбрать как функции в изображении обработка. Вы должны подумать о своей проблеме и выбрать один (или более).
В конце концов, когда вы спрашиваете о том, как «объединить строки в один вектор»: вы просто перефразируете «поиск вектор-функции для всего изображения». Вы определенно не хотите «конкатенировать» ваши векторы и загружать необработанные данные в сеть, вам нужно найти информацию, прежде чем использовать сеть. Это важно для предварительной обработки.
Для получения дополнительной информации о том, какие функции могут быть жизнеспособными для OCR, просто прочитайте некоторые документы. Наиболее успешной сетью atm является Convolutional Neural Network. Отправной точкой для выделения функции темы является here.
Относительно вектора векторного представления. Можем ли мы, например, рассматривать каждую строку как «одно значение», а не одну. –
@HaniGoc Я не специалист по нейронным сетям, но в принципе, если ваш уровень ввода имеет меньше узлов, чем у вас есть, вы уже сжимаете данные. Поэтому я полагаю, что это возможно; по моему опыту, хотя нажатие всего изображения в виде векторной функции 1D работает достаточно хорошо. –
Хотя это «возможно», общая жизнеспособность этого отображения объектов сомнительна. См. Мой ответ ниже. В его случае конкатенация также не «переупорядочивание данных», а реструктуризация самой сети. – runDOSrun