Шаг 14.
Основы создания нейросети на Python.
Как работают нейронные сети. Распространение сигналов по нейронной сети

    На этом шаге мы рассмотрим общие принципы распространения сигналов по сети.

    Приведенная на предыдущем шаге картинка с тремя слоями нейронов, каждый из которых связан с каждым из нейронов в предыдущем и следующем слоях, выглядит довольно привлекательно.

    Однако интуиция подсказывает нам, что рассчитать распространение входных сигналов по всем слоям, пока они не превратятся в выходные сигналы, не так-то просто, и нам, скажем так, придется хорошенько потрудиться!

    Понятно, что эта работа непростая, но также важно показать, как работает этот механизм, чтобы мы всегда четко представляли себе, что происходит в нейронной сети на самом деле, даже если впоследствии мы используем компьютер, который выполнит вместо нас всю работу. Поэтому мы попытаемся проделать необходимые вычисления на примере меньшей нейронной сети, состоящей всего лишь из двух слоев, каждый из которых включает по 2 нейрона, как показано ниже.

    Предположим, что сигналам на входе соответствуют значения 1,0 и 0,5.

    Как и раньше, каждый узел превращает сумму двух входных сигналов в один выходной с помощью функции активации. Мы также будем использовать сигмоиду:

              1
      y = ---------
           1 + e-x
с которой вы до этого познакомились, где х - это сумма сигналов, поступающих в нейрон, а у - выходной сигнал этого нейрона.

    А что насчет весовых коэффициентов? Это очень хороший вопрос: с какого значения следует начать? Давайте начнем со случайных весов:

    Выбор случайных начальных значений - не такая уж плохая идея, и именно так мы и поступали, когда ранее выбирали случайное начальное значение наклона прямой для простого линейного классификатора. Случайное значение улучшалось с каждым очередным тренировочным примером, используемым для обучения классификатора. То же самое должно быть справедливым и для весовых коэффициентов связей в нейронных сетях.

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

    Приступим к вычислениям!

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

    С первым слоем все просто - никаких вычислений.

    На следующем шаге мы закончим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг