• 10/08/2021

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

Мы уже упоминали общее уравнение и веторизированное уравнение для прямого распространения. Довольно легко создать цикл for для повторения каждого скрытого слоя. Мы предполагаем, что a[l-1] будет вводом, и получается a[l] в качестве вывода следующим образом:

a[l-1] будет вводиться и вычисляться с помощью w[i]&b[i]. Затем мы получаем a[l] в качестве вывода. В ходе выполнения мы будем кэшировать z[l] и использовать его для обратного распространения. Для обратного распространения мы используем градиентный спуск. Я не буду показывать подробное уравнение, так как оно включает в себя множество производных и уравнений. Поскольку мы начнем с функции Loss, мы возьмем da[l] в качестве входных данных и получим da[l-1] до da[1]. Мы не будем вычислять da[0], так как это не имеет никакого значения, и наша цель — найти dw[l] и db[l] для улучшения w[l] и b[l]. Мы будем использовать w=w-α.dw и b=α.db, чтобы минимизировать потери и получить подходящий вес и смещение для высокой точности и лучшей производительности. α будет скоростью обучения для сети. Обратное распространение будет выглядеть так,

Просто представьте, что вы вводите X (a [0]) в качестве входных данных, и он проходит через слой с номером m. Мы получили конечный результат (a[m]) для прямого распространения. Затем мы делаем некоторую производную и получаем da[m] и начинаем с нее для обратного распространения, пока не получим da[1]. В ходе работы мы получили много dw и db, и мы можем использовать их для улучшения значений веса и смещения для каждого скрытого слоя. Затем мы можем повторять весь процесс снова и снова, пока не будет очевидных изменений ни для веса, ни для смещения, ни для функции потерь. Просто помните, что производная функции активации должна быть такой же, как прямое распространение.

Вот что я узнал о простом построении всей глубокой нейронной сети. Еще одна вещь, которая может нас беспокоить в отношении производительности нейронной сети, — это гиперпараметр. Вместо параметра (W,b) есть некоторый гиперпараметр, используемый для управления значением W и b, такой как скорость обучения (α), количество итераций, количество скрытых слоев (L), количество скрытых единиц (n [l]) и выбор функции активации. Это довольно просто, но абсолютно идеального гиперпараметра для нейронной сети не существует. Мы должны повторить всю сеть, снова и снова меняя эти гиперпараметры, чтобы получить лучшую производительность или минимизировать функцию потерь. Кроме того, используемые нами GPU или CPU могут меняться иногда или после того, как вы настроили сеть наилучшим образом, но они также могут измениться через год. Таким образом, это не будет охватывать всех, но это также очень важно.

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

В быстром ИИ я читал о том, как мы можем использовать MNIST для получения данных. Они использовали пример для распознавания числа 3 и 7. Из MNIST мы получили некоторые данные обучения и тестирования из базы данных. Я думаю, что это важно и полезно для исследований и изучения машинного обучения. Кроме того, в нем говорилось о том, как цвет или изображение представляются в пикселях на компьютере. Они будут использовать значение RGB (255) для представления каждого пикселя, и я узнал, как мы можем это сделать, и показать это с помощью панд. Кроме того, я впервые узнаю, как работает тензор вместо использования массива Numpy. Метод, который они предложили, чтобы позволить компьютеру получить то, как выглядят 3 и 7, заключается в попытке получить среднее значение для пикселя с помощью функции стека в pytorch. После этого они будут использовать MSE или RMSE для сравнения с тестовой выборкой. После того, как тестовый образец получил более низкую MSE / RMSE от среднего изображения 3 по сравнению со средним изображением 7. Затем компьютер распознает, что это будет число 3 вместо 7. Я попытаюсь исследовать это и надеюсь, что смогу записать и запомнить, как оно на самом деле обрабатывалось в течение этой недели.

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