Нейронные сети в первую очередь не про сами сети, а про данные, на основе которых они обучаются.
Чем больше данные покроют случаев, тем лучше, можно даже нагенерировать дополнительно изображений, на основе имеющихся.
Характер генерации определяет способ получения этих изображений, к примеру есть ли на них шумы (тогда генерируй их создавая из одной картинки сотни), возможны ли искажения (размеры,повороты, нужно ли это учитывать при сравнении) и т.п.
Чем больше будет пар картинок (включая все комбинации всех имеющихся) тем больше шансов что сеть 'поймет' что именно определяет похожесть.
Про RGB, а характер изменений, в пределах которых нужно считать изображения похожими цвет участвует? если нет то почему бы от него вообще не избавиться? Или наоборот, отдавай сразу в одну сеть все три канала, она разберется. Еще можно заменить RGB на HSL (оно ближе к человеческому восприятию и его пониманию похожести).
Про слои, обычно первый слой - это классификатор, даже предлагают сначала искать классификатор а потом брать его сеть как часть будущей сети, решающей задачу, как способ ускорения поиска. Последующие слои определяют сложность задачи
p.s. попробуй вариант сети, когда один выход является оценкой похожести... с точки зрения реализации нет никакой разницы, но для сети это может быть проще чем искать два бинарных выхода