• 07/08/2021

То, что я узнал, будет сосредоточено на нейронной сети Deep L-layer. Глубокая нейронная сеть представляет собой сеть с большим количеством скрытых слоев вместо логистической регрессии или двухслойной NN. Некоторую проблему можно легко решить с помощью неглубокой нейронной сети или логистической регрессии. Было высказано предположение, что мы можем начать с проблемы, используя логистическую регрессию или неглубокую нейронную сеть. Затем мы можем попытаться настроить количество скрытых слоев или какой-либо гиперпараметр, чтобы определить наиболее подходящую глубокую нейронную сеть.

Обозначение глубокой нейронной сети очень похоже на нейронную сеть, поскольку они используют одни и те же символы для представления количества слоев (L), количества единиц в слое (n [l]), с использованием веса (w [l]) и смещения(b[l]) для вычисления значения(z[l]) и функции активации(a[l]) в слое l. Эти обозначения очень важны для кодирования этих уравнений для прямого/обратного распространения.

Прямое распространение очень похоже на то, что было раньше. Для первого слоя (l=1) мы должны сначала вычислить z[1], используя z[1] = w[1].X(a[0]) +b[1]. После этого мы должны применить функцию активации к z[1] по формуле a[1] = g[1](z[1]). Это первый уровень, и мы будем работать над вторым уровнем, вычислив z[2] = w[2].a[1]+b[2] и a[2] = g[2](z[2]), поэтому на. Следовательно, мы можем получить уравнение генерации и векторизовать его следующим образом:

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

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

Это может помочь вам определить размерность каждого параметра. При векторизации этих параметров просто замените эти 1 на m (размер выборки) для X, Z и A.

Почему нам нужно использовать глубокую нейронную сеть вместо мелкой сети или логистической регрессии?

Собственно, глубокий смысл, включавший в себя множество скрытых слоев. Эти скрытые слои будут пытаться работать от простого к сложному случаю. На примере распознавания изображений. Для первого скрытого слоя он просто попытается распознать некоторые края в небольшой области изображения. Чтобы стать более сложным, он попытается сгруппировать края, чтобы они стали частью узора изображения, и он попытается снова сгруппировать этот узор, чтобы сформировать еще один сложный узор из большей области. Наконец, это поможет распознать целостное изображение с самым сложным рисунком. Кроме того, ту же идею можно применить к человеческому лицу или звуку. Вот что представляет глубина. Другая причина заключается в том, что для решения сложной проблемы с использованием неглубокой сети потребуется много времени. На примере однослойной нейронной сети. Количество единиц должно быть экспоненциально большим, а сложность алгоритма будет O (2 ^ n), и она будет O (log n) при использовании глубокой нейронной сети, поскольку расчет может работать одновременно для решения проблемы из от простого к сложному.

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