利用梯度下降法进行多变量线性回归

目录

利用梯度下降法进行多变量线性回归

注意

代码实现

导入库

建立数据集(我这里使用的是三个变量)

参数的定义或者说初始化

线性模型的初始化

损失函数的初始化

一些超参数以及参数的定义

训练模型

疑难点

完整代码

运行结果


利用梯度下降法进行多变量线性回归

注意

对于多变量的线性回归而言,它本身和单变量的线性回归的实现思路没什么区别,只是在某些细节方面有些小差别。

对于单变量线性回归,之前的博客已经给出了完整的实现思路,详情请见:深度学习之梯度,梯度下降法以及使用梯度下降法实现线性回归代码实例(完整代码)

还有顺序实现,封装类实现,调用现成模型实现,三种实现的代码,见这篇博客:

 深度学习之线性回归的实现(代码)

对于多变量的线性回归而言,它和单变量线性回归的区别就是变量的数量区别。

我们知道在数据集中有多个样本,一个样本里面有多个特征。

单变量相当于一个样本一个特征,而多变量相当于一个样本多个特征。

而对于线性回归而言,单变量线性回归对应的参数应当只有一个,而多变量线性回归对应的参数应当是有多个。(线性回归是什么在上面给的第一个链接里有讲)

代码实现

导入库

import numpy as np
from matplotlib import pyplot as plt, font_manager

建立数据集(我这里使用的是三个变量)

x=np.array([[0.180,0.001*1,0.001*4],[0.100,0.001*2,0.001*2],
            [0.160,0.001*3,0.001*4],[0.080,0.001*4,0.001*2],
            [0.090,0.001*5,0.001*2],[0.110,0.001*6,0.001*3],
            [0.120,0.001*7,0.001*3],[0.170,0.00*8,0.001*4],
            [0.150,0.001*9,0.001*4],[0.140,0.001*10,0.001*4],
            [0.130,0.001*11,0.001*3]])
#print(x)
#print(x.shape) (11, 2)
#print(x.T)
#[[0.18  0.1   0.16  0.08  0.09  0.11  0.12  0.17  0.15  0.14  0.13 ]
 #[0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.    0.009 0.01  0.011]]

#数据集的target
#y:两个变量x对应的标签
# y=np.array([[0.180+0.001*1,0.100+0.001*2,
#             0.160+0.001*3,0.080+0.001*4,
#             0.090+0.001*5,0.110+0.001*6,
#             0.120+0.001*7,0.170+0.00*8,
#             0.150+0.001*9,0.140+0.001*10,
#             0.130+0.001*11]])
#y:三个变量x对应的标签
y=np.array([[0.180+0.001*1+0.001*4,0.100+0.001*2+0.001*2,
            0.160+0.001*3+0.001*4,0.080+0.001*4+0.001*2,
            0.090+0.001*5+0.001*3,0.110+0.001*6+0.001*3,
            0.120+0.001*7+0.001*3,0.170+0.00*8+0.001*4,
            0.150+0.001*9+0.001*4,0.140+0.001*10+0.001*4,
            0.130+0.001*11+0.001*3]])

参数的定义或者说初始化

w=np.array([[0.5214,0.5215,0.5215]])

(这里我们也可以初始化其他值)

线性模型的初始化

def moudle(w,x):
    return np.matmul(w,x.T)
pre_y=moudle(w,x)

损失函数的初始化

def Loss(pre_y,y):
    return 0.5*np.sum((pre_y-y)**2)
loss=Loss(pre_y,y)

一些超参数以及参数的定义

Ir=0.01#学习率
bath=101#训练批次
epoches=101#每批次的训练次数
a=0#训练的次数记录

训练模型

for n1 in range(1,bath):
    for n2 in range(1,epoches):
        a=a+1
        w_grad=np.mean(np.matmul((pre_y-y),x))
        w=w-Ir*w_grad
        pre_y = moudle(w, x)
        loss=Loss(pre_y,y)
    print("训练{0}次,w:{1},loss:{2},w_grad:{3} ,pre_y:{4}".format(a,w,loss,w_grad,pre_y))

疑难点

在这里有一个疑难点,在上之前的博客中遇到类似的但是没有做出解释,那就是:

w_grad=np.mean(np.matmul((pre_y-y),x))

显而易见,这里求的是我们的参数的梯度,但是为什么我们要用一个mean()函数,我们知道该函数的作用是求平均值,在该模型里面的作用就是求解所有样本梯度的平均值,可是为什么会这样呢

我们要从我们的损失函数考虑

下面是我们的损失函数

def Loss(pre_y,y):
    return 0.5*np.sum((pre_y-y)**2)
loss=Loss(pre_y,y)

接下来因为打字不方便,我在草稿纸上进行了公式的推演:

(字不好看,请见谅) 

通过以上的算式我们知道每个样本点都会产生一个梯度向量,最优的结果是所有梯度向量的和。我们知道,梯度是有方向的,如果把梯度向量比喻成一个作用力的话,最终的梯度方向就是它们的合力,而我们直接相加然后求平均值,所得到的方向和所有梯度向量和的方向是一致的,只不过是数值不一样。

那为什么要求平均值呢,我们直接相加,把学习率调小一点不就好了?
在我们的深度学习中,我们有了很多个样本,而目标函数往往就是在每个样本上的loss求平均,由此我们根据数学公式推到梯度,就成了把各个样本点的梯度相加然后求平均值。也即是经验而言,当然我们这里的损失函数并不是平均loss函数

所以我们用到了mean()函数。

