การไล่ระดับโคตร

การเรียนรู้เชิงลึก คณิตศาสตร์ การไล่ระดับสี
การไล่ระดับโคตร cover image

การแนะนำ

ลองนึกภาพว่าเรามีฟังก์ชัน f(x)f(x) และเราต้องการหาค่าต่ำสุดของมัน คุณจะทำอย่างไร?

ง่ายใช่มั้ย? เราเพียงต้องแก้สมการต่อไปนี้:

f(x)=0f'(x) = 0

ประเด็นก็คือการค้นหาสูตรของ ff' ไม่ใช่เรื่องง่ายเสมอไป เนื่องจากมีแนวโน้มที่จะซับซ้อนมาก โดยเฉพาะอย่างยิ่งในการเรียนรู้เชิงลึกที่เราจัดการกับฟังก์ชันที่ซับซ้อน ดังนั้นเราจึงต้องหาวิธีการอื่นที่สามารถให้ฟังก์ชันขั้นต่ำโดยไม่จำเป็นต้องค้นหาสูตรของอนุพันธ์ ff'

มาสร้างสัญชาตญาณกันหน่อย

สมมติว่าเรามีฟังก์ชัน f พร้อมด้วยกราฟที่สอดคล้องกัน:

Graph 1

เริ่มจากจุดสุ่ม x0x_{0} กันก่อน เป้าหมายคือการย้ายจุดนี้และทำให้มันเข้าใกล้ xx* มากขึ้นเรื่อยๆ โดยที่ f(f'(x*)=0) = 0 ดังนั้นปัญหาสามารถแบ่งออกเป็นสองส่วน:

  • เราควรย้ายจุด xx ไปในทิศทางใด? ซ้ายหรือขวา?

  • เราควรย้ายเท่าไหร่?

ทิศทาง

มาสร้างสัญชาตญาณเพื่อตอบคำถามแรกกัน ลองดูที่จุดต่อไปนี้:

Graph 2

Graph 3

โปรดทราบว่า:

  • เมื่อจุด x0x_{0} อยู่ทางด้านขวาของจุดที่เหมาะสมที่สุด xx* เส้นสัมผัสของมันจะเพิ่มขึ้น

  • เมื่อจุด x0x_{0} อยู่ทางด้านขวาของจุดที่เหมาะสมที่สุด xx* เส้นสัมผัสของเส้นสัมผัสจะลดลง

ทิศทางของเส้นถูกกำหนดโดยเครื่องหมายของความชัน:

  • เส้นตรงขึ้นไป     \implies ความชัน aa เป็น บวก

  • เส้นตรงลงไป     \implies ความชัน aa เป็น ลบ

หมายเหตุ: \

ความชันของเส้นสัมผัสเส้นโค้งของฟังก์ชัน ณ จุดใดจุดหนึ่ง x0x_{0} นั้นไม่เกินค่าอนุพันธ์ ณ จุดนั้น f(x0)f'(x_{0}):

tangent(x0):g(x)=f(x0).(xx0)+f(x0)tangent(x*{0}): g(x) = f'(x*{0}).(x-x*{0}) + f(x*{0})

เพื่อเป็นคำตอบสำหรับคำถาม "เราควรย้าย x0x_{0} ที่ไหน?":

  • f(x0)<0f'(x_{0}) < 0     \implies x0x_{0} ทางด้านขวาของ xx*     \implies เราต้องย้าย x0x_{0} ไปทางซ้าย

  • f(x0)>0f'(x_{0}) > 0     \implies x0x_{0} ทางด้านซ้ายของ xx*     \implies เราต้องย้าย x0x_{0} ไปทางขวา

##ขั้นตอน

สำหรับคำถามที่สอง เราควรย้าย x0x_{0} ? เท่าไหร่

ลองดูตัวอย่างต่อไปนี้:

Graph 4

Graph 5

เราสามารถสรุปได้ว่า:

  • x0x_{0} อยู่ใกล้กับ xx* => ความชันของแทนเจนต์มีค่าน้อย => f(x0)f'(x_{0}) มีค่าน้อย

  • x0x_{0} อยู่ห่างจาก xx* => ความชันของแทนเจนต์มีขนาดใหญ่ => f(x0)f'(x_{0}) นั้นใหญ่

จากการตอบคำถามทั้งสองข้อ เราได้สรุปว่าความรู้เรื่องอนุพันธ์ในจุด x0x_{0} เท่านั้นที่จะให้ข้อมูลเชิงลึกมากมายเกี่ยวกับทิศทางและระยะห่างของจุดที่เหมาะสมที่สุด x0x_{0} ได้

โคตรลาด

การไล่ระดับสีเป็นการกำหนดคำตอบของคำถามสองข้อก่อนหน้า เป็นอัลกอริธึมการทำซ้ำการปรับให้เหมาะสมซึ่งจะประมาณฟังก์ชัน xx* ขั้นต่ำที่เริ่มต้นจากจุดเริ่มต้นแบบสุ่ม x0x_{0} อัลกอริทึมระบุไว้ดังนี้:

xn+1=xnlr×dfdx_nx*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x\_{n}}

ที่ไหน:

  • dfdxn\frac{\mathrm{d} f}{\mathrm{d} x*{n}} ไม่เกินอนุพันธ์ของ ff ในจุด xnx*{n}

  • lrlr เป็นค่าคงที่บวกที่กำหนดว่าขั้นต่างๆ จะใหญ่แค่ไหน

โปรดสังเกตว่า:

  • xnx_{n} อยู่ทางขวาของ xx* => dfdxn>0\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 => xn+1=xnค่าบวกx_{n+ 1} = x_{n} - ค่าบวก => xnx_{n} เคลื่อนไปทางซ้าย

  • xnx_{n} อยู่ทางด้านซ้ายของ xx* => dfdxn<0\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0 => xn+1=xn+positivex*{n +1} = x*{n} + positive => xnx_{n} เลื่อนไปทางขวา

  • xnx_{n} ใกล้กับ xx* => dfdxn\frac{\mathrm{d} f}{\mathrm{d} x_{n}} ใกล้ 00 => อัปเดตเล็กน้อยเป็น xx_{ น}

แบบทดสอบ

  • การไล่ระดับลงจะหยุดวนซ้ำเมื่อใด:

  • เมื่อ xnx_{n} มีขนาดเล็กพอ

  • เมื่อ xnx_{n} อยู่ใกล้กับ x0x_{0}

  • เมื่อ dfdx_n=0\frac{\mathrm{d} f}{\mathrm{d} x\_{n}} = 0 XXX

  • เราจะเลือก x0x_{0}: ได้อย่างไร

  • เราสุ่มเลือก XXX

  • เราถือว่ามันอยู่ในละแวก xnx{n}

  • มันขึ้นอยู่กับปัญหา

  • เหตุใดเราจึงต้องมีการไล่ระดับสี:

  • เนื่องจากคอมพิวเตอร์ไม่มีประสิทธิภาพเพียงพอที่จะคำนวณอนุพันธ์

  • เพราะมันยากมากที่จะหาสูตรอนุพันธ์ของโมเดลการเรียนรู้เชิงลึก XXX

  • เนื่องจากฟังก์ชันมีจุดต่ำสุดในพื้นที่มากกว่าหนึ่งรายการ


Career Services background pattern

บริการด้านอาชีพ

Contact Section background image

มาติดต่อกันกันเถอะ

Code Labs Academy © 2025 สงวนลิขสิทธิ์.