![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Gradient descent ແມ່ນເຕັກນິກການເພີ່ມປະສິດທິພາບທີ່ນິຍົມທີ່ສຸດໃນການຮຽນຮູ້ເຄື່ອງຈັກ (ML). ສູດການຄິດໄລ່ຫຼຸດຜ່ອນຄວາມຜິດພາດລະຫວ່າງຄ່າທີ່ຄາດຄະເນໄວ້ກັບຄວາມຈິງພື້ນຖານ. ນັບຕັ້ງແຕ່ເຕັກນິກການພິຈາລະນາແຕ່ລະຈຸດຂໍ້ມູນເພື່ອເຂົ້າໃຈແລະຫຼຸດຜ່ອນຄວາມຜິດພາດ, ການປະຕິບັດຂອງມັນຂຶ້ນກັບຂະຫນາດຂໍ້ມູນການຝຶກອົບຮົມ. ເຕັກນິກເຊັ່ນ: Stochastic Gradient Descent (SGD) ຖືກອອກແບບມາເພື່ອປັບປຸງການປະຕິບັດການຄິດໄລ່ແຕ່ໃນຄ່າໃຊ້ຈ່າຍຂອງຄວາມຖືກຕ້ອງຂອງ convergence.
Stochastic Average Gradient ດຸ່ນດ່ຽງວິທີການຄລາສສິກ, ເອີ້ນວ່າ Full Gradient Descent ແລະ SGD, ແລະໃຫ້ຜົນປະໂຫຍດທັງສອງ. ແຕ່ກ່ອນທີ່ພວກເຮົາຈະສາມາດໃຊ້ algorithm ໄດ້, ພວກເຮົາທໍາອິດຕ້ອງເຂົ້າໃຈຄວາມສໍາຄັນຂອງມັນສໍາລັບການເພີ່ມປະສິດທິພາບຂອງຕົວແບບ.
ທຸກໆ ML algorithm ມີຫນ້າທີ່ສູນເສຍທີ່ກ່ຽວຂ້ອງທີ່ມີຈຸດປະສົງເພື່ອຫຼຸດຜ່ອນຫຼືປັບປຸງການປະຕິບັດຂອງຕົວແບບ. ໃນທາງຄະນິດສາດ, ການສູນເສຍສາມາດຖືກກໍານົດເປັນ:
ມັນເປັນພຽງແຕ່ຄວາມແຕກຕ່າງລະຫວ່າງຜົນຜະລິດຕົວຈິງແລະການຄາດຄະເນ, ແລະການຫຼຸດຜ່ອນຄວາມແຕກຕ່າງນີ້ຫມາຍຄວາມວ່າຕົວແບບຂອງພວກເຮົາເຂົ້າມາໃກ້ກັບຄຸນຄ່າຂອງຄວາມຈິງ.
ສູດການຄິດໄລ່ການຫຼຸດຫນ້ອຍລົງໃຊ້ການສືບເຊື້ອສາຍ gradient ເພື່ອຜ່ານຟັງຊັນການສູນເສຍ ແລະຊອກຫາລະດັບຕໍາ່ສຸດທີ່ທົ່ວໂລກ. ແຕ່ລະຂັ້ນຕອນຜ່ານໄປກ່ຽວຂ້ອງກັບການອັບເດດນ້ຳໜັກຂອງລະບົບເພື່ອປັບແຕ່ງຜົນຜະລິດ.
ສູດການຄິດໄລ່ gradient descent ທຳມະດາໃຊ້ຄ່າສະເລ່ຍຂອງ gradient ທັງໝົດທີ່ຄຳນວນໃນທົ່ວຊຸດຂໍ້ມູນທັງໝົດ. ວົງຈອນຊີວິດຂອງຕົວຢ່າງການຝຶກອົບຮົມດຽວມີລັກສະນະດັ່ງຕໍ່ໄປນີ້:
ສົມຜົນການປັບປຸງນ້ໍາຫນັກມີລັກສະນະດັ່ງຕໍ່ໄປນີ້:
ບ່ອນທີ່ W
ເປັນຕົວແທນຂອງນ້ໍາຫນັກຕົວແບບແລະ dJ/dW
ແມ່ນມາຈາກການທໍາງານຂອງການສູນເສຍທີ່ກ່ຽວຂ້ອງກັບນ້ໍາຫນັກຕົວແບບ. ວິທີການແບບດັ້ງເດີມມີອັດຕາການລວມກັນສູງແຕ່ກາຍເປັນລາຄາແພງໃນຄອມພິວເຕີ້ເມື່ອຈັດການກັບຊຸດຂໍ້ມູນຂະຫນາດໃຫຍ່ທີ່ປະກອບດ້ວຍຫຼາຍລ້ານຈຸດຂໍ້ມູນ.
ວິທີການ SGD ຍັງຄົງຄືກັນກັບ GD ທໍາມະດາ, ແຕ່ແທນທີ່ຈະໃຊ້ຊຸດຂໍ້ມູນທັງຫມົດເພື່ອຄິດໄລ່ gradients, ມັນໃຊ້ຊຸດນ້ອຍໆຈາກວັດສະດຸປ້ອນ. ວິທີການດັ່ງກ່າວມີປະສິດທິພາບຫຼາຍ ແຕ່ອາດຈະໃຊ້ຫຼາຍເກີນຂອບເຂດທົ່ວໂລກ ເນື່ອງຈາກການເຮັດຊ້ຳແຕ່ລະຄັ້ງໃຊ້ພຽງແຕ່ສ່ວນຫນຶ່ງຂອງຂໍ້ມູນເພື່ອການຮຽນຮູ້.
ວິທີການ Stochastic Average Gradient (SAG) ໄດ້ຖືກນໍາສະເຫນີເປັນພື້ນທີ່ກາງລະຫວ່າງ GD ແລະ SGD. ມັນເລືອກຈຸດຂໍ້ມູນແບບສຸ່ມແລະປັບປຸງມູນຄ່າຂອງມັນໂດຍອີງໃສ່ gradient ຢູ່ທີ່ຈຸດນັ້ນແລະສະເລ່ຍນ້ໍາຫນັກຂອງ gradients ທີ່ຜ່ານມາເກັບຮັກສາໄວ້ສໍາລັບຈຸດຂໍ້ມູນສະເພາະນັ້ນ.
ຄ້າຍຄືກັນກັບ SGD, SAG ແບບຈໍາລອງທຸກບັນຫາເປັນຈໍານວນຈໍາກັດຂອງ convex, ຫນ້າທີ່ແຕກຕ່າງກັນ. ໃນເວລາ iteration ໃດ, ມັນໃຊ້ gradients ໃນປັດຈຸບັນແລະສະເລ່ຍຂອງ gradients ທີ່ຜ່ານມາສໍາລັບການປັບປຸງນ້ໍາ. ສົມຜົນມີຮູບແບບດັ່ງຕໍ່ໄປນີ້:
ລະຫວ່າງສອງສູດການຄິດໄລ່ທີ່ນິຍົມ, gradient ເຕັມ (FG) ແລະ stochastic gradient descent (SGD), FG algorithm ມີອັດຕາການລວມກັນທີ່ດີກວ່ານັບຕັ້ງແຕ່ມັນໃຊ້ຊຸດຂໍ້ມູນທັງຫມົດໃນລະຫວ່າງແຕ່ລະ iteration ສໍາລັບການຄິດໄລ່.
ເຖິງແມ່ນວ່າ SAG ມີໂຄງສ້າງຄ້າຍຄືກັນກັບ SGD, ອັດຕາການລວບລວມຂອງມັນແມ່ນທຽບກັບແລະບາງຄັ້ງດີກວ່າວິທີການ gradient ເຕັມ. ຕາຕະລາງ 1 ຂ້າງລຸ່ມນີ້ສະຫຼຸບຜົນໄດ້ຮັບຈາກການທົດລອງຂອງ
ເຖິງວ່າຈະມີການປະຕິບັດທີ່ຫນ້າຕື່ນຕາຕື່ນໃຈ, ການດັດແປງຫຼາຍໆຄັ້ງໄດ້ຖືກສະເຫນີໃຫ້ກັບ SGD algorithm ຕົ້ນສະບັບເພື່ອຊ່ວຍປັບປຸງການປະຕິບັດ.
Gradient descent ແມ່ນການເພີ່ມປະສິດທິພາບທີ່ນິຍົມໃຊ້ສໍາລັບການກໍານົດຕໍາ່ສຸດທີ່ທົ່ວໂລກຂອງຫນ້າທີ່ຈຸດປະສົງທີ່ສະຫນອງໃຫ້. ສູດການຄິດໄລ່ໃຊ້ gradient ຂອງຟັງຊັນຈຸດປະສົງເພື່ອຂ້າມຄວາມຊັນຂອງຟັງຊັນຈົນກ່ວາມັນໄປຮອດຈຸດຕໍ່າສຸດ.
Full Gradient Descent (FG) ແລະ Stochastic Gradient Descent (SGD) ແມ່ນສອງຕົວແປທີ່ນິຍົມກັນຂອງສູດການຄິດໄລ່. FG ໃຊ້ຊຸດຂໍ້ມູນທັງໝົດໃນລະຫວ່າງການເຮັດຊ້ຳແຕ່ລະຄັ້ງ ແລະໃຫ້ອັດຕາການລວມເຂົ້າກັນທີ່ສູງດ້ວຍຄ່າໃຊ້ຈ່າຍໃນການຄິດໄລ່ສູງ. ໃນແຕ່ລະຄັ້ງ, SGD ໃຊ້ຊຸດຂໍ້ມູນຍ່ອຍເພື່ອແລ່ນສູດການຄິດໄລ່. ມັນມີປະສິດຕິພາບຫຼາຍກວ່າເກົ່າ ແຕ່ມີການປະສົມປະສານທີ່ບໍ່ແນ່ນອນ.
Stochastic Average Gradient (SAG) ແມ່ນການປ່ຽນແປງອື່ນທີ່ໃຫ້ຜົນປະໂຫຍດຂອງທັງສອງ algorithms ທີ່ຜ່ານມາ. ມັນໃຊ້ຄ່າສະເລ່ຍຂອງ gradients ທີ່ຜ່ານມາ ແລະຊຸດຍ່ອຍຂອງຊຸດຂໍ້ມູນເພື່ອໃຫ້ອັດຕາການລວມເຂົ້າກັນສູງດ້ວຍການຄິດໄລ່ຕໍ່າ. ສູດການຄິດໄລ່ສາມາດຖືກດັດແປງຕື່ມອີກເພື່ອປັບປຸງປະສິດທິພາບຂອງມັນໂດຍໃຊ້ vectorization ແລະ mini-batches.