好了疑难点到这里我们应该也就明白了。

完整代码
 

import  torch
import numpy as np
from matplotlib import pyplot as plt, font_manager

print('利用梯度下降法进行多变量线性回归-------------------------------')
#数据集的data
#x,两个变量:
# x=np.array([[0.180,0.001*1],[0.100,0.001*2],
#             [0.160,0.001*3],[0.080,0.001*4],
#             [0.090,0.001*5],[0.110,0.001*6],
#             [0.120,0.001*7],[0.170,0.00*8],
#             [0.150,0.001*9],[0.140,0.001*10],
#             [0.130,0.001*11]])
#x,三个变量
x=np.array([[0.180,0.001*1,0.001*4],[0.100,0.001*2,0.001*2],
            [0.160,0.001*3,0.001*4],[0.080,0.001*4,0.001*2],
            [0.090,0.001*5,0.001*2],[0.110,0.001*6,0.001*3],
            [0.120,0.001*7,0.001*3],[0.170,0.00*8,0.001*4],
            [0.150,0.001*9,0.001*4],[0.140,0.001*10,0.001*4],
            [0.130,0.001*11,0.001*3]])
#print(x)
#print(x.shape) (11, 2)
#print(x.T)
#[[0.18  0.1   0.16  0.08  0.09  0.11  0.12  0.17  0.15  0.14  0.13 ]
 #[0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.    0.009 0.01  0.011]]

#数据集的target
#y:两个变量x对应的标签
# y=np.array([[0.180+0.001*1,0.100+0.001*2,
#             0.160+0.001*3,0.080+0.001*4,
#             0.090+0.001*5,0.110+0.001*6,
#             0.120+0.001*7,0.170+0.00*8,
#             0.150+0.001*9,0.140+0.001*10,
#             0.130+0.001*11]])
#y:三个变量x对应的标签
y=np.array([[0.180+0.001*1+0.001*4,0.100+0.001*2+0.001*2,
            0.160+0.001*3+0.001*4,0.080+0.001*4+0.001*2,
            0.090+0.001*5+0.001*3,0.110+0.001*6+0.001*3,
            0.120+0.001*7+0.001*3,0.170+0.00*8+0.001*4,
            0.150+0.001*9+0.001*4,0.140+0.001*10+0.001*4,
            0.130+0.001*11+0.001*3]])
Ir=0.01#学习率
bath=101#训练批次
epoches=101#每批次的训练次数
a=0#训练的次数记录
# w=np.array([[0.5214,0.5215]])
w=np.array([[0.5214,0.5215,0.5215]])
#模型的定义
def moudle(w,x):
    return np.matmul(w,x.T)
pre_y=moudle(w,x)
#损失函数的定义
def Loss(pre_y,y):
    return 0.5*np.sum((pre_y-y)**2)
loss=Loss(pre_y,y)
w_grad=0
lista=[]
listl=[]

for n1 in range(1,bath):
    for n2 in range(1,epoches):
        a=a+1
        w_grad=np.mean(np.matmul((pre_y-y),x))
        w=w-Ir*w_grad
        pre_y = moudle(w, x)
        loss=Loss(pre_y,y)
    print("训练{0}次,w:{1},loss:{2},w_grad:{3} ,pre_y:{4}".format(a,w,loss,w_grad,pre_y))
    lista.append(a)
    listl.append(loss)
plt.plot(lista,listl)
font = font_manager.FontProperties(fname="C:\\Users\\ASUS\\Desktop\\Fonts\\STZHONGS.TTF")
plt.title('循环次数和损失值的对应关系', fontproperties=font, fontsize=18)

plt.show()
print(w)
pre_y=moudle(w,x)
print('预测:',pre_y)
print('真实值:',y)




运行结果

D:\Anaconda3\envs\pytorch\python.exe D:\learn_pytorch\学习过程\第二周的代码\代码一.py 
利用梯度下降法进行多变量线性回归-------------------------------
训练100次,w:[[0.55559445 0.55569445 0.55569445]],loss:0.021974298474245143,w_grad:-0.03295608309368727 ,pre_y:[[0.10278547 0.05778222 0.09278497 0.04778172 0.05389336 0.06611664
  0.07222828 0.09667383 0.09056319 0.08556294 0.080007  ]]
训练200次,w:[[0.58734801 0.58744801 0.58744801]],loss:0.018949170624921505,w_grad:-0.030603593702650086 ,pre_y:[[0.10865988 0.06108459 0.09808782 0.05051253 0.05697346 0.06989531
  0.07635624 0.10219895 0.09573903 0.09045299 0.08457951]]
训练300次,w:[[0.61683492 0.61693492 0.61693492]],loss:0.0163405110361963,w_grad:-0.02841903101331496 ,pre_y:[[0.11411496 0.06415123 0.10301213 0.0530484  0.05983369 0.07340426
  0.08018954 0.10732968 0.10054539 0.09499398 0.08882563]]
训练400次,w:[[0.64421698 0.64431698 0.64431698]],loss:0.014090984672750375,w_grad:-0.026390407988778758 ,pre_y:[[0.11918064 0.06699897 0.10758494 0.05540326 0.06248975 0.07666272
  0.08374921 0.11209415 0.10500867 0.09921081 0.09276864]]
训练500次,w:[[0.66964443 0.66974443 0.66974443]],loss:0.012151149792910385,w_grad:-0.0245065932574511 ,pre_y:[[0.12388472 0.06964342 0.11183132 0.05759002 0.06495621 0.07968859
  0.08705478 0.11651853 0.10915334 0.10312664 0.0964302 ]]
