Concepts:
Examples
We can try many values randomly:
Gradient: $\nabla f = \begin{pmatrix} \frac {\partial f} {\partial x_1}\\ \frac {\partial f} {\partial x_2} \\ ... \end{pmatrix} $ — direction of fastest ascent.
With $\nabla f(x, y, ...)$ we can optimize much faster.
$$\nabla f(x)$$ $$f'(x)$$ $$f''(x)$$ $$...$$
def f(a, b):
c = a*b
d = sin(c)
return d
def f(a, da, b, db):
c, dc = a*b, da*b + a*db
d, dd = sin(c), dc * cos(c)
return d, dd
def f(a, b):
c = a*b
if c > 0:
d = log(c)
else:
d = sin(c)
return d
a=2, b=3
c=a*b=6
d=log(c)=1.791
return d=1.791
a=2, b=3, da=1, db=0
c=a*b=6, dc=da*b + a*db=3
d=log(c)=1.791, dd=dc*(1/c)=0.5
return d=1.791, dd=0.5