Нет необходимости использовать нейронную сеть, достаточно алгебры матриц!
Ваш вопрос может быть сформулирован как задача оптимизации, т. Е. minimize f(T) = norm(y - T*x)
задано y
и x
, Если у вас достаточно пар данных (x,y)
, то вы можете решить T
.
Другой простой способ - использовать обобщенную обратную матрицу для решения переноса матрица T
, т. е. T = Y*ginv(X)
. Здесь я покажу вам пример на языке R
library(MASS)
Y <- matrix(1:36,nrow = 9)
X <- matrix(1:16,nrow = 4)
T <- Y %*% ginv(X)
, где
> X
[,1] [,2] [,3] [,4]
[1,] 1 5 9 13
[2,] 2 6 10 14
[3,] 3 7 11 15
[4,] 4 8 12 16
> Y
[,1] [,2] [,3] [,4]
[1,] 1 10 19 28
[2,] 2 11 20 29
[3,] 3 12 21 30
[4,] 4 13 22 31
[5,] 5 14 23 32
[6,] 6 15 24 33
[7,] 7 16 25 34
[8,] 8 17 26 35
[9,] 9 18 27 36
и перевод T
решается как
> T
[,1] [,2] [,3] [,4]
[1,] 1.95 1.025 0.1 -0.825
[2,] 1.65 0.925 0.2 -0.525
[3,] 1.35 0.825 0.3 -0.225
[4,] 1.05 0.725 0.4 0.075
[5,] 0.75 0.625 0.5 0.375
[6,] 0.45 0.525 0.6 0.675
[7,] 0.15 0.425 0.7 0.975
[8,] -0.15 0.325 0.8 1.275
[9,] -0.45 0.225 0.9 1.575
Чтобы проверить полученный T
, вы можете использовать
> norm(Y - T%*%X,"2")
[1] 1.178746e-13
, который близок к 0
, указывая, что полученный T
действителен.