训练600次,w:[[0.69325682 0.69335682 0.69335682]],loss:0.010478371281757722,w_grad:-0.022757250033478546 ,pre_y:[[0.12825301 0.07209911 0.11577459 0.05962069 0.06724661 0.08249846
  0.09012439 0.12062709 0.11300216 0.10676295 0.09983038]]
训练700次,w:[[0.71518368 0.71528368 0.71528368]],loss:0.00903588358527656,w_grad:-0.02113277939718515 ,pre_y:[[0.13230948 0.0743795  0.11943638 0.0615064  0.06937352 0.08510776
  0.09297488 0.12444236 0.11657624 0.11013969 0.10298785]]
训练800次,w:[[0.73554536 0.73564536 0.73564536]],loss:0.00779198265002023,w_grad:-0.019624267624300012 ,pre_y:[[0.13607639 0.07649712 0.12283677 0.0632575  0.0713486  0.0875308
  0.0956219  0.12798529 0.11989519 0.11327538 0.10591993]]
训练900次,w:[[0.75445356 0.75455356 0.75455356]],loss:0.006719329108152225,w_grad:-0.018223437274959054 ,pre_y:[[0.13957441 0.07846357 0.12599444 0.06488361 0.0731827  0.08978087
  0.09807996 0.13127532 0.12297723 0.11618725 0.10864271]]
训练1000次,w:[[0.77201205 0.77211205 0.77211205]],loss:0.005794347392751441,w_grad:-0.016922601774098673 ,pre_y:[[0.14282273 0.08028965 0.12892671 0.06639364 0.07488587 0.09187033
  0.10036257 0.1343305  0.12583926 0.11889126 0.11117114]]
训练1100次,w:[[0.78831717 0.78841717 0.78841717]],loss:0.004996707576696977,w_grad:-0.01571462323401725 ,pre_y:[[0.14583918 0.08198539 0.13164967 0.06779588 0.07646747 0.09381064
  0.10248223 0.13716759 0.128497   0.12140224 0.11351907]]
训练1200次,w:[[0.80345839 0.80355839 0.80355839]],loss:0.004308878546606672,w_grad:-0.014592873287669604 ,pre_y:[[0.1486403  0.08356007 0.13417825 0.06909802 0.07793616 0.09561245
  0.10445059 0.13980216 0.13096502 0.12373399 0.11569941]]
训练1300次,w:[[0.81751879 0.81761879 0.81761879]],loss:0.003715742691158517,w_grad:-0.013551196717781107 ,pre_y:[[0.15124148 0.08502235 0.13652634 0.07030722 0.07930002 0.09728564
  0.10627844 0.14224867 0.13325686 0.12589929 0.11772411]]
训练1400次,w:[[0.83057552 0.83067552 0.83067552]],loss:0.0032042636351319945,w_grad:-0.012583877682208413 ,pre_y:[[0.15365697 0.08638025 0.13870681 0.07143009 0.08056653 0.09883939
  0.10797582 0.14452054 0.13538511 0.12791003 0.11960427]]
训练1500次,w:[[0.84270023 0.84280023 0.84280023]],loss:0.0027631997163842215,w_grad:-0.011685608350220455 ,pre_y:[[0.15590004 0.08764122 0.14073164 0.07247282 0.08174262 0.10028223
  0.10955203 0.14663024 0.13736144 0.12977723 0.12135023]]
训练1600次,w:[[0.85395944 0.85405944 0.85405944]],loss:0.0023828569083474407,w_grad:-0.010851459777601559 ,pre_y:[[0.157983   0.08881218 0.14261193 0.07344111 0.08283477 0.10162207
  0.11101573 0.14858934 0.13919669 0.13151115 0.12297156]]
训练1700次,w:[[0.86441495 0.86451495 0.86451495]],loss:0.002054875757597166,w_grad:-0.010076854860764047 ,pre_y:[[0.15991727 0.08989955 0.144358   0.07434029 0.08384895 0.10286628
  0.11237494 0.1504086  0.14090094 0.1331213  0.12447715]]
训练1800次,w:[[0.87412411 0.87422411 0.87422411]],loss:0.0017720476536487403,w_grad:-0.009357543221465809 ,pre_y:[[0.16171346 0.09090931 0.14597943 0.07517527 0.08479074 0.10402167
  0.11363713 0.152098   0.14248353 0.13461651 0.12587527]]
训练1900次,w:[[0.88314021 0.88324021 0.88324021]],loss:0.001528156392824507,w_grad:-0.008689577884320272 ,pre_y:[[0.16338144 0.09184698 0.14748512 0.07595066 0.0856653  0.10509459
  0.11480923 0.1536668  0.14395315 0.13600499 0.12717359]]
训练2000次,w:[[0.89151272 0.89161272 0.89161272]],loss:0.0013178415539664965,w_grad:-0.008069293619125823 ,pre_y:[[0.16493035 0.09271772 0.14888332 0.07667069 0.08647743 0.10609091
  0.11589765 0.15512361 0.14531787 0.13729436 0.12837923]]
训练2100次,w:[[0.89928757 0.89938757 0.89938757]],loss:0.0011364806831653384,w_grad:-0.007493286829174665 ,pre_y:[[0.1663687  0.09352631 0.15018172 0.07733933 0.08723159 0.10701612
  0.11690838 0.15647644 0.14658517 0.13849169 0.12949881]]
