Количество нейронов в выходном слое
Я новичок в искусственной нейронной сети, но, пожалуйста, помогите мне с этим вопросом?
Я пытаюсь реализовать искусственную нейронную сеть для распознавания символов (используя MLP и SNN). Нужно ли иметь такое же количество нейронов в выходном слое, как количество символов, которое необходимо идентифицировать. Например, нужно ли мне иметь 26+26+10 нейронов в выходном слое, если я хочу, чтобы моя сеть могла определять заглавные буквы, строчные буквы и цифры.
Что если бы мне пришлось идентифицировать все символы в наборе символов Unicode, сколько нейронов в выходном слое мне понадобится.
Существуют ли методы (динамический порог) для уменьшения этого числа или динамического добавления нейронов в выходной слой?
Пожалуйста, предоставьте ссылки на научные статьи, если это возможно. Благодарю.
1 ответ
Нет, вам не нужен размер выходного слоя, чтобы соответствовать количеству классов.
Я думаю, что вам нужно понять, что выходной слой представляет собой просто представление входных данных сети. Тем не менее, вы можете иметь любой выходной слой, который вы хотите. Если вам нужна кодировка, отражающая ваши классы, самый простой способ уменьшить количество узлов в слое - использовать двоичное кодирование.
Пример: вместо использования 8 узлов для 8 классов (1 узел на класс) вы можете использовать 3 нейрона:
Класс 0 это выход 0-0-0
Класс 1 - это выход 0-0-1
...
Класс 7 - это выход 1-1-1
Я думаю, вы поняли идею. Конечно, вы можете использовать не только двоичный, но и буквально любой метод кодирования, который вы можете себе представить (или Google).