(Глубокое обучение) Производная обратного распространения из заметок Эндрю НГ

Вопрос или проблема

Я самостоятельно изучаю материалы курса глубокого обучения Эндрю НГ из курса машинного обучения (CS 229) Стэнфорда. Материалы доступны здесь.

У меня есть вопрос о технике цепного правила, использованной для вывода шага обратного распространения, показанного ниже (Уравнение 3.28 на странице 12). В частности, мне интересно, почему $\frac{\partial z^{[2]}}{\partial W^{[2]}}=a^{[1]}$? Очевидно, результат не может быть вектором (т.е. $a^{[1]}$), если мы дифференцируем вектор ($z^{[2]}$) по матрице ($W^{[2]}$).
введите описание изображения здесь

Кроме того, в заметках далее говорится, что размеры обеих сторон не совпадают. Это действительно меня сбивает с толку: если вывод верен, то как размеры обеих сторон могут быть не равны (см. ниже)?введите описание изображения здесь

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

Это, возможно, уже довольно поздно, но я написал статью на эту тему, которая может помочь.

https://medium.com/@tunghiem2010/a-simple-exposition-on-andrew-ngs-backpropagation-formulas-e60367a848da

.

Ответ или решение

Обучение с использованием глубоких нейронных сетей существенно изменило подходы в области машинного обучения. В данном ответе мы подробно рассмотрим вывод обратного распространения ошибки (backpropagation) из материалов курса глубокого обучения Эндрю НГ, акцентируя внимание на вопросах, связанных с использованием цепного правила и несоответствием размеров матриц.

Понимание вывода обратного распространения

Обратное распространение — это ключевой алгоритм, используемый для оптимизации нейронных сетей, позволяющий вычислить градиенты функции потерь по весам. Для нашего анализа важно изучить уравнение 3.28 на странице 12, где возникает вопрос о производной ( \frac{\partial z^{[2]}}{\partial W^{[2]}} = a^{[1]} ).

Прояснение отношения между переменными

  1. Определения:

    • ( z^{[2]} ) обозначает линейную комбинацию активации, которая рассчитывается как ( z^{[2]} = W^{[2]} a^{[1]} + b^{[2]} ), где ( W^{[2]} ) — матрица весов второго слоя, ( a^{[1]} ) — вектор активации первого слоя.
    • ( a^{[1]} ) — это вектор, состоящий из активаций предыдущего слоя.
  2. Производная по матрице:
    Чтобы понять, почему ( \frac{\partial z^{[2]}}{\partial W^{[2]}} = a^{[1]} ), необходимо воспользоваться правилом частной производной для матриц. В данном контексте следует учитывать, что производная ( z^{[2]} ) по элементам матрицы весов ( W^{[2]} ) будет иметь вид, учитывающий размерность вектора ( a^{[1]} ).

Формальная запись производной

Здесь важно помнить, что:
[
z^{[2]} = W^{[2]} a^{[1]} + b^{[2]}
]

Берем производную по матрице ( W^{[2]} ):
[
\frac{\partial z^{[2]}}{\partial W^{[2]}} = a^{[1]}
]

Это означает, что, по сути, каждый элемент ( z^{[2]} ) изменяется линейно в зависимости от изменений в соответствующих элементах ( W^{[2]} ), умноженных на ( a^{[1]} ).

Несоответствие размеров

Теперь перейдем к вопросу о несоответствии размеров. Это несоответствие может возникнуть, если неправильно понимаются размеры матриц и векторов. Давайте рассмотрим:

  1. Размерности:

    • Пусть размерность ( W^{[2]} ) равна ( (n^{[2]}, n^{[1]}) ), где ( n^{[2]} ) — количество нейронов во втором слое, а ( n^{[1]} ) — количество нейронов в первом слое.
    • Вектор ( a^{[1]} ) имеет размерность ( (n^{[1]}, 1) ).
  2. Структура производной:
    Произведение ( W^{[2]} a^{[1]} ) даст нам вектор размерности ( (n^{[2]}, 1) ), что соответствует размерности ( z^{[2]} ). Однако, когда мы берем производную ( \frac{\partial z^{[2]}}{\partial W^{[2]}} ), она будет иметь другую структуру: это будет тензор, который представляет собой набор частных производных по каждому элементу ( W^{[2]} ).

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...