训练2200次,w:[[0.90650744 0.90660744 0.90660744]],loss:0.000980087698075219,w_grad:-0.006958396875185897 ,pre_y:[[0.16770438 0.09427717 0.15138744 0.07796024 0.08793192 0.10787529
  0.11784697 0.15773269 0.14776201 0.13960355 0.13053847]]
训练2300次,w:[[0.91321194 0.91331194 0.91331194]],loss:0.000845225278870064,w_grad:-0.006461688732383671 ,pre_y:[[0.16894471 0.09497444 0.15250709 0.07853683 0.08858226 0.10867312
  0.11871855 0.15889928 0.14885485 0.14063604 0.13150392]]
训练2400次,w:[[0.91943785 0.91953785 0.91953785]],loss:0.0007289293203052479,w_grad:-0.006000436885557593 ,pre_y:[[0.1700965  0.09562194 0.15354682 0.07907225 0.08918617 0.109414
  0.11952792 0.15998259 0.14986967 0.14159483 0.13240045]]
训练2500次,w:[[0.92521934 0.92531934 0.92531934]],loss:0.000628643784436768,w_grad:-0.005572110373734771 ,pre_y:[[0.17116608 0.09622321 0.15451233 0.07956946 0.08974698 0.110102
  0.12027951 0.16098856 0.15081205 0.14248518 0.13323298]]
训练2600次,w:[[0.93058813 0.93068813 0.93068813]],loss:0.0005421645221430264,w_grad:-0.005174358902401398 ,pre_y:[[0.1721593  0.09678157 0.15540892 0.08003118 0.09026775 0.11074089
  0.12097746 0.16192273 0.15168716 0.14331197 0.13400609]]
训练2700次,w:[[0.93557368 0.93567368 0.93567368]],loss:0.0004675908287175082,w_grad:-0.004804999947069409 ,pre_y:[[0.17308163 0.09730006 0.1562415  0.08045994 0.09075135 0.11133417
  0.12162558 0.16279022 0.15249981 0.14407975 0.13472401]]
训练2800次,w:[[0.94020335 0.94030335 0.94030335]],loss:0.00040328366878553443,w_grad:-0.004462006777423589 ,pre_y:[[0.17393812 0.09778155 0.15701466 0.08085809 0.09120043 0.1118851
  0.12222744 0.16359578 0.15325445 0.14479272 0.13539068]]
训练2900次,w:[[0.94450255 0.94460255 0.94460255]],loss:0.000347829652381654,w_grad:-0.004143497336335446 ,pre_y:[[0.17473347 0.09822866 0.15773263 0.08122782 0.09161745 0.1123967
  0.12278633 0.16434384 0.15395522 0.14545479 0.13600977]]
训练3000次,w:[[0.94849485 0.94859485 0.94859485]],loss:0.0003000099704275016,w_grad:-0.0038477239127216677 ,pre_y:[[0.17547205 0.09864386 0.15839934 0.08157116 0.0920047  0.11287179
  0.12330533 0.1650385  0.15460596 0.14606961 0.13658466]]
训练3100次,w:[[0.95220218 0.95230218 0.95230218]],loss:0.0002587736068512017,w_grad:-0.0035730635515802485 ,pre_y:[[0.1761579  0.09902943 0.15901846 0.08188999 0.09236431 0.11331296
  0.12378728 0.16568358 0.15521026 0.14664054 0.13711851]]
训练3200次,w:[[0.95564487 0.95574487 0.95574487]],loss:0.0002232142385846629,w_grad:-0.003318009148582815 ,pre_y:[[0.1767948  0.09938747 0.15959339 0.08218606 0.09269825 0.11372264
  0.12423483 0.16628261 0.15577141 0.14717071 0.13761426]]
训练3300次,w:[[0.95884181 0.95894181 0.95894181]],loss:0.00019255031572988526,w_grad:-0.003081161180357519 ,pre_y:[[0.17738623 0.09971995 0.16012728 0.082461   0.09300836 0.11410307
  0.12465043 0.16683887 0.15629251 0.14766304 0.13807462]]
训练3400次,w:[[0.96181054 0.96191054 0.96191054]],loss:0.0001661078840816013,w_grad:-0.0028612200250854977 ,pre_y:[[0.17793545 0.1000287  0.16062306 0.08271631 0.09329632 0.11445635
  0.12503637 0.16735543 0.15677642 0.14812022 0.13850212]]
训练3500次,w:[[0.96456736 0.96466736 0.96466736]],loss:0.00014330577246707,w_grad:-0.0026569788312730646 ,pre_y:[[0.17844546 0.10031541 0.16108345 0.08295339 0.09356373 0.11478442
  0.12539476 0.16783512 0.15722578 0.14854477 0.1388991 ]]
训练3600次,w:[[0.96712739 0.96722739 0.96722739]],loss:0.0001236428193394122,w_grad:-0.002467316895568805 ,pre_y:[[0.17891907 0.10058165 0.16151097 0.08317356 0.09381206 0.11508906
  0.12572756 0.16828057 0.15764306 0.14893902 0.13926774]]
训练3700次,w:[[0.96950467 0.96960467 0.96960467]],loss:0.00010668685788125428,w_grad:-0.002291193513289054 ,pre_y:[[0.17935886 0.10082889 0.16190798 0.083378   0.09404265 0.11537196
  0.12603661 0.16869421 0.15803056 0.14930512 0.13961007]]
