Полносвязный нейронный слой

В предыдущих разделах мы заложили основную логику организации и работы нейронной сети. Сейчас же мы переходим к конкретному ее наполнению. Начинаем построение непосредственных рабочих элементов — нейронных слоев и составляющих их нейронов. И начнем мы с построения полносвязного нейронного слоя.

Именно полносвязные нейронные слои составляли Перцепртон, созданный Фрэнком Розенблаттом в 1957 году. В данной архитектуре каждый нейрон слоя имеет связи со всеми нейронами предыдущего слоя. При этом каждая связь имеет свой весовой коэффициент. На рисунке ниже представлен перцептрон с двумя скрытыми полносвязными слоями. Выходной нейрон тоже можно представить как полносвязный слой с одним нейроном. Практически всегда на выходе нейронной сети мы будем использовать как минимум один полносвязный слой.

Можно сказать, что каждый нейрон оценивает общую картину входного вектора и реагирует на появление некоего паттерна. Благодаря подбору различных весовых коэффициентов выстраивается модель, в которой каждый нейрон реагирует на свой паттерн входного сигнала. Именно это свойство позволяет использовать полносвязный нейронный слой на выходе моделей-классификаторов.

Перцентрон имеет 2 срытых полносвязных слоя.

Перцентрон имеет 2 срытых полносвязных слоя.

Если рассматривать полносвязный нейронный слой со стороны векторной математики, в представлении которой вектор входных значений представляет некую точку в N-мерном пространстве (где N — количество элементов во входном векторе), то каждый нейрон строит проекцию этой точки на своем векторе. При этом функция активации решает, передавать ли сигнал далее.

Здесь следует обратить внимание еще на момент смещения полученной проекции относительно начала координат. В то время как функция активации настроена на принятие решение в строгом диапазоне исходных данных, это смещение для нас является системной ошибкой. Для компенсации этого смещения на каждом нейроне вводится дополнительная константа, называемая bias. На практике данная константа подбирается в процессе обучения вместе с весовыми коэффициентами. Для этого к вектору входного сигнала добавляется еще один элемент с постоянным значением 1, а подобранный весовой коэффициент при этом элементе и будет выполнять роль bias.