defgradient(x,n_iter,alpha):J=[]defcompute_cost(x):""" ฟังก์ชันที่เราต้องการทำให้มีค่าต่ำที่สุด """J=x**2-4*xreturnJdefcompute_grad(x):""" ฟังก์ชันคำนวณหาความชันเมื่อได้รับค่า x """grad=2*x-4returngrad# n_iter เป็นจำนวนครั้งที่เราอัพเดทค่า x จนไปถึงจุดต่ำที่สุดforiinrange(n_iter):x=x-alpha*compute_grad(x)J.append(compute_cost(x))returnx,J[-1]
importtorchx=10*torch.ones(1)x.requires_grad_(True)# ตั้งค่าให้ x สามารถคำนวณหา gradient ได้out=torch.sum(x*x-4*x)# cost functionprint(x)# สมมติค่าเริ่มต้นที่ x = 10# gradient descentalpha=0.02for_inrange(1000):out.backward(retain_graph=True)# calculate gradient usingx.data.sub_(alpha*x.grad.data)# x = x - alpha * f'(x)x.grad.data.zero_()# setting gradient back to zero againprint(x)# สุดท้ายแล้วจะได้ค่า x = 2 ที่ทำให้ฟังก์ชันมีค่าต่ำที่สุด
การเคล, อนลงตามความช, gradient, descent, algorithm, เป, นอ, ลกอร, มท, ใช, หาค, าท, เหมาะสมท, ดให, บฟ, งก, นท, กำหนดข, นมา, โดยอ, ลกอร, มใช, การวนหาค, าท, ทำให, าต, ำส, ดจากการคำนวณจากความช, นท, ดท, เราอย, แล, วพยายามเด, นทางไปทางตรงข, ามก, บความช, นท, คำนวณข, . karekhluxnlngtamkhwamchn Gradient Descent Algorithm epnxlkxrithumthiichhakhathiehmaasmthisudihkbfngkchnthikahndkhunma odyxlkxrithumichkarwnhakhathithaihkhatasudcakkarkhanwncakkhwamchnthicudthieraxyuaelwphyayamedinthangipthangtrngkhamkbkhwamchnthikhanwnkhunma enuxha 1 khntxnkarthangan 2 khwamsbsxninkarthangan 3 twxyangkarekhiynopraekrm 4 xangxingkhntxnkarthangan aekikh1 kahndfngkchnthitxngkarhakha yktwxyangechn fngkchnaekhlkhuls f x x 2 4 x displaystyle f x x 2 4x sungmikhakhwamchn gradient ethakb f x 2 x 4 displaystyle f x 2x 4 2 erasamartherimthicudidkidbnpharaobla echnthaerasumkhaerimtnxxkmathi x 10 displaystyle x 10 eracahacudtasudodyducudthieraxyuaelweluxnipthangtrngkham thaaebbediywknhlaykhrng x kcaluekhasucudtalngeruxy aelasinsudemuxthungkha x displaystyle x thi slope mikhaethasuny3 ih k displaystyle k n iter khux canwnkhrngthierawnhakha x displaystyle x xlkxrithumthihacudtasudkhxng f x x 2 4 x displaystyle f x x 2 4x samarthekhiyniddngni x k 1 x k a f x k displaystyle x k 1 x k alpha f x k odykha 𝛼 khuxkhakarluekha yingmikhamakcayingluekhaerw aetthamakekinip karxphedthkhrngthdipcathaihkha x displaystyle x mikhamakekinipcnluxxkipthungxnntkidkhwamsbsxninkarthangan aekikhkhwamsbsxnkhxngxlkxrithumkarekhluxnlngtamkhwamchnmikhaethakb Big O O n Best case khux canwnkarwnrxbthinxythisud Worst case khux canwnwnrxbthimakthisudtwxyangkarekhiynopraekrm aekikhcaktwxyangkhangtn erasamarthekhiynopraekrmphasa Python ephuxhakha x displaystyle x thithaih f x x 2 4 x displaystyle f x x 2 4x mikhatathisudodyichxlkxrithumkarekhluxnlngtamkhwamchniddngnidef gradient x n iter alpha J def compute cost x fngkchnthieratxngkarthaihmikhatathisud J x 2 4 x return J def compute grad x fngkchnkhanwnhakhwamchnemuxidrbkha x grad 2 x 4 return grad n iter epncanwnkhrngthieraxphedthkha x cnipthungcudtathisud for i in range n iter x x alpha compute grad x J append compute cost x return x J 1 nxkcakcaichwithikarthwipaelw erayngsamarthichilbrari Pytorch ewxrchn 0 4 1 rwmkb autograd ephuxkhanwnhakha x displaystyle x thithaih f x x 2 4 x displaystyle f x x 2 4x mikhatathisudidechnkn ody autograd samarthpramankhwamchnidodythieraimtxngkhanwnhakhwamchnkhxngfngkchndwytwexngimport torch x 10 torch ones 1 x requires grad True tngkhaih x samarthkhanwnha gradient id out torch sum x x 4 x cost function print x smmtikhaerimtnthi x 10 gradient descent alpha 0 02 for in range 1000 out backward retain graph True calculate gradient using x data sub alpha x grad data x x alpha f x x grad data zero setting gradient back to zero again print x sudthayaelwcaidkha x 2 thithaihfngkchnmikhatathisudxangxing aekikh 1 https tupleblog github io gradient descent part1 https lukkiddd com E0 B9 80 E0 B8 94 E0 B8 B4 E0 B8 99 E0 B8 A5 E0 B8 87 E0 B9 80 E0 B8 82 E0 B8 B2 E0 B8 94 E0 B9 89 E0 B8 A7 E0 B8 A2 gradient descent algorithm 7db99092b981ekhathungcak https th wikipedia org w index php title karekhluxnlngtamkhwamchn amp oldid 7851806, wikipedia, วิกิ หนังสือ, หนังสือ, ห้องสมุด,