あれ
2023/7/26 0:04:00
学習においては実はこれはいらんかった説がある。極小値で勾配出すやつで問題ないというか、計算量的にそこまでヘヴィでない可能性が高い。
つまるところ、下記のコードでいったんは事足りる。速度が欲しくなったら微分の計算をガチれば良い。
func dcos_sim_minimum(X []float64, Y []float64, t float64) []float64 {
d := 1e-10
outputs := []float64{}
for i := range X {
dX := make([]float64, len(X))
copy(dX, X)
dX[i] += d
outputs = append(outputs, math.Pow(cos_sim(dX, Y)-t, 2)/d)
}
return outputs
}