训练3800次,w:[[0.97171227 0.97181227 0.97181227]],loss:9.206521752520944e-05,w_grad:-0.002127642267908897 ,pre_y:[[0.17976727 0.10105848 0.16227665 0.08356785 0.09425679 0.11563466
  0.12632359 0.16907833 0.1583904  0.14964509 0.13992797]]
训练3900次,w:[[0.97376227 0.97386227 0.97386227]],loss:7.945653312655468e-05,w_grad:-0.0019757657281832784 ,pre_y:[[0.18014652 0.10127168 0.162619   0.08374416 0.09445564 0.11587861
  0.1265901  0.16943504 0.15872455 0.14996079 0.14022317]]
训练4000次,w:[[0.97566595 0.97576595 0.97576595]],loss:6.858368176422163e-05,w_grad:-0.001834730523801983 ,pre_y:[[0.1804987  0.10146966 0.16293691 0.08390787 0.0946403  0.11610515
  0.12683757 0.16976627 0.15903485 0.15025396 0.1404973 ]]
训练4100次,w:[[0.97743373 0.97753373 0.97753373]],loss:5.9207691929782484e-05,w_grad:-0.0017037627725559905 ,pre_y:[[0.18082574 0.10165351 0.16323213 0.0840599  0.09481177 0.11631551
  0.12706738 0.17007387 0.159323   0.15052619 0.14075186]]
训练4200次,w:[[0.97907532 0.97917532 0.97917532]],loss:5.112249123624211e-05,w_grad:-0.001582143833925218 ,pre_y:[[0.18112944 0.10182423 0.16350628 0.08420108 0.09497101 0.11651086
  0.12728079 0.17035951 0.15959058 0.150779   0.14098825]]
训练4300次,w:[[0.98059974 0.98069974 0.98069974]],loss:4.415037720784204e-05,w_grad:-0.0014692063657854686 ,pre_y:[[0.18141145 0.10198277 0.16376086 0.08433218 0.09511887 0.11669227
  0.12747897 0.17062475 0.15983906 0.15101376 0.14120776]]
训练4400次,w:[[0.98201533 0.98211533 0.98211533]],loss:3.8138111604606985e-05,w_grad:-0.0013643306625979832 ,pre_y:[[0.18167334 0.10212999 0.16399726 0.08445392 0.09525619 0.11686072
  0.12766299 0.17087107 0.1600698  0.15123176 0.14141161]]
训练4500次,w:[[0.98332988 0.98342988 0.98342988]],loss:3.295355243983042e-05,w_grad:-0.0012669412549883563 ,pre_y:[[0.18191653 0.10226671 0.16421679 0.08456697 0.0953837  0.11701716
  0.12783388 0.1710998  0.16028407 0.1514342  0.1416009 ]]
训练4600次,w:[[0.9845506 0.9846506 0.9846506]],loss:2.848274966647442e-05,w_grad:-0.0011765037520558921 ,pre_y:[[0.18214236 0.10239366 0.16442065 0.08467195 0.09550211 0.11716242
  0.12799258 0.1713122  0.16048305 0.15162219 0.14177669]]
训练4700次,w:[[0.98568417 0.98578417 0.98578417]],loss:2.4627440699411432e-05,w_grad:-0.0010925219090875305 ,pre_y:[[0.18235207 0.10251155 0.16460996 0.08476944 0.09561206 0.11729732
  0.12813994 0.17150945 0.16066782 0.15179676 0.14193992]]
训练4800次,w:[[0.98673683 0.98683683 0.98683683]],loss:2.1302890728183384e-05,w_grad:-0.0010145349045852833 ,pre_y:[[0.18254681 0.10262103 0.16478575 0.08485997 0.09571417 0.11742258
  0.12827679 0.17169261 0.1608394  0.15195887 0.1420915 ]]
训练4900次,w:[[0.98771434 0.98781434 0.98781434]],loss:1.843603035315045e-05,w_grad:-0.0009421148116668587 ,pre_y:[[0.18272765 0.10272269 0.164949   0.08494403 0.09580899 0.11753891
  0.12840386 0.1718627  0.16099874 0.15210941 0.14223227]]
训练5000次,w:[[0.98862208 0.98872208 0.98872208]],loss:1.5963849612577255e-05,w_grad:-0.0008748642499637546 ,pre_y:[[0.18289559 0.1028171  0.16510059 0.0850221  0.09589704 0.11764693
  0.12852187 0.17202064 0.1611467  0.1522492  0.14236298]]
训练5100次,w:[[0.98946502 0.98956502 0.98956502]],loss:1.3832013103451262e-05,w_grad:-0.000812414205133259 ,pre_y:[[0.18305153 0.10290476 0.16524136 0.08509459 0.09597881 0.11774724
  0.12863145 0.17216731 0.1612841  0.15237901 0.14248436]]
训练5200次,w:[[0.99024779 0.99034779 0.99034779]],loss:1.199366575810878e-05,w_grad:-0.0007544220040191065 ,pre_y:[[0.18319634 0.10298617 0.16537208 0.08516191 0.09605474 0.11784039
  0.12873321 0.17230352 0.16141169 0.15249956 0.14259708]]
训练5300次,w:[[0.99097469 0.99107469 0.99107469]],loss:1.0408403029162425e-05,w_grad:-0.0007005694343501342 ,pre_y:[[0.18333082 0.10306177 0.16549347 0.08522442 0.09612524 0.11792689
  0.12882771 0.17243    0.16153017 0.1526115  0.14270176]]
