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 ] 

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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