Расчет общего количества обучаемых параметров в нейронной сети с прямой связью вручную

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

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

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

В этом сообщении обсуждается следующая проблема:

Как найти общее количество обучаемых параметров в нейронной сети с прямой связью?

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

Глядя на простую сеть, вы можете легко подсчитать и определить количество параметров. В худшем случае можно нарисовать схему и указать количество параметров. Но что происходит, когда вы сталкиваетесь с вопросом о нейронной сети с 7 слоями и разным количеством нейронов в каждом слое, скажем, 8, 10, 12, 15, 15, 12, 6. Как бы вы узнали, сколько параметров находится в все?

Давайте вместе найдем математическую формулу для подсчета. Но прежде чем перейти к расчету, давайте сначала разберемся, что такое нейронная сеть с прямой связью и какими характеристиками она обладает. Это поможет нам найти общее количество параметров.

Нейронная сеть с прямой связью - это простейший тип искусственной нейронной сети, в которой связи между перцептронами не образуют цикла.

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

Характеристики нейронной сети с прямой связью:

  1. Персептроны расположены слоями. Первый уровень принимает входные данные, а последний слой дает выходные данные. Средние слои называются скрытыми слоями, поскольку они остаются скрытыми от внешнего мира.
  2. Каждый перцептрон в слое связан с каждым перцептроном следующего слоя. Это причина того, что информация постоянно перетекает от одного уровня к другому, отсюда и название нейронной сети с прямой связью.
  3. Между перцептронами одного слоя нет связи.
  4. Нет обратной связи (так называемой обратной связи) от текущего уровня к предыдущему уровню.

Примечание. перцептрон - это основная единица нейронной сети, которая вычисляет взвешенную сумму входных значений.

Математически нейронная сеть с прямой связью определяет отображение y = f (x; θ) и изучает значение параметров θ, которое помогает в поиске наилучшего приближения функции.

Примечание. В нейронной сети с прямой связью также есть блок смещения во всех слоях, кроме выходного. Предубеждения чрезвычайно помогают в успешном обучении, сдвигая функцию активации влево или вправо. Смущенный? 🤔 Проще говоря, смещение аналогично перехвату (константе) в линейном уравнении линии, y = mx + c, что помогает лучше подогнать линию прогноза к данным, а не линию. всегда проходит через начало координат (0,0) (в случае y = mx).

Давайте теперь воспользуемся этими знаниями, чтобы найти количество параметров.

Сценарий 1. Нейронная сеть с прямой связью только с одним скрытым слоем. Количество единиц на входном, скрытом и выходном уровнях соответственно 3, 4 и 2.

Предположения:

i = количество нейронов во входном слое

h = количество нейронов в скрытом слое

o = количество нейронов в выходном слое

На диаграмме мы имеем i = 3, h = 4 и o = 2. Обратите внимание, что нейрон красного цвета является смещением для этого слой. Каждое смещение слоя связано со всеми нейронами следующего слоя, за исключением смещения следующего слоя.

Математически:

  1. Количество соединений между первым и вторым слоями: 3 × 4 = 12, что является не чем иным, как произведением i и h.
  2. Количество соединений между вторым и третьим слоями: 4 × 2 = 8, что является не чем иным, как произведением h и o.
  3. Между слоями также есть смещения. Количество связей между смещением первого слоя и нейронами второго слоя (кроме смещения второго слоя): 1 × 4, что есть не что иное, как h.
  4. Количество связей между смещением второго слоя и нейронами третьего слоя: 1 × 2, что есть не что иное, как o.

Подводя итоги:

3 × 4 + 4 × 2 + 1 × 4 + 1 × 2

= 12 + 8 + 4 + 2

= 26

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

Попробуем обобщить это уравнение и найти формулу.

3 × 4 + 4 × 2 + 1 × 4 + 1 × 2

= 3 × 4 + 4 × 2 + 4 + 2

= i × h + h × o + h + o

Таким образом, общее количество параметров в нейронной сети с прямой связью с одним скрытым слоем равно:

(i × h + h × o) + h + o

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

Сценарий 1. Нейронная сеть с прямой связью с тремя скрытыми слоями. Количество единиц на входном, первом скрытом, втором скрытом, третьем скрытом и выходном уровнях соответственно составляет 3, 5, 6, 4 и 2.

Предположения:

i = количество нейронов во входном слое

h1 = количество нейронов в первом скрытом слое

h2 = количество нейронов во втором скрытом слое

h3 = количество нейронов в третьем скрытом слое

o = количество нейронов в выходном слое

  1. Количество соединений между первым и вторым слоями: 3 × 5 = 15, что является не чем иным, как произведением i и h1.
  2. Количество соединений между вторым и третьим слоями: 5 × 6 = 30, что является не чем иным, как произведением h1 и h2.
  3. Количество связей между третьим и четвертым слоями: 6 × 4 = 24, что является не чем иным, как произведением h2 и h3.
  4. Количество соединений между четвертым и пятым слоями: 4 × 2 = 8, что является не чем иным, как произведением h3 и o.
  5. Количество связей между смещением первого слоя и нейронами второго слоя (кроме смещения второго слоя): 1 × 5 = 5, что есть не что иное, как h1.
  6. Количество связей между смещением второго слоя и нейронами третьего слоя: 1 × 6 = 6, что есть не что иное, как h2.
  7. Количество связей между смещением третьего слоя и нейронами четвертого слоя: 1 × 4 = 4, что есть не что иное, как h3.
  8. Количество связей между смещением четвертого слоя и нейронами пятого слоя: 1 × 2 = 2, что есть не что иное, как o.

Подводя итоги:

3 × 5 + 5 × 6 + 6 × 4 + 4 × 2 + 1 × 5 + 1 × 6 + 1 × 4 + 1 × 2

= 15 + 30 + 24 + 8 + 5 + 6 + 4 + 2

= 94

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

Попробуем обобщить это уравнение и найти формулу.

3 × 5 + 5 × 6 + 6 × 4 + 4 × 2 + 1 × 5 + 1 × 6 + 1 × 4 + 1 × 2

= 3 × 5 + 5 × 6 + 6 × 4 + 4 × 2 + 5 + 6 + 4 + 2

= i × h1 + h1 × h2 + h2 × h3+ h3 × o + h1 + h2 + h3+ o

Таким образом, общее количество параметров в нейронной сети с прямой связью с тремя скрытыми слоями равно:

(i × h1 + h1 × h2 + h2 × h3 + h3 × o) + h1 + h2 + h3+ o

Таким образом, формула для нахождения общего количества обучаемых параметров в нейронной сети с прямой связью со скрытыми слоями n имеет следующий вид:

Если эта формула звучит немного подавляюще 😳, не волнуйтесь, нет необходимости запоминать эту формулу 🙅. Просто имейте в виду, что для определения общего количества параметров нам необходимо подвести следующие итоги:

  1. произведение количества нейронов во входном слое и первом скрытом слое
  2. сумма произведений количества нейронов между двумя последовательными скрытыми слоями
  3. произведение количества нейронов в последнем скрытом слое и выходном слое
  4. сумма количества нейронов во всех скрытых слоях и выходном слое

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

Ссылка:

Https://cs.stanford.edu/people/eroberts/courses/soco/projects/neural-networks/Architecture/feedforward.html

Спасибо! Оставляйте свои комментарии, если у вас есть отзывы или предложения по этому посту!

LinkedIn