训练5400次,w:[[0.99164969 0.99174969 0.99174969]],loss:9.041382848695417e-06,w_grad:-0.0006505609986598725 ,pre_y:[[0.18345569 0.10313197 0.1656062  0.08528247 0.09619072 0.11800721
  0.12891546 0.17254745 0.1616402  0.15271545 0.14279896]]
训练5500次,w:[[0.99227652 0.99237652 0.99237652]],loss:7.862559843726108e-06,w_grad:-0.0006041222928458527 ,pre_y:[[0.18357166 0.10319716 0.16571088 0.08533638 0.09625152 0.11808181
  0.12899695 0.17265651 0.16174237 0.15281198 0.14288922]]
训练5600次,w:[[0.9928586 0.9929586 0.9929586]],loss:6.84602497694049e-06,w_grad:-0.0005609985004713672 ,pre_y:[[0.18367934 0.10325769 0.16580809 0.08538644 0.09630798 0.11815107
  0.12907262 0.1727578  0.16183725 0.15290162 0.14297304]]
训练5700次,w:[[0.99339912 0.99349912 0.99349912]],loss:5.969436098850939e-06,w_grad:-0.0005209529945477499 ,pre_y:[[0.18377934 0.10331391 0.16589835 0.08543292 0.09636042 0.1182154
  0.12914289 0.17285185 0.16192536 0.15298487 0.14305087]]
训练5800次,w:[[0.99390107 0.99400107 0.99400107]],loss:5.213526895638496e-06,w_grad:-0.0004837660391253116 ,pre_y:[[0.1838722  0.10336611 0.16598218 0.08547609 0.0964091  0.11827513
  0.12920814 0.17293919 0.16200717 0.15306216 0.14312315]]
训练5900次,w:[[0.99436718 0.99446718 0.99446718]],loss:4.561683439962427e-06,w_grad:-0.00044923358356767715 ,pre_y:[[0.18395843 0.10341459 0.16606002 0.08551618 0.09645432 0.11833059
  0.12926873 0.17302029 0.16208315 0.15313395 0.14319027]]
训练6000次,w:[[0.99480002 0.99490002 0.99490002]],loss:3.999579037870203e-06,w_grad:-0.00041716614289409945 ,pre_y:[[0.1840385 0.1034596 0.1661323 0.0855534 0.0964963 0.1183821 0.129325
  0.1730956 0.1621537 0.1532006 0.1432526]]
训练6100次,w:[[0.99520197 0.99530197 0.99530197]],loss:3.514859346201618e-06,w_grad:-0.00038738775804574623 ,pre_y:[[0.18411286 0.1035014  0.16619943 0.08558797 0.09653529 0.11842993
  0.12937726 0.17316554 0.16221922 0.1532625  0.14331048]]
训练6200次,w:[[0.99557522 0.99567522 0.99567522]],loss:3.0968708397660042e-06,w_grad:-0.0003597350303708742 ,pre_y:[[0.18418192 0.10354022 0.16626176 0.08562007 0.0965715  0.11847435
  0.12942578 0.17323049 0.16228006 0.15331998 0.14336423]]
训练6300次,w:[[0.99592183 0.99602183 0.99602183]],loss:2.7364266603461175e-06,w_grad:-0.0003340562250308716 ,pre_y:[[0.18424604 0.10357627 0.16631965 0.08564988 0.09660512 0.1185156
  0.12947084 0.1732908  0.16233656 0.15337336 0.14341414]]
训练6400次,w:[[0.9962437 0.9963437 0.9963437]],loss:2.4256047011831185e-06,w_grad:-0.00031021043840745324 ,pre_y:[[0.18430558 0.10360974 0.1663734  0.08567756 0.09663634 0.1185539
  0.12951268 0.1733468  0.16238902 0.15342293 0.14346049]]
训练6500次,w:[[0.99654259 0.99664259 0.99664259]],loss:2.1575734891008966e-06,w_grad:-0.0002880668249425391 ,pre_y:[[0.18436088 0.10364083 0.16642331 0.08570326 0.09666533 0.11858947
  0.12955154 0.17339881 0.16243774 0.15346896 0.14350353]]
训练6600次,w:[[0.99682014 0.99692014 0.99692014]],loss:1.926442037373294e-06,w_grad:-0.0002675038791682317 ,pre_y:[[0.18441223 0.10366969 0.16646966 0.08572713 0.09669225 0.1186225
  0.12958762 0.1734471  0.16248298 0.1535117  0.1435435 ]]
训练6700次,w:[[0.99707789 0.99717789 0.99717789]],loss:1.7271303692934223e-06,w_grad:-0.00024840876898734725 ,pre_y:[[0.18445991 0.1036965  0.16651271 0.0857493  0.09671726 0.11865317
  0.12962113 0.17349195 0.162525   0.15355139 0.14358062]]
训练6800次,w:[[0.99731723 0.99741723 0.99741723]],loss:1.5552578667154288e-06,w_grad:-0.00023067671654584 ,pre_y:[[0.18450419 0.10372139 0.16655268 0.08576988 0.09674047 0.11868165
  0.12965224 0.1735336  0.16256401 0.15358825 0.14361508]]
训练6900次,w:[[0.99753949 0.99763949 0.99763949]],loss:1.4070469896155602e-06,w_grad:-0.00021421042330066722 ,pre_y:[[0.18454531 0.10374451 0.16658979 0.085789   0.09676203 0.1187081
  0.12968113 0.17357227 0.16260024 0.15362248 0.14364709]]
