Шаг 18.
Основы создания нейросети на Python. Как работают нейронные сети. Пример использования матричного умножения в сети с тремя слоями

    На этом шаге мы начнем разбирать этот пример.

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

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

    Мы начнем со знакомства с общепринятой терминологией. Как мы знаем, первый слои - входной, а второй - выходной. Промежуточный слой называется скрытым слоем. Это звучит загадочно и таинственно, но, к сожалению, здесь нет ничего загадочного и таинственного. Такое название закрепилось за промежуточным слоем из-за того, что его выходные сигналы не обязательно проявляются как таковые, отсюда и термин "скрытый".

    Приступим к работе над примером, представленным на этой диаграмме. Входными сигналами нейронной сети являются следующие: 0,9; 0,1 и 0,8. Поэтому входная матрица I имеет следующий вид.

    Это было просто, т.е. с первым слоем мы закончили, поскольку его единственная задача - просто представлять входной сигнал.

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

    Как уже было показано, сглаженные комбинированные входные сигналы для этого слоя определяются выражением X = W ⋅ I , где I - матрица входных сигналов, a W - матрица весов. Мы располагаем матрицей I, но что такое W? Некоторые из весовых коэффициентов (выбранные случайным образом) показаны на диаграмме для этого примера, но не все. Ниже представлены все весовые коэффициенты (опять-таки, каждый из них выбирался как случайное число). Никакие особые соображения за их выбором не стояли.

    Как нетрудно заметить, весовой коэффициент для связи между первым входным узлом и первым узлом промежуточного скрытого слоя w1,1 = 0,9, как и на приведенной выше диаграмме. Точно так же весовой коэффициент для связи между вторым входным узлом и вторым узлом скрытого слоя w2,2 = 0,8. На диаграмме не показан весовой коэффициент для связи между третьим входным узлом и первым узлом скрытого слоя w3,1 = 0,4.

    Постойте-ка, а почему мы снабдили матрицу W индексом "входной_ скрытый"? Да потому, что матрица Wвходной_скрытый содержит весовые коэффициенты для связей между входным и скрытым слоями. Коэффициенты для связей между скрытым и выходным слоями будут содержаться в другой матрице, которую мы обозначим как Wвходной_скрытый.

    Эта вторая матрица Wскрытый_выходной элементы которой, как и элементы предыдущей матрицы, представляют собой случайные числа, приведена ниже. Например, вы видите, что весовой коэффициент для связи между третьим скрытым узлом и третьим выходным узлом w3,3 = 0,9.

    Отлично, необходимые матрицы получены.

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




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