2014 dxdy logo

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Метод градиентного спуска для функций с матричными арг.
Сообщение03.02.2017, 20:56 


23/03/14
48
Что-то туплю к вечеру.
Надо численно решить уравнение методом градиентного спуска
$u(X, Y, Z)=f(X\cdot h(Y\cdot g(Z\cdot A))) = 0$

Здесь $u, f, g, h$ - достаточно простые функции, могущие принимать как матрицу, так и скаляр.
Известно, что на выходе функции $u(X, Y, Z)$ получается скаляр.
Если, например, $f(X) = X^2$, при скалярном X, то в случае, когда $X$ - матрица, на выходе $f(X)$ получаем матрицу, каждый член которой возведён в квадрат.
$X, Y, Z, A $ - матрицы, они не квадратные, не единичные и/или др.упрощенные матрицы, но размерности у всех корректны.
Умножение матриц проходит по привычным и известным из учебников правилам.
Если бы $X, Y, Z, A $ были бы переменными, к помощи обращаться бы не стал.

Надо, чтобы решение искалось по итерациям в виде

$$u = u + \frac{du}{dx}dx + \frac{du}{dy}dy + \frac{du}{dz}dz$$

на каждой итерации. Что-то запнулся на правильном порядке/транспонировании матриц при дифференцировании, интересуют производные, дальше, думаю, и сам справлюсь.

 Профиль  
                  
 
 Re: Метод градиентного спуска для функций с матричными арг.
Сообщение03.02.2017, 23:16 
Заслуженный участник


11/05/08
32166
vladimir-2013 в сообщении #1189572 писал(а):
Известно, что на выходе функции $u(X, Y, Z)$ получается скаляр

противоречит

vladimir-2013 в сообщении #1189572 писал(а):
в случае, когда $X$ - матрица, на выходе $f(X)$ получаем матрицу, каждый член которой возведён в квадрат

.

Кроме того, вот это:

vladimir-2013 в сообщении #1189572 писал(а):
Надо, чтобы решение искалось по итерациям в виде

$$u = u + \frac{du}{dx}dx + \frac{du}{dy}dy + \frac{du}{dz}dz$$

-- ни разу не градиентный спуск (даже независимо от бессмысленности записи).

 Профиль  
                  
 
 Re: Метод градиентного спуска для функций с матричными арг.
Сообщение04.02.2017, 00:59 


23/03/14
48
Противоречий нет, если длина наложить по 1 условию на число строк первой и столбцов последней матриц.
Наверное, вы имели ввиду, что надо особым образом выбирать лямбду.
Это придирки всё или действительно хотите вникнуть подробнее и помочь?
Как бы то ни было: нужны производные, дальше постараюсь доделать сам.

 Профиль  
                  
 
 Re: Метод градиентного спуска для функций с матричными арг.
Сообщение04.02.2017, 01:09 
Заслуженный участник


11/05/08
32166
vladimir-2013 в сообщении #1189613 писал(а):
Наверное, вы имели ввиду, что надо особым образом выбирать лямбду.

Я даже не знаю, кто такая лямбда (могу лишь телепатически опознать в ней тау).

Но не в этом дело. А в том, что задача не поставлена. У Вас целевая функция -- одновременно и скаляр, и вектор.

 Профиль  
                  
 
 Re: Метод градиентного спуска для функций с матричными арг.
Сообщение04.02.2017, 01:26 


23/03/14
48
лябмда отсюда https://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D0%B4%D0%B8%D0%B5%D0%BD%D1%82%D0%BD%D1%8B%D0%B9_%D1%81%D0%BF%D1%83%D1%81%D0%BA
Матрица $X$ имеет размерность $1\cdot N$, а матрица $A:$ $M\cdot 1$
В итоге функция является скаляром не только при скалярных аргументах, но и при матричных. Интересует полный дифференциал по $X, Y, Z$

 Профиль  
                  
 
 Re: Метод градиентного спуска для функций с матричными арг.
Сообщение04.02.2017, 01:35 
Заслуженный участник


11/05/08
32166
Ну допустим. И какое отношение это
Цитата:
${\displaystyle {\overrightarrow {x}}^{[j+1]}={\overrightarrow {x}}^{[j]}-\lambda ^{[j]}\nabla F({\overrightarrow {x}}^{[j]})}$

имеет к Вашему
vladimir-2013 в сообщении #1189572 писал(а):
$$u = u + \frac{du}{dx}dx + \frac{du}{dy}dy + \frac{du}{dz}dz$$

??

--Вы совершенно правы: ни малейшего. Это уж не говоря о том, что задача так до сих пор и не поставлена.

 Профиль  
                  
 
 Re: Метод градиентного спуска для функций с матричными арг.
Сообщение04.02.2017, 10:54 


23/03/14
48
Невнимательно читали, задача поставлена
Цитата:
Как бы то ни было: нужны производные, дальше постараюсь доделать сам.

 Профиль  
                  
 
 Re: Метод градиентного спуска для функций с матричными арг.
Сообщение04.02.2017, 12:13 
Заслуженный участник
Аватара пользователя


21/12/05
5907
Новосибирск
vladimir-2013, Помогите попасть в тему.
vladimir-2013 в сообщении #1189572 писал(а):
Здесь $u, f, g, h$ - достаточно простые функции, могущие принимать как матрицу, так и скаляр

С принятием поосторожнее бы. Она всеядная или, наоборот, всепроизводящая? Впрочем, я не могу представить ни того, ни другого. Пример можно?

 Профиль  
                  
 
 Re: Метод градиентного спуска для функций с матричными арг.
Сообщение04.02.2017, 14:18 


23/03/14
48
Например, если $Y$ - матрица, и, скажем, $h(Y) = th(Y)$, то
$h\begin{pmatrix}y_{11}&  y_{12}& y_{13}& y_{14}\\ y_{21}&  y_{22}& y_{23}& y_{24}\\ y_{31}&  y_{32}& y_{33}& y_{34}\end{pmatrix} = \begin{pmatrix}th(y_{11})&  th(y_{12})& th(y_{13})& th(y_{14})\\ th(y_{21})&  th(y_{22})& th(y_{23})& th(y_{24})\\ th(y_{31})&  th(y_{32})& th(y_{33})& th(y_{34})\end{pmatrix}$, а

$\frac {dh} {dy_{11}} = \begin{pmatrix}1 - th^2(y_{11})&  0& 0& 0\\ 0&  0& 0& 0\\ 0&  0& 0& 0\end{pmatrix}$

Если же $Y$ - скаляр, то
$h(Y) = th(Y)$, а

$\frac {dh} {dy} = 1 - th^2(y)$

Здесь $th$ - гиперболический тангенс.
В данный момент задача найти градиент.

 Профиль  
                  
 
 Re: Метод градиентного спуска для функций с матричными арг.
Сообщение04.02.2017, 14:25 
Заслуженный участник


10/01/16
2315
Нда....
vladimir-2013 в сообщении #1189572 писал(а):
Надо численно решить уравнение

Видимо, надо не решить уравнение, а найти (точку?) минимум функции $u$.
vladimir-2013 в сообщении #1189572 писал(а):
в случае, когда $X$ - матрица, на выходе $f(X)$ получаем матрицу, каждый член которой возведён в квадрат.

Видимо, не матрицу, а число, равное сумме квадратов элементов матрицы (то бишь, квадрат ейной "евклидовой" нормы).
И тогда на выходе, глядишь, и получим метод наименьших квадратов....
Так что:
bot в сообщении #1189666 писал(а):
Пример можно?


?

-- 04.02.2017, 16:32 --

vladimir-2013
Это пока еще не пример - нет прочих функций. Нельзя ли и их указать?
Мне не нравятся Ваши функции от матриц - поэлементные. Ну пусть пока - так. Что дальше?
Укажите хотя бы одну конкретную $u$... И будет Вам тогда полный градиент....

 Профиль  
                  
 
 Re: Метод градиентного спуска для функций с матричными арг.
Сообщение04.02.2017, 14:57 


23/03/14
48
Итак, $u(X, Y, Z)=f(X\cdot h(Y\cdot g(Z\cdot A))) = 0$
Пускай для простоты все $f(X) = th(X), g(Y) = th(Y), h(Z) = th(Z)$.
$X = \begin{pmatrix}x_{1}&  x_{2}& x_{3}\end{pmatrix} $
$Y = \begin{pmatrix}y_{11}&  y_{12} & y_{13}& y_{14}\\ y_{21}&  y_{22}& y_{23}& y_{24}\\ y_{31}&  y_{32}& y_{33}& y_{34}\end{pmatrix} $
$Z = \begin{pmatrix}z_{11}&  z_{12}\\ z_{21}&  z_{22}\\z_{31}&  z_{32} \\z_{41}&  z_{42} \end{pmatrix} $
$A = \begin{pmatrix}a_{1}\\  a_{2}\end{pmatrix} $

На выходе получается скаляр.
Надо найти (похоже, только численно), при каких $x_{ij}, y_{ij}, z_{ij} $
выражение (u - u_{0})^{2} = min$ хотя бы приблизительно. Понятно, что минимумов может быть много, что можно застрять в локальном минимуме, что многое зависит от выбора начальной точки и т.д., но меня сейчас интересуют производные.

 Профиль  
                  
 
 Re: Метод градиентного спуска для функций с матричными арг.
Сообщение04.02.2017, 16:00 
Заслуженный участник


10/01/16
2315
$\operatorname{grad} (u-u_0)^2 = 2(u-u_0)\operatorname{grad} u$
$u = \th ( \sum\limits_{i=1}^{3} x_i\cdot h_i)$,
$h_i = \th (\sum\limits_{j=1}^{4} y_{ij}\cdot g_j)$
$g_j = \th (a_1z_{j1} + a_2 z_{j2})$
Теперь аккуратно считаем все частные производные по $x_i, y_{ij}, z_{jk}$, пользуясь правилами дифференцирования (делов то - всего 23 частных производных :D )... Громоздко, но не смертельно....
В виде матричных равенств оформить - проблематично - уж больно у Вас специфические операции над матрицами , но и не нужно: все равно при численной реализации придется все расписывть в виде сумм..

 Профиль  
                  
 
 Re: Метод градиентного спуска для функций с матричными арг.
Сообщение04.02.2017, 16:20 


23/03/14
48
Надо именно в виде матричных равенств, обычный путь слишком громоздкий.

 Профиль  
                  
 
 Re: Метод градиентного спуска для функций с матричными арг.
Сообщение04.02.2017, 17:37 


15/04/12
162
Для матричных функций можно вот так искать - скажем если $$f(X) = X^{T} X,$$ то
$$f(X+\delta X) - f(X) = (\delta X)^{T} X + X^{T} \delta X$$
$\delta X$ это конечно матрица, но после подходящих решейпов и преобразования матричного произведения в тензорное получается линейно отображение от $vec (\delta X)$ - как раз производная
(правило такое - $vec(AXB) = (B^T \otimes A) vec(X)$, $vec$ векторизация в columnwise порядке)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Mikhail_K, Shadow


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group