训练7000次,w:[[0.99774589 0.99784589 0.99784589]],loss:1.2792402505426687e-06,w_grad:-0.0001989195361272024 ,pre_y:[[0.18458349 0.10376597 0.16662426 0.08580675 0.09678205 0.11873266
  0.12970797 0.17360818 0.16263388 0.15365427 0.14367681]]
训练7100次,w:[[0.99793755 0.99803755 0.99803755]],loss:1.1690286191692367e-06,w_grad:-0.00018472015153769383 ,pre_y:[[0.18461895 0.1037859  0.16665627 0.08582323 0.09680064 0.11875547
  0.12973288 0.17364153 0.16266512 0.15368378 0.14370441]]
训练7200次,w:[[0.99811553 0.99821553 0.99821553]],loss:1.0739897833611256e-06,w_grad:-0.00017153435528974596 ,pre_y:[[0.18465187 0.10380441 0.16668599 0.08583854 0.09681791 0.11877665
  0.12975602 0.1736725  0.16269413 0.15371119 0.14373004]]
训练7300次,w:[[0.9982808 0.9983808 0.9983808]],loss:9.920349098216422e-07,w_grad:-0.0001592897948584995 ,pre_y:[[0.18468245 0.1038216  0.16671359 0.08585275 0.09683394 0.11879632
  0.1297775  0.17370126 0.16272107 0.15373664 0.14375384]]
训练7400次,w:[[0.99843428 0.99853428 0.99853428]],loss:9.213627341816572e-07,w_grad:-0.00014791928242717552 ,pre_y:[[0.18471084 0.10383757 0.16673922 0.08586595 0.09684883 0.11881458
  0.12979746 0.17372796 0.16274609 0.15376028 0.14377594]]
训练7500次,w:[[0.9985768 0.9986768 0.9986768]],loss:8.604199714874756e-07,w_grad:-0.00013736042621684716 ,pre_y:[[0.18473721 0.10385239 0.16676303 0.0858782  0.09686265 0.11883154
  0.12981598 0.17375276 0.16276932 0.15378223 0.14379646]]
训练7600次,w:[[0.99870915 0.99880915 0.99880915]],loss:8.078671769665935e-07,w_grad:-0.00012755528813334166 ,pre_y:[[0.18476169 0.10386615 0.16678513 0.08588959 0.09687549 0.11884729
  0.12983319 0.17377579 0.16279089 0.15380261 0.14381552]]
训练7700次,w:[[0.99883205 0.99893205 0.99893205]],loss:7.625493067245698e-07,w_grad:-0.00011845006585155548 ,pre_y:[[0.18478443 0.10387893 0.16680565 0.08590016 0.09688741 0.11886191
  0.12984917 0.17379718 0.16281092 0.15382154 0.14383322]]
训练7800次,w:[[0.99894618 0.99904618 0.99904618]],loss:7.234703313439166e-07,w_grad:-0.00010999479759374365 ,pre_y:[[0.18480554 0.1038908  0.16682471 0.08590997 0.09689848 0.1188755
  0.129864   0.17381704 0.16282953 0.15383911 0.14384965]]
训练7900次,w:[[0.99905216 0.99915216 0.99915216]],loss:6.897713444179603e-07,w_grad:-0.00010214308798155024 ,pre_y:[[0.18482515 0.10390182 0.16684241 0.08591909 0.09690876 0.11888811
  0.12987778 0.17383548 0.1628468  0.15385543 0.14386491]]
训练8000次,w:[[0.99915058 0.99925058 0.99925058]],loss:6.607116848749431e-07,w_grad:-9.485185345704817e-05 ,pre_y:[[0.18484336 0.10391206 0.16685885 0.08592755 0.09691831 0.11889982
  0.12989057 0.1738526  0.16286284 0.15387059 0.14387908]]
训练8100次,w:[[0.99924197 0.99934197 0.99934197]],loss:6.356526581865864e-07,w_grad:-8.808108587694275e-05 ,pre_y:[[0.18486026 0.10392156 0.16687411 0.08593541 0.09692717 0.11891069
  0.12990246 0.1738685  0.16287774 0.15388466 0.14389224]]
训练8200次,w:[[0.99932683 0.99942683 0.99942683]],loss:6.140434986699053e-07,w_grad:-8.179363298130856e-05 ,pre_y:[[0.18487596 0.10393039 0.16688828 0.08594271 0.0969354  0.11892079
  0.12991349 0.17388327 0.16289157 0.15389773 0.14390446]]
训练8300次,w:[[0.99940564 0.99950564 0.99950564]],loss:5.95409264354634e-07,w_grad:-7.595499453338292e-05 ,pre_y:[[0.18489054 0.10393859 0.16690144 0.08594949 0.09694305 0.11893017
  0.12992373 0.17389698 0.16290442 0.15390987 0.14391581]]
训练8400次,w:[[0.99947883 0.99957883 0.99957883]],loss:5.793403983608779e-07,w_grad:-7.053313301154802e-05 ,pre_y:[[0.18490408 0.1039462  0.16691366 0.08595578 0.09695015 0.11893888
  0.12993325 0.17390972 0.16291635 0.15392114 0.14392635]]
训练8500次,w:[[0.99954679 0.99964679 0.99964679]],loss:5.654837273562998e-07,w_grad:-6.549829781420028e-05 ,pre_y:[[0.18491666 0.10395327 0.16692501 0.08596162 0.09695674 0.11894697
  0.12994208 0.17392154 0.16292743 0.1539316  0.14393614]]
