Gradient descent: Difference between revisions

Content added Content deleted
m (→‎{{header|Perl 6}}: more mindless golfing)
Line 214: Line 214:


for @fi.kv -> $i, $j { @x[$i] -= $b * $j } # Calculate next value.
for @fi.kv -> $i, $j { @x[$i] -= $b * $j } # Calculate next value.

# Calculate next gradient and next value
@fi = gradG(@x, $h /= 2, g(@x)); # Calculate next gradient.
@fi = gradG(@x, $h /= 2, my $g1 = g(@x));


$b = $alpha / sqrt($delG = sum(map {$_²}, @fi) ); # Calculate next norm.
$b = $alpha / sqrt($delG = sum(map {$_²}, @fi) ); # Calculate next norm.

my $g1 = g(@x); # Calculate next value.


$g1 > $g0 ?? ( $alpha /= 2 ) !! ( $g0 = $g1 ) # Adjust parameter.
$g1 > $g0 ?? ( $alpha /= 2 ) !! ( $g0 = $g1 ) # Adjust parameter.