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

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

การแนะนำ

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

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

$$f'(x) = 0$$

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

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

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

Graph 1

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

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

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

ทิศทาง

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

Graph 2

Graph 3

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

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

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

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

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

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

หมายเหตุ: \

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

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

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

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

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

##ขั้นตอน

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

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

Graph 4

Graph 5

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

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

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

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

โคตรลาด

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

$$ x*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x_{n}} $$

ที่ไหน:

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

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

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

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

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

  • $x_{n}$ ใกล้กับ $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}}$ ใกล้ $0$ => อัปเดตเล็กน้อยเป็น $x_{ น}$

แบบทดสอบ

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

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

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

  • เมื่อ $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} = 0 $ XXX

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

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

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

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

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

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

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

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


Career Services background pattern

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

Contact Section background image

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

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