训练8600次,w:[[0.99960989 0.99970989 0.99970989]],loss:5.535346992543126e-07,w_grad:-6.0822862013731474e-05 ,pre_y:[[0.18492833 0.10395983 0.16693555 0.08596705 0.09696286 0.11895448
  0.12995029 0.17393252 0.16293771 0.15394132 0.14394522]]
训练8700次,w:[[0.9996685 0.9997685 0.9997685]],loss:5.432306895441626e-07,w_grad:-5.648117076324603e-05 ,pre_y:[[0.18493917 0.10396592 0.16694534 0.08597209 0.09696854 0.11896145
  0.1299579  0.17394272 0.16294727 0.15395035 0.14395366]]
训练8800次,w:[[0.99972292 0.99982292 0.99982292]],loss:5.343452291367255e-07,w_grad:-5.244940052421437e-05 ,pre_y:[[0.18494924 0.10397158 0.16695443 0.08597677 0.09697382 0.11896793
  0.12996498 0.17395219 0.16295614 0.15395873 0.1439615 ]]
训练8900次,w:[[0.99977345 0.99987345 0.99987345]],loss:5.266830268606788e-07,w_grad:-4.870542834317069e-05 ,pre_y:[[0.18495859 0.10397684 0.16696287 0.08598112 0.09697872 0.11897394
  0.12997155 0.17396098 0.16296437 0.15396651 0.14396878]]
训练9000次,w:[[0.99982038 0.99992038 0.99992038]],loss:5.20075677210031e-07,w_grad:-4.5228710459612976e-05 ,pre_y:[[0.18496727 0.10398172 0.1669707  0.08598515 0.09698328 0.11897953
  0.12997765 0.17396915 0.16297202 0.15397374 0.14397553]]
训练9100次,w:[[0.99986396 0.99996396 0.99996396]],loss:5.143779590041926e-07,w_grad:-4.2000169579176376e-05 ,pre_y:[[0.18497533 0.10398625 0.16697798 0.0859889  0.0969875  0.11898471
  0.12998331 0.17397673 0.16297913 0.15398045 0.14398181]]
训练9200次,w:[[0.99990443 1.00000443 1.00000443]],loss:5.094646436099906e-07,w_grad:-3.900209019346266e-05 ,pre_y:[[0.18498282 0.10399046 0.16698474 0.08599238 0.09699143 0.11898953
  0.12998858 0.17398377 0.16298572 0.15398668 0.14398764]]
训练9300次,w:[[0.99994201 1.00004201 1.00004201]],loss:5.052277425750257e-07,w_grad:-3.621802137228093e-05 ,pre_y:[[0.18498977 0.10399437 0.16699102 0.08599561 0.09699507 0.118994
  0.12999346 0.17399031 0.16299185 0.15399247 0.14399305]]
训练9400次,w:[[0.9999769 1.0000769 1.0000769]],loss:5.015741341783545e-07,w_grad:-3.363268649489918e-05 ,pre_y:[[0.18499623 0.103998   0.16699684 0.08599861 0.09699846 0.11899815
  0.129998   0.17399638 0.16299754 0.15399784 0.14399807]]
训练9500次,w:[[1.00000931 1.00010931 1.00010931]],loss:4.984235167327918e-07,w_grad:-3.123189942487157e-05 ,pre_y:[[0.18500222 0.10400137 0.16700225 0.0860014  0.0970016  0.11900201
  0.13000221 0.17400202 0.16300282 0.15400283 0.14400274]]
训练9600次,w:[[1.0000394 1.0001394 1.0001394]],loss:4.957066436552312e-07,w_grad:-2.9002486668191316e-05 ,pre_y:[[0.18500779 0.1040045  0.16700728 0.08600399 0.09700452 0.11900559
  0.13000612 0.17400726 0.16300772 0.15400747 0.14400707]]
训练9700次,w:[[1.00006735 1.00016735 1.00016735]],loss:4.933638015149408e-07,w_grad:-2.6932215088637658e-05 ,pre_y:[[0.18501296 0.1040074  0.16701195 0.08600639 0.09700723 0.11900891
  0.13000975 0.17401212 0.16301228 0.15401177 0.1440111 ]]
训练9800次,w:[[1.00009329 1.00019329 1.00019329]],loss:4.913434976076526e-07,w_grad:-2.5009724782577536e-05 ,pre_y:[[0.18501776 0.1040101  0.16701628 0.08600862 0.09700975 0.119012
  0.13001313 0.17401663 0.16301651 0.15401577 0.14401483]]
训练9900次,w:[[1.00011739 1.00021739 1.00021739]],loss:4.896013282110915e-07,w_grad:-2.3224466745223763e-05 ,pre_y:[[0.18502222 0.10401261 0.1670203  0.0860107  0.09701209 0.11901487
  0.13001626 0.17402083 0.16302043 0.15401948 0.1440183 ]]
训练10000次,w:[[1.00013977 1.00023977 1.00023977]],loss:4.880990026474034e-07,w_grad:-2.1566644986665863e-05 ,pre_y:[[0.18502636 0.10401494 0.16702404 0.08601262 0.09701426 0.11901753
  0.13001917 0.17402472 0.16302408 0.15402292 0.14402153]]
[[1.00013977 1.00023977 1.00023977]]
预测: [[0.18502636 0.10401494 0.16702404 0.08601262 0.09701426 0.11901753
  0.13001917 0.17402472 0.16302408 0.15402292 0.14402153]]
真实值: [[0.185 0.104 0.167 0.086 0.098 0.119 0.13  0.174 0.163 0.154 0.144]]

进程已结束,退出代码0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值