X i=1 ( yi f✓( xi))2 f✓( x ) = ✓0 + ✓1x + ✓2x 2 + ✓3x 3 ΛϞσϧ ͷύϥϝλͰ͋ΔВ ʹରͯ͠ ภඍΛߦͬͨಋؔΛ༻͍ͯύϥϝ λͷߋ৽Λߦ͏ ✓0 := ✓0 ⌘ n X i=1 ( f✓( xi) yi) ✓1 := ✓1 ⌘ n X i=1 ( f✓( xi) yi) xi ✓2 := ✓2 ⌘ n X i=1 ( f✓( xi) yi) x 2 i ✓3 := ✓3 ⌘ n X i=1 ( f✓( xi) yi) x 3 i ύϥϝλߋ৽ࣜ В@ʹ͍ͭͯภඍ В@ʹ͍ͭͯภඍ В@ʹ͍ͭͯภඍ В@ʹ͍ͭͯภඍ
{ result := 0.0 for i, theta := range thetas { result += theta * math.Pow(x, float64(i)) } return result } // E(θ) తؔ func ObjectiveFunction(trainings DataSet, thetas []float64) float64 { result := 0.0 for _, training := range trainings { result += math.Pow((training.Y - PredictionFunction(training.X, thetas)), 2) } return result / 2.0 }
batchSize int) float64 { result := 0.0 for _, data := range dataset[0:batchSize] { result += ((PredictionFunction(data.X, thetas) - data.Y) * math.Pow(data.X, float64(index))) } return result } ✓0 := ✓0 ⌘ n X i=1 ( f✓( xi) yi) ✓1 := ✓1 ⌘ n X i=1 ( f✓( xi) yi) xi ✓2 := ✓2 ⌘ n X i=1 ( f✓( xi) yi) x 2 i ✓3 := ✓3 ⌘ n X i=1 ( f✓( xi) yi) x 3 i
ຖճγϟοϑϧ্ͨ͠Ͱઌ಄͔Βϛ χόοναΠζ·ͰͷσʔλΛͬ ͯύϥϝλߋ৽Λߦ͏ ✓0 := ✓0 ⌘ B X i=1 ( f✓( xi) yi) ✓1 := ✓1 ⌘ B X i=1 ( f✓( xi) yi) xi ✓2 := ✓2 ⌘ B X i=1 ( f✓( xi) yi) x 2 i ✓3 := ✓3 ⌘ B X i=1 ( f✓( xi) yi) x 3 i