gradient descent for custom function
이전 댓글 표시
I have four equations:
1) e = m - y
2) y = W_3 * h
3) h = z + W_2 * z + f
4) f = W_1 * x
I want to update W_1, W_2 and W_3 in order to minimize a cost function J = (e^T e ) by using gradient descent.
x is an input, y is the output and m is the desired value for each sample in the dataset
I would like to do W_1 = W_1 - eta* grad(J)_w_1
W_2 = W_2 - eta* grad(J)_w_2
W_3 = W_3 - eta* grad(J)_w_3
Going through documentation I found out that you can train standard neural networks. But notice that I have some custom functions, so I guess it would be more of an optimization built in function to use.
Any ideas?
답변 (2개)
so I guess it would be more of an optimization built in function to use.
No, not necessarily. Your equations can be implemented with fullyConnectedLayers and additionLayers.
댓글 수: 3
L
2024년 4월 24일
e = m - y = m - W_3*h = m - W_3*(z + W_2 * z + W_1 * x )
Now if you formulate this as
e = W1*z + W2*x - m
with
W1 = W_3 + W_2*W_3 and W2 = W_1*W_3
your problem is
min: || [z.',x.']*[W1;W2] - m ||_2
and you can use "lsqlin" to solve.
댓글 수: 10
L
2024년 4월 24일
One other thing: shouldnt this W1 = W_3 + W_2*W_3 and W2 = W_1*W_3 be W1 = W_3 + W_3*W_2 and W2 = W_3*W_1 ?
Is W_2*W_3 different from W_3*W_2 and W_1*W_3 different from W_3*W_1 ?
I thought the W_i's are single numbers as usual for regression problems:
y = a*x + b
where a, b are scalars and x and y are vectors of a certain length.
L
2024년 4월 24일
L
2024년 4월 24일
Torsten
2024년 4월 24일
But then you have much more free variables to be fitted than input data. Does that make sense ?
L
2024년 4월 24일
카테고리
도움말 센터 및 File Exchange에서 Deep Learning Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!