Нейронная сеть - упражнение - PullRequest
1 голос
/ 28 июня 2019

Я сейчас изучаю для себя концепцию нейронных сетей и работаю с очень хорошим PDF из http://neuralnetworksanddeeplearning.com/chap1.html

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

Задача: Существует способ определения побитового представления цифры путем добавления дополнительного уровня в трехслойную сеть выше. Дополнительный уровень преобразует выходные данные предыдущего уровня в двоичное представление, как показано на рисунке ниже. Найдите набор весов и смещений для нового выходного слоя. Предположим, что первые 3 слоя нейронов таковы, что правильный выход в третьем слое (то есть старый выходной слой) имеет активацию по меньшей мере 0,99, а неправильные выходы имеют активацию менее 0,01. enter image description here

Я также нашел решение, как видно на втором изображении enter image description here

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

0.99 + 3*0.01
4*0.01

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

Большое спасибо за помощь

1 Ответ

1 голос
/ 28 июня 2019

Выход предыдущего слоя - 10x1 (x). Вес матрицы 4х10. Новый выходной слой будет 4x1. Сначала есть два предположения:

  • х равен 1 только в одном ряду. xT = [1 0 0 0 0 0 0 0 0 0]. Если вы умножите этот вектор на матрицу W, вы получите yT = ​​[0 0 0 0], потому что в x есть только 1. После умножения на W это будет только 1, кратное 0-му столбцу W, равному нулю.

  • Вторым предположением является то, что если x больше не равен 1, вместо одного x может быть xT = [0,99 0,01 0,01 0,01 0,01 0,01 0,01 0,01]. И если вы выполняете умножение х с первой строкой W, результат равен 0,05 (я считаю, что это опечатка). Когда xT = [0,01 0,99 0,01 0,01 0,01 0,01 0,01 0,01 0,01], после умножения на первую строку W результат равен 1,03. Потому что:

0,01 * 0 + 0,99 * 1 + 0,01 * 0 + 0,01 * 1 + 0,01 * 0 + 0,01 * 1 + 0,01 * 0 + 0,01 * 1 + 0,01 * 0 + 0,01 * 1 = 1,03

Так что я считаю, что есть опечатка, потому что автор, вероятно, предположил 4 из них в первом ряду W, что неверно, потому что есть 5. Потому что если в первой строке было 4 единицы, то на самом деле результаты будут 0.04 для 0.99 в первой строке x и 1.02 для 0.99 во второй строке x.

...