梯度下降的个人理解,学了很久,看了很多代码,总结出这份梯度下降笔记
用代码解释思路
#导包
import numpy as np
# 直接定义损失函数
def f(x):
return x**2-4*x+4
#导数
def h(x):
return 2*x-4 #损失函数的导数
x=16 # 定义初始横坐标为16
alpha=0.1 #步长或学习率为0.1
count=0 #用来记录迭代次数
x_td=1 #该值用来记录梯度下降时的x(t)与x(t+1)的差,在这里赋值1只要大于阈值就行,在这里1没有意义,只要大于阈值进入循环就行
error_rate =1e-10 #给定的阈值,梯度下降停止的标准
while x_td>error_rate:
print('梯度下降迭代第{}次,原始值为{}'.format(count, x),end='')
x_td=alpha*h(x)# 因为x(t+1)-x(t) 差值就为alpha*h(x) 所以直接赋值给 x_td,要解释的是我们要用x位移的距离代替f(x)的下差降值,当x_td达到一个超级小的值的时候,f(x)的位移也是非常小的!
x=x-alpha*h(x)
count += 1
print(',新x 值为{}极点值为{}'.format(x,f(x)))
print('迭代次数%d'%count)
print('极值点为(%f,%f)'%(x,f(x)))
out:
梯度下降迭代第0次,原始值为16,新x 值为13.2极点值为125.43999999999998
梯度下降迭代第1次,原始值为13.2,新x 值为10.959999999999999极点值为80.2816
梯度下降迭代第2次,原始值为10.959999999999999,新x 值为9.168极点值为51.380223999999984
梯度下降迭代第3次,原始值为9.168,新x 值为7.734399999999999极点值为32.88334335999999
梯度下降迭代第4次,原始值为7.734399999999999,新x 值为6.58752极点值为21.045339750399997
梯度下降迭代第5次,原始值为6.58752,新x 值为5.6700159999999995极点值为13.469017440256
梯度下降迭代第6次,原始值为5.6700159999999995,新x 值为4.936012799999999极点值为8.620171161763835
梯度下降迭代第7次,原始值为4.936012799999999,新x 值为4.34881024极点值为5.5169095435288575
梯度下降迭代第8次,原始值为4.34881024,新x 值为3.879048192极点值为3.5308221078584694
梯度下降迭代第9次,原始值为3.879048192,新x 值为3.5032385536极点值为2.2597261490294205
梯度下降迭代第10次,原始值为3.5032385536,新x 值为3.2025908428800003极点值为1.446224735378829
梯度下降迭代第11次,原始值为3.2025908428800003,新x 值为2.9620726743040002极点值为0.9255838306424504
梯度下降迭代第12次,原始值为2.9620726743040002,新x 值为2.7696581394432003极点值为0.5923736516111688
梯度下降迭代第13次,原始值为2.7696581394432003,新x 值为2.61572651155456极点值为0.3791191370311475
梯度下降迭代第14次,原始值为2.61572651155456,新x 值为2.492581209243648极点值为0.24263624769993442
梯度下降迭代第15次,原始值为2.492581209243648,新x 值为2.3940649673949186极点值为0.15528719852795803
梯度下降迭代第16次,原始值为2.3940649673949186,新x 值为2.315251973915935极点值为0.09938380705789296
梯度下降迭代第17次,原始值为2.315251973915935,新x 值为2.252201579132748极点值为0.06360563651705142
梯度下降迭代第18次,原始值为2.252201579132748,新x 值为2.2017612633061985极点值为0.040707607370912946
梯度下降迭代第19次,原始值为2.2017612633061985,新x 值为2.1614090106449586极点值为0.026052868717384214
梯度下降迭代第20次,原始值为2.1614090106449586,新x 值为2.1291272085159667极点值为0.01667383597912586
梯度下降迭代第21次,原始值为2.1291272085159667,新x 值为2.1033017668127734极点值为0.010671255026641013
梯度下降迭代第22次,原始值为2.1033017668127734,新x 值为2.0826414134502187极点值为0.006829603217050284
梯度下降迭代第23次,原始值为2.0826414134502187,新x 值为2.0661131307601748极点值为0.004370946058911862
梯度下降迭代第24次,原始值为2.0661131307601748,新x 值为2.05289050460814极点值为0.002797405477704018
梯度下降迭代第25次,原始值为2.05289050460814,新x 值为2.0423124036865117极点值为0.001790339505729932
梯度下降迭代第26次,原始值为2.0423124036865117,新x 值为2.0338499229492095极点值为0.0011458172836675828
梯度下降迭代第27次,原始值为2.0338499229492095,新x 值为2.0270799383593676极点值为0.0007333230615467201
梯度下降迭代第28次,原始值为2.0270799383593676,新x 值为2.0216639506874943极点值为0.000469326759390043
梯度下降迭代第29次,原始值为2.0216639506874943,新x 值为2.0173311605499955极点值为0.00030036912600994725
梯度下降迭代第30次,原始值为2.0173311605499955,新x 值为2.0138649284399963极点值为0.0001922362406459044
梯度下降迭代第31次,原始值为2.0138649284399963,新x 值为2.011091942751997极点值为0.00012303119401391172
梯度下降迭代第32次,原始值为2.011091942751997,新x 值为2.0088735542015974极点值为7.873996416840612e-05
梯度下降迭代第33次,原始值为2.0088735542015974,新x 值为2.0070988433612778极点值为5.039357706770886e-05
梯度下降迭代第34次,原始值为2.0070988433612778,新x 值为2.0056790746890223极点值为3.2251889323653415e-05
梯度下降迭代第35次,原始值为2.0056790746890223,新x 值为2.004543259751218极点值为2.0641209166782915e-05
梯度下降迭代第36次,原始值为2.004543259751218,新x 值为2.0036346078009744极点值为1.321037386681212e-05
梯度下降迭代第37次,原始值为2.0036346078009744,新x 值为2.0029076862407793极点值为8.454639274901865e-06
梯度下降迭代第38次,原始值为2.0029076862407793,新x 值为2.0023261489926236极点值为5.410969135866139e-06
梯度下降迭代第39次,原始值为2.0023261489926236,新x 值为2.001860919194099极点值为3.4630202465635307e-06
梯度下降迭代第40次,原始值为2.001860919194099,新x 值为2.001488735355279极点值为2.2163329580493496e-06
梯度下降迭代第41次,原始值为2.001488735355279,新x 值为2.001190988284223极点值为1.4184530927607852e-06
梯度下降迭代第42次,原始值为2.001190988284223,新x 值为2.0009527906273785极点值为9.078099791892669e-07
梯度下降迭代第43次,原始值为2.0009527906273785,新x 值为2.000762232501903极点值为5.809983871785107e-07
梯度下降迭代第44次,原始值为2.000762232501903,新x 值为2.0006097860015224极点值为3.7183896761661117e-07
梯度下降迭代第45次,原始值为2.0006097860015224,新x 值为2.000487828801218极点值为2.3797693948779397e-07
梯度下降迭代第46次,原始值为2.000487828801218,新x 值为2.0003902630409742极点值为1.5230524130771528e-07
梯度下降迭代第47次,原始值为2.0003902630409742,新x 值为2.0003122104327793极点值为9.747535401061214e-08
梯度下降迭代第48次,原始值为2.0003122104327793,新x 值为2.0002497683462233极点值为6.238422667337318e-08
梯度下降迭代第49次,原始值为2.0002497683462233,新x 值为2.0001998146769786极点值为3.992590524859452e-08
梯度下降迭代第50次,原始值为2.0001998146769786,新x 值为2.000159851741583极点值为2.555257960779045e-08
梯度下降迭代第51次,原始值为2.000159851741583,新x 值为2.0001278813932664极点值为1.6353650877931614e-08
梯度下降迭代第52次,原始值为2.0001278813932664,新x 值为2.000102305114613极点值为1.0466336242132002e-08
梯度下降迭代第53次,原始值为2.000102305114613,新x 值为2.0000818440916905极点值为6.6984551239102075e-09
梯度下降迭代第54次,原始值为2.0000818440916905,新x 值为2.0000654752733524极点值为4.287011634573901e-09
梯度下降迭代第55次,原始值为2.0000654752733524,新x 值为2.000052380218682极点值为2.7436870553287918e-09
梯度下降迭代第56次,原始值为2.000052380218682,新x 值为2.0000419041749455极点值为1.755959821991837e-09
梯度下降迭代第57次,原始值为2.0000419041749455,新x 值为2.0000335233399564极点值为1.1238139308034079e-09
梯度下降迭代第58次,原始值为2.0000335233399564,新x 值为2.000026818671965极点值为7.192415552026432e-10
梯度下降迭代第59次,原始值为2.000026818671965,新x 值为2.000021454937572极点值为4.603144532211445e-10
梯度下降迭代第60次,原始值为2.000021454937572,新x 值为2.0000171639500577极点值为2.9460078820875424e-10
梯度下降迭代第61次,原始值为2.0000171639500577,新x 值为2.0000137311600463极点值为1.8854517946920168e-10
梯度下降迭代第62次,原始值为2.0000137311600463,新x 值为2.000010984928037极点值为1.2066880827887871e-10
梯度下降迭代第63次,原始值为2.000010984928037,新x 值为2.0000087879424298极点值为7.722800177134559e-11
梯度下降迭代第64次,原始值为2.0000087879424298,新x 值为2.000007030353944极点值为4.942624087789227e-11
梯度下降迭代第65次,原始值为2.000007030353944,新x 值为2.000005624283155极点值为3.163247441761996e-11
梯度下降迭代第66次,原始值为2.000005624283155,新x 值为2.0000044994265243极点值为2.0245138898644655e-11
梯度下降迭代第67次,原始值为2.0000044994265243,新x 值为2.0000035995412193极点值为1.2956746786585427e-11
梯度下降迭代第68次,原始值为2.0000035995412193,新x 值为2.0000028796329756极点值为8.292033726320369e-12
梯度下降迭代第69次,原始值为2.0000028796329756,新x 值为2.0000023037063803极点值为5.306866057708248e-12
梯度下降迭代第70次,原始值为2.0000023037063803,新x 值为2.000001842965104极点值为3.396394276933279e-12
梯度下降迭代第71次,原始值为2.000001842965104,新x 值为2.000001474372083极点值为2.1733725930062064e-12
梯度下降迭代第72次,原始值为2.000001474372083,新x 值为2.0000011794976666极点值为1.3908874052503961e-12
梯度下降迭代第73次,原始值为2.0000011794976666,新x 值为2.0000009435981334极点值为8.899547765395255e-13
梯度下降迭代第74次,原始值为2.0000009435981334,新x 值为2.000000754878507极点值为5.702105454474804e-13
梯度下降迭代第75次,原始值为2.000000754878507,新x 值为2.0000006039028055极点值为3.6504133049675147e-13
梯度下降迭代第76次,原始值为2.0000006039028055,新x 值为2.0000004831222444极点值为2.3359092438113294e-13
梯度下降迭代第77次,原始值为2.0000004831222444,新x 值为2.0000003864977955极点值为1.4921397450962104e-13
梯度下降迭代第78次,原始值为2.0000003864977955,新x 值为2.0000003091982363极点值为9.592326932761353e-14
梯度下降迭代第79次,原始值为2.0000003091982363,新x 值为2.000000247358589极点值为6.128431095930864e-14
梯度下降迭代第80次,原始值为2.000000247358589,新x 值为2.0000001978868713极点值为3.907985046680551e-14
梯度下降迭代第81次,原始值为2.0000001978868713,新x 值为2.000000158309497极点值为2.4868995751603507e-14
梯度下降迭代第82次,原始值为2.000000158309497,新x 值为2.0000001266475977极点值为1.5987211554602254e-14
梯度下降迭代第83次,原始值为2.0000001266475977,新x 值为2.0000001013180784极点值为1.0658141036401503e-14
梯度下降迭代第84次,原始值为2.0000001013180784,新x 值为2.0000000810544627极点值为6.217248937900877e-15
梯度下降迭代第85次,原始值为2.0000000810544627,新x 值为2.00000006484357极点值为4.440892098500626e-15
梯度下降迭代第86次,原始值为2.00000006484357,新x 值为2.000000051874856极点值为2.6645352591003757e-15
梯度下降迭代第87次,原始值为2.000000051874856,新x 值为2.000000041499885极点值为1.7763568394002505e-15
梯度下降迭代第88次,原始值为2.000000041499885,新x 值为2.0000000331999077极点值为8.881784197001252e-16
梯度下降迭代第89次,原始值为2.0000000331999077,新x 值为2.0000000265599263极点值为8.881784197001252e-16
梯度下降迭代第90次,原始值为2.0000000265599263,新x 值为2.000000021247941极点值为8.881784197001252e-16
梯度下降迭代第91次,原始值为2.000000021247941,新x 值为2.000000016998353极点值为0.0
梯度下降迭代第92次,原始值为2.000000016998353,新x 值为2.000000013598682极点值为0.0
梯度下降迭代第93次,原始值为2.000000013598682,新x 值为2.0000000108789457极点值为0.0
梯度下降迭代第94次,原始值为2.0000000108789457,新x 值为2.0000000087031564极点值为0.0
梯度下降迭代第95次,原始值为2.0000000087031564,新x 值为2.0000000069625252极点值为0.0
梯度下降迭代第96次,原始值为2.0000000069625252,新x 值为2.00000000557002极点值为0.0
梯度下降迭代第97次,原始值为2.00000000557002,新x 值为2.000000004456016极点值为0.0
梯度下降迭代第98次,原始值为2.000000004456016,新x 值为2.000000003564813极点值为0.0
梯度下降迭代第99次,原始值为2.000000003564813,新x 值为2.0000000028518503极点值为0.0
梯度下降迭代第100次,原始值为2.0000000028518503,新x 值为2.0000000022814803极点值为0.0
梯度下降迭代第101次,原始值为2.0000000022814803,新x 值为2.0000000018251844极点值为0.0
梯度下降迭代第102次,原始值为2.0000000018251844,新x 值为2.0000000014601476极点值为0.0
梯度下降迭代第103次,原始值为2.0000000014601476,新x 值为2.000000001168118极点值为0.0
梯度下降迭代第104次,原始值为2.000000001168118,新x 值为2.0000000009344943极点值为0.0
梯度下降迭代第105次,原始值为2.0000000009344943,新x 值为2.0000000007475953极点值为0.0
梯度下降迭代第106次,原始值为2.0000000007475953,新x 值为2.0000000005980763极点值为0.0
梯度下降迭代第107次,原始值为2.0000000005980763,新x 值为2.000000000478461极点值为0.0
梯度下降迭代第108次,原始值为2.000000000478461,新x 值为2.0000000003827685极点值为0.0
迭代次数109
极值点为(2.000000,0.000000)