簡體   English   中英

線性回歸程序的問題

[英]Problems with Linear Regression Program

我正在嘗試使用線性回歸程序使用mnist數據集預測手寫數字。 每當我嘗試運行它時,梯度下降功能通常都需要花費一些時間才能工作,並且需要很長時間才能達到正確的權重。 在八個小時內,它已通過該功能550次,仍然存在很多錯誤。 有人可以告訴我通常需要這么長時間還是我做錯了什么。

import numpy as np
import pandas as pd

mnist = pd.read_csv('mnist_train.csv')[:4200]
x = np.array(mnist)[:4200,1:]
y = np.array(mnist)[:4200,0].reshape(4200,1)

#How many numbers in dataset
n = len(x)
#How many values in each number
n1 = len(x[0])

#sets all weights equal to 1
coef = np.array([1 for i in range(n1)])

epochs = 1000000000000
learning_rate = .000000000008999
for i in range(epochs):
    cur_y = sum(x*coef)
    error = y-cur_y
    #Calculates Gradient
    grad = (np.array([sum(sum([-2/n  * (error)* x[j,i] for j in range(n)])) for i in range(n1)]))
    #Updates Weights
    coef = (-learning_rate * grad) + coef
    print(i)
    print(sum(y-(x*coef)))

您的學習率非常小。 此外,784有很多維數可供線性回歸處理,尤其是假設您要使用所有60,000個樣本時。 SVM會更好,而CNN最好。

鑒於您的誤差越來越小,我建議您提高學習率並使用隨機梯度進行訓練(從訓練集中為每個時期(而不是整個訓練集)抓取隨機批次)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM