亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

線性回歸梯度

線性回歸梯度

呼喚遠方 2021-06-07 15:45:37
我有非?;镜木€性回歸樣本。下面的實現(沒有正則化)class Learning:    def assume(self, weights, x):        return np.dot(x, np.transpose(weights))    def cost(self, weights, x, y, lam):        predict = self.assume(weights, x) \            .reshape(len(x), 1)        val = np.sum(np.square(predict - y), axis=0)        assert val is not None        assert val.shape == (1,)        return val[0] / 2 * len(x)    def grad(self, weights, x, y, lam):        predict = self.assume(weights, x)\            .reshape(len(x), 1)        val = np.sum(np.multiply(            x, (predict - y)), axis=0)        assert val is not None        assert val.shape == weights.shape        return val / len(x)我想檢查漸變,它是否有效,與scipy.optimize.learn = Learning()INPUTS = np.array([[1, 2],          [1, 3],          [1, 6]])OUTPUTS = np.array([[3], [5], [11]])WEIGHTS = np.array([1, 1])t_check_grad = scipy.optimize.check_grad(    learn.cost, learn.grad, WEIGHTS,INPUTS, OUTPUTS, 0)print(t_check_grad)# Output will be 73.2241602235811!!!我從頭到尾手動檢查了所有計算。它實際上是正確的實現。但是在輸出中我看到了非常大的差異!是什么原因?
查看完整描述

1 回答

?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

在您的成本函數中,您應該返回

val[0] / (2 * len(x))

而不是val[0] / 2 * len(x). 然后你會有

print(t_check_grad)
# 1.20853633278e-07


查看完整回答
反對 回復 2021-06-15
  • 1 回答
  • 0 關注
  • 115 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號