Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 Матричные производные
Аватара пользователя
Пытаюсь взять производную у функции:
$$L = f \cdot y;  f = X \cdot W + b$$
Размерности матриц $X.shape=(1, m), W.shape=(m,10), b.shape=(1, 10), y.shape=(10, 1)$
Надо найти $\frac{\partial L}{\partial W}$
Чтобы найти, использую цепное правило:
$$\frac{\partial L}{\partial W} = \frac{\partial L}{\partial f}  \frac{\partial f}{\partial W} $$

Тогда берем производную, по формуле с википедии: $$ \frac{\partial L}{\partial f}  = y$$
И находим $$ \frac{\partial f}{\partial W} = X$$
И проблема в том, что размерность всей производной $\frac{\partial L}{\partial W} $ получается $(10, m)$. Хотя понятно, то размерность должна совпадать с размерностью $W$. Подскажите, в чем ошибка?

 Re: Матричные производные
Аватара пользователя
MestnyBomzh в сообщении #1368269 писал(а):
Хотя понятно, то размерность должна совпадать с размерностью $W$
Понятно, что вам непонятно. И скажите на милость, зачем брать производную линейной функции? И, кстати, поскольку аргумент матричный, то очень важен порядок сомножителей. Например, производная (а лучше говорить о дифференциале!) $X^2$ будет $d(X^2)= X(dX) + (dX)X$, а $dX^{-1}=-X^{-1}(dx)X^{-1}$ и никак не иначе

 Re: Матричные производные
Аватара пользователя
Red_Herring в сообщении #1368272 писал(а):
зачем брать производную линейной функции?

Я реализую в нейронной сети функционал прокидывания градиентов через слои. Слои там линейные, отсюда и необходимость.
Red_Herring в сообщении #1368272 писал(а):
очень важен порядок сомножителей

То есть в моём случае будет так?
$$\frac{\partial L}{\partial W} = \frac{\partial (f \cdot y) }{\partial W} = \frac{\partial (XW+b) }{\partial W} y $$

 Re: Матричные производные
Аватара пользователя
MestnyBomzh Не надо писать производных, пишите дифференциалы. Потому что дифференциал это линейная функция аргумента $dW$, а производная это коэффициент. И для матричных функций совсем неясно из такой записи с пропущенным $dW$, где $dW$ должен стоять--справа, слева или вообще в середке.

 Re: Матричные производные
Аватара пользователя
Red_Herring в сообщении #1368277 писал(а):
для матричных функций совсем неясно из такой записи с пропущенным $dW$, где $dW$ должен стоять--справа, слева или вообще в середке.

Согласен, я как раз тут и запутался.

Окей, тогда я использую формулу: $d(AXB) = A(dX)B$
И у меня получается вот так:
$$ d(L) = d(f \cdot y) = d(f) \cdot y = d (X \cdot W + b)y = X \cdot dW \cdot y $$
И теперь размерности не бьются, матрицу $X$ не получится умножить на $y$.

 Re: Матричные производные
Аватара пользователя
MestnyBomzh в сообщении #1368288 писал(а):
И теперь размерности не бьются, матрицу $X$ не получится умножить на $y$.
А с чего вдруг их надо умножать? Между ними всегда прослойка в виде $W$ или $dW$.

 Re: Матричные производные
Аватара пользователя
Да, согласен. Но это мы нашли дифференциал $L$, а производная - это коэффициент перед дифференциалом. Но тут, когда дифференциал стоит между двух множителей как-то не особо понятно как привести к виду $K \cdot dW$

 Re: Матричные производные
Аватара пользователя
MestnyBomzh в сообщении #1368301 писал(а):
Между ними всегда прослойка в виде $W$ или $dW$.

Интуитивно я понимаю, что её можно опустить, чтобы получить производную. Но как это обосновать строго?

 Re: Матричные производные
Аватара пользователя
MestnyBomzh в сообщении #1368432 писал(а):
Интуитивно я понимаю, что её можно опустить, чтобы получить производную.
Вот и неправильно понимаете. Матричной производной не существует. И дело не только в размерностях, а в том, что матрицы не коммутируют. Существуют только частные производные по отдельным элементам $W$.

 Re: Матричные производные
Аватара пользователя
Red_Herring в сообщении #1368434 писал(а):
Существуют только частные производные по отдельным элементам $W$.

Да, понял. Просто обозначение $ \frac{\partial L}{\partial W}$ часто вводит в заблуждение, будто это производная по матрице.
Так а как дальше действовать, после того, как я нашёл дифференциал?

 Re: Матричные производные
Аватара пользователя
MestnyBomzh в сообщении #1368437 писал(а):
Так а как дальше действовать, после того, как я нашёл дифференциал?
Радоваться жизни. А в чем проблема?

 Re: Матричные производные
Аватара пользователя
Red_Herring в сообщении #1368442 писал(а):
А в чем проблема?

Ну я же хотел найти подтверждение тому, что $ \frac{\partial L}{\partial W}$ действительно имеет размерность $(m, 10)$
Плюс мне нужно $ \frac{\partial L}{\partial W}$ для вычислений (шаг градиентного спуска)

 Re: Матричные производные
Аватара пользователя
MestnyBomzh в сообщении #1368444 писал(а):
Ну я же хотел найти подтверждение тому, что...
Ну он не существует.

Цитата:
Плюс мне нужно ... для вычислений (шаг градиентного спуска)
Так вам нужны частные производные по $W_{jk}$, а вовсе никакая не матричная производная (и при этом производные и первого, и второго порядков)

 Re: Матричные производные
Аватара пользователя
Red_Herring в сообщении #1368476 писал(а):
производные по $W_{jk}$

Мне нужно сделать шаг градиентного спуска: $$ W_{i+1} = W_{i} - l \cdot    \frac{\partial L}{\partial W}$$ Где $ \frac{\partial L}{\partial W}$ - эта матрица частных производных. Так вот, мне и надо найти эту матрицу и убедиться, что она имеет нужную размерность
Не искать же мне её покомпонентно, по каждой компоненте $i$ и $k$

 Re: Матричные производные
Аватара пользователя
MestnyBomzh в сообщении #1368483 писал(а):
Не искать же мне её покомпонентно, по каждой компоненте
Именно покомпонентно. Но какую функцию вы минимизируете? Не линейную же по $W$?

 [ Сообщений: 22 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group