พิมพ์คำที่ต้องการค้นหา ทั้งภาษาไทยและอังกฤษ

  1. หน้าแรก
  2. คลังความรู้
  3. แคลคูลัสหลายตัวแปร
  4. เกรเดียนต์

// บทที่ 24.3 · แคลคูลัสหลายตัวแปร · Gradient & Directional Derivative

เกรเดียนต์ (Gradient) และอนุพันธ์ตามทิศ (Directional Derivative): ความหมาย สูตร และตัวอย่าง

ยืนบนเนินเขา อยากรู้ว่า “เดินไปทางไหนชันที่สุด” และ “ถ้าเดินไปทางตะวันออกเฉียงเหนือจะชันเท่าไร” คำตอบทั้งสองมาจากเวกเตอร์ตัวเดียวที่เรียกว่าเกรเดียนต์ (gradient) ∇f\nabla f ซึ่งเป็นหัวใจของแคลคูลัสหลายตัวแปร และปรากฏทุกที่ในงานวิศวกรรม: สนามไฟฟ้า E=−∇V\mathbf E = -\nabla V ฟลักซ์ความร้อน q=−k∇T\mathbf q = -k\nabla T การไหลของน้ำบนผิวดิน และอัลกอริทึม gradient descent ที่ปรับพารามิเตอร์ตัวควบคุมหรือโมเดล หน้านี้มีแล็บหมุนทิศ u\mathbf u แล้วดูค่า DufD_{\mathbf u}f บนกราฟขั้ว และปล่อยจุดลงเขาด้วย gradient descent

เขียนโดย อาจารย์มดอัปเดต
สรุปใน 30 วินาที
  • ∇f=⟨fx,fy⟩\nabla f = \langle f_x, f_y\rangle (หรือ ⟨fx,fy,fz⟩\langle f_x, f_y, f_z\rangle) · ชี้ทาง ff เพิ่มเร็วสุด · ขนาด ∣∇f∣|\nabla f| = อัตราเพิ่มสูงสุด
  • อนุพันธ์ตามทิศ Duf=∇f⋅u=∣∇f∣cos⁡θD_{\mathbf u}f = \nabla f\cdot\mathbf u = |\nabla f|\cos\theta เมื่อ u\mathbf u เป็นเวกเตอร์หนึ่งหน่วย
  • ∇f\nabla f ตั้งฉากกับเส้นชั้น f=cf = c · ใน 3 มิติ ∇F\nabla F คือเวกเตอร์ปกติของผิวระดับ F=cF = c
  • gradient descent: x←x−α∇f\mathbf x \leftarrow \mathbf x - \alpha\nabla f ลงเขาทีละก้าว
ระดับพื้นฐาน ปี 1 · แคลคูลัส 1กลาง แคลคูลัส 3 · คณิตศาสตร์วิศวกรรมขั้นสูง พิสูจน์ · ทฤษฎี

เกรเดียนต์คืออะไร พื้นฐาน

อนุพันธ์ย่อยให้ความชันตามแกน xx และแกน yy แต่ผิวมีทิศให้เดินได้ไม่จำกัด ทำไมความรู้เรื่องสองแกนจึงพอทำนายทิศไหนก็ได้? เพราะผิวเรียบเมื่อซูมเข้าจะเป็นระนาบ (บทระนาบสัมผัส) และระนาบถูกกำหนดด้วยความชันสองค่า การรวมสองค่าเป็นเวกเตอร์เดียวคือเกรเดียนต์ ซึ่งเขียนด้วยสัญลักษณ์ ∇\nabla (อ่านว่า “เดล” หรือ “นาบลา”)

G1 Gradient เกรเดียนต์

∇f=⟨∂f∂x, ∂f∂y⟩=fx i+fy j,∇f=⟨fx,fy,fz⟩ (3 ตัวแปร)\nabla f = \left\langle \frac{\partial f}{\partial x},\ \frac{\partial f}{\partial y}\right\rangle = f_x\,\mathbf i + f_y\,\mathbf j,\qquad \nabla f = \left\langle f_x, f_y, f_z\right\rangle \ \text{(3 ตัวแปร)}

ฟังก์ชันสเกลาร์ → สนามเวกเตอร์ · ตัวดำเนินการ ∇=⟨∂∂x,∂∂y,∂∂z⟩\nabla = \left\langle \dfrac{\partial}{\partial x}, \dfrac{\partial}{\partial y}, \dfrac{\partial}{\partial z}\right\rangle (grad) · บางตำราเขียน grad⁡f\operatorname{grad} f

ตัวอย่าง G-1 · หา gradient

หา ∇f\nabla f ของ f(x,y)=x2y3−4yf(x, y) = x^2 y^3 - 4y แล้วคำนวณที่ (2,−1)(2, -1)

  1. fx=2xy3f_x = 2xy^3 · fy=3x2y2−4f_y = 3x^2y^2 - 4

  2. แทน (2,−1)(2, -1): fx=2(2)(−1)3=−4f_x = 2(2)(-1)^3 = -4 · fy=3(4)(1)−4=8f_y = 3(4)(1) - 4 = 8

  3. ดังนั้น ∇f(2,−1)=⟨−4,8⟩\nabla f(2, -1) = \langle -4, 8\rangle · ขนาด ∣∇f∣=16+64=80=8.94|\nabla f| = \sqrt{16 + 64} = \sqrt{80} = 8.94

∇f=⟨2xy3, 3x2y2−4⟩\nabla f = \langle 2xy^3,\ 3x^2y^2 - 4\rangle · ที่ (2,−1)(2,-1) คือ ⟨−4,8⟩\langle -4, 8\rangle

อนุพันธ์ตามทิศ (Directional Derivative) พื้นฐาน

อนุพันธ์ตามทิศคืออัตราเปลี่ยนของ ff เมื่อเดินจากจุดหนึ่งตรงไปตามทิศที่กำหนด ด้วยความเร็วหนึ่งหน่วยต่อหน่วยระยะ ทิศถูกระบุด้วยเวกเตอร์หนึ่งหน่วย u=⟨cos⁡θ,sin⁡θ⟩\mathbf u = \langle \cos\theta, \sin\theta\rangle อนุพันธ์ย่อย fxf_x และ fyf_y คือกรณีพิเศษของ DufD_{\mathbf u}f ที่ทิศ u=i\mathbf u = \mathbf i และ u=j\mathbf u = \mathbf j

G2 Directional derivative (definition) อนุพันธ์ตามทิศ (นิยาม)

Duf(a,b)=lim⁡h→0f(a+hu1, b+hu2)−f(a,b)h=ddhf(x0+hu)∣h=0D_{\mathbf u} f(a, b) = \lim_{h\to 0} \frac{f(a + h u_1,\ b + h u_2) - f(a, b)}{h} = \left.\frac{d}{dh} f(\mathbf x_0 + h\mathbf u)\right|_{h=0}

เดินเป็นเส้นตรง x0+hu\mathbf x_0 + h\mathbf u แล้วหาอนุพันธ์ของ ff ตามระยะ hh · u\mathbf u ต้องหนึ่งหน่วย (∣u∣=1|\mathbf u| = 1) จึงให้หน่วยเป็น “ต่อหน่วยระยะ”

G3 Computing formula สูตรคำนวณ

Duf=∇f⋅u=fxu1+fyu2=∣∇f∣cos⁡θ,u=v∣v∣D_{\mathbf u} f = \nabla f \cdot \mathbf u = f_x u_1 + f_y u_2 = |\nabla f|\cos\theta,\qquad \mathbf u = \frac{\mathbf v}{|\mathbf v|}

θ\theta = มุมระหว่าง ∇f\nabla f กับ u\mathbf u · ถ้าโจทย์ให้ทิศเป็นเวกเตอร์ v\mathbf v ใด ๆ ให้ทำเป็นหนึ่งหน่วยก่อนเสมอ (ข้อผิดพลาดอันดับหนึ่ง) · พิสูจน์ด้วยกฎลูกโซ่ ddhf(a+hu1,b+hu2)=fxu1+fyu2\dfrac{d}{dh}f(a + hu_1, b + hu_2) = f_x u_1 + f_y u_2

ตัวอย่าง G-2 · อนุพันธ์ตามทิศที่กำหนดด้วยเวกเตอร์

ต่อจาก G-1: หา DufD_{\mathbf u}f ที่ (2,−1)(2, -1) ในทิศ v=⟨2,5⟩\mathbf v = \langle 2, 5\rangle

  1. ∣v∣=4+25=29|\mathbf v| = \sqrt{4 + 25} = \sqrt{29} จึง u=⟨2,5⟩29\mathbf u = \dfrac{\langle 2, 5\rangle}{\sqrt{29}} (ทำเป็นหนึ่งหน่วยก่อน!)

  2. ∇f(2,−1)=⟨−4,8⟩\nabla f(2,-1) = \langle -4, 8\rangle จาก G-1

  3. Duf=⟨−4,8⟩⋅⟨2,5⟩29=−8+4029=3229≈5.94D_{\mathbf u} f = \langle -4, 8\rangle\cdot\dfrac{\langle 2, 5\rangle}{\sqrt{29}} = \dfrac{-8 + 40}{\sqrt{29}} = \dfrac{32}{\sqrt{29}} \approx 5.94

  4. เทียบกับขนาดสูงสุด ∣∇f∣=8.94|\nabla f| = 8.94: ทิศนี้ทำมุม θ\theta กับ ∇f\nabla f โดย cos⁡θ=5.94/8.94=0.665\cos\theta = 5.94/8.94 = 0.665 → θ≈48.4∘\theta \approx 48.4^\circ

Duf=32/29≈5.94D_{\mathbf u}f = 32/\sqrt{29} \approx 5.94 (ถ้าลืมทำเป็นหนึ่งหน่วยจะได้ 32 ซึ่งผิด)

แล็บ: หมุนทิศ u ดู Duf และปล่อยจุดลงเขา พื้นฐาน

ลูกศรดำคือ ∇f\nabla f (ชี้ขึ้นเขาชันสุด ตั้งฉากกับเส้นชั้นที่ผ่านจุด) ลูกศรฟ้าคือทิศ u\mathbf u ที่คุณเลือกด้วยแถบมุม θ\theta กราฟขั้วด้านขวาแสดงค่า DufD_{\mathbf u}f ทุกทิศ เป็นวงกลมที่ผ่านจุดกำเนิด (เพราะ Duf=∣∇f∣cos⁡(θ−θg)D_{\mathbf u}f = |\nabla f|\cos(\theta - \theta_g)) ยอดวงกลมอยู่ในทิศ ∇f\nabla f ส่วนจุดที่ผ่านจุดกำเนิดคือทิศตั้งฉาก ซึ่ง Duf=0D_{\mathbf u}f = 0 นั่นคือเดินไปตามเส้นชั้น

xyf = 1f = 4f = 9f = 16∇f = ⟨2x, 6y⟩ลูกศรน้ำเงิน = ∇f (ชี้ทางที่ f เพิ่มเร็วที่สุด)
เกรเดียนต์ของ f=x2+3y2f = x^2 + 3y^2 ที่หลายจุด: ลูกศรชี้ทางขึ้นชันที่สุดและตั้งฉากกับเส้นชั้นเสมอ (เส้นชั้นเป็นวงรี)

ทิศที่ชันที่สุด และอัตราสูงสุด พื้นฐาน

จาก Duf=∣∇f∣cos⁡θD_{\mathbf u}f = |\nabla f|\cos\theta ค่านี้ใหญ่สุดเมื่อ cos⁡θ=1\cos\theta = 1 (u\mathbf u ทิศเดียวกับ ∇f\nabla f) เล็กสุดเมื่อ cos⁡θ=−1\cos\theta = -1 และเป็นศูนย์เมื่อ cos⁡θ=0\cos\theta = 0 (ตั้งฉาก)

G4 Direction of steepest ascent ทิศขึ้นชันที่สุด

max⁡∣u∣=1Duf=∣∇f∣  (u=∇f∣∇f∣),min⁡Duf=−∣∇f∣  (u=−∇f∣∇f∣),Duf=0  (u⊥∇f)\max_{|\mathbf u|=1} D_{\mathbf u}f = |\nabla f|\ \ (\mathbf u = \tfrac{\nabla f}{|\nabla f|}),\qquad \min D_{\mathbf u}f = -|\nabla f|\ \ (\mathbf u = -\tfrac{\nabla f}{|\nabla f|}),\qquad D_{\mathbf u}f = 0\ \ (\mathbf u \perp \nabla f)

ขึ้นชันสุด +∇f+\nabla f · ลงชันสุด −∇f-\nabla f · เดินตามเส้นชั้น ⊥∇f\perp\nabla f · ถ้า ∇f=0\nabla f = \mathbf 0 (จุดวิกฤต) ทุกทิศได้ Duf=0D_{\mathbf u}f = 0

ตัวอย่าง G-3 · อุณหภูมิบนแผ่นโลหะ (เครื่องกล)

อุณหภูมิบนแผ่นโลหะ T(x,y)=801+x2+2y2T(x, y) = \dfrac{80}{1 + x^2 + 2y^2} °C (x, y เป็นเมตร) แมลงที่ (3,−1)(3, -1) ต้องการหนีร้อนให้เร็วที่สุด ควรเดินไปทิศใด และอุณหภูมิลดเร็วเพียงใด

  1. ที่ (3,−1)(3, -1): ตัวส่วน 1+9+2=121 + 9 + 2 = 12 · T=80/12=6.67T = 80/12 = 6.67 °C

  2. Tx=−80(2x)(1+x2+2y2)2=−480144=−103T_x = \dfrac{-80(2x)}{(1 + x^2 + 2y^2)^2} = \dfrac{-480}{144} = -\dfrac{10}{3} · Ty=−80(4y)(1+x2+2y2)2=320144=209T_y = \dfrac{-80(4y)}{(1 + x^2 + 2y^2)^2} = \dfrac{320}{144} = \dfrac{20}{9}

  3. ∇T=⟨−103, 209⟩∝⟨−3,2⟩\nabla T = \left\langle -\tfrac{10}{3},\ \tfrac{20}{9}\right\rangle \propto \langle -3, 2\rangle ชี้ทางที่ร้อนขึ้นเร็วสุด (ไปทางจุดกำเนิดที่ร้อนสุด)

  4. แมลงต้องการเย็นลงเร็วสุด จึงเดินสวนทาง −∇T-\nabla T คือทิศ ⟨3,−2⟩/13\langle 3, -2\rangle/\sqrt{13} (ห่างออกจากจุดกำเนิด)

  5. อัตราลดสูงสุด =∣∇T∣=1009+40081=130081=13009≈4.006= |\nabla T| = \sqrt{\tfrac{100}{9} + \tfrac{400}{81}} = \sqrt{\tfrac{1300}{81}} = \tfrac{\sqrt{1300}}{9} \approx 4.006 °C/m

เดินทิศ −∇T∝⟨3,−2⟩-\nabla T \propto \langle 3, -2\rangle · อุณหภูมิลดเร็วสุด 4.006 °C ต่อเมตร

เกรเดียนต์ตั้งฉากกับเส้นชั้น และผิวระดับ กลาง

ตามเส้นชั้น f(x,y)=cf(x, y) = c ค่าของ ff คงที่ ดังนั้นถ้าเดินเล็กน้อยตามทิศสัมผัสเส้นชั้น T\mathbf T จะได้ DTf=∇f⋅T=0D_{\mathbf T}f = \nabla f\cdot\mathbf T = 0 ผลดอตเป็นศูนย์แปลว่า ∇f⊥T\nabla f \perp \mathbf T ผลเดียวกันใช้กับผิวระดับ: เวกเตอร์ปกติของผิว F(x,y,z)=cF(x, y, z) = c คือ ∇F\nabla F ซึ่งให้วิธีเขียนระนาบสัมผัสและเส้นปกติทันที

G5 Gradient ⟂ level curve gradient ตั้งฉากเส้นชั้น

r(t)∈{f=c} ⇒ ddtf(r(t))=∇f⋅r′(t)=0\mathbf r(t) \in \{f = c\} \ \Rightarrow\ \frac{d}{dt}f(\mathbf r(t)) = \nabla f\cdot\mathbf r'(t) = 0

เส้นสัมผัสของเส้นชั้นที่ (a,b)(a,b) มีสมการ fx(x−a)+fy(y−b)=0f_x(x - a) + f_y(y - b) = 0

G6 Tangent plane and normal line of F = c ระนาบสัมผัสและเส้นปกติของผิวระดับ

Fx(P)(x−x0)+Fy(P)(y−y0)+Fz(P)(z−z0)=0,r(t)=r0+t ∇F(P)F_x(P)(x - x_0) + F_y(P)(y - y_0) + F_z(P)(z - z_0) = 0,\qquad \mathbf r(t) = \mathbf r_0 + t\,\nabla F(P)

ถ้าผิวให้ในรูป z=f(x,y)z = f(x, y) ให้ตั้ง F=f(x,y)−zF = f(x,y) - z จะได้ ∇F=⟨fx,fy,−1⟩\nabla F = \langle f_x, f_y, -1\rangle ตรงกับระนาบสัมผัสในบทอนุพันธ์ย่อย

ตัวอย่าง G-4 · ระนาบสัมผัสของทรงรี

หาระนาบสัมผัสและเส้นปกติของ x24+y2+z24=3\dfrac{x^2}{4} + y^2 + \dfrac{z^2}{4} = 3 ที่ (−2,1,2)(-2, 1, 2)

  1. ตั้ง F=x24+y2+z24−3F = \dfrac{x^2}{4} + y^2 + \dfrac{z^2}{4} - 3 ตรวจจุด: 1+1+1−3=01 + 1 + 1 - 3 = 0 ✓

  2. ∇F=⟨x2, 2y, z2⟩\nabla F = \left\langle \dfrac{x}{2},\ 2y,\ \dfrac{z}{2}\right\rangle ที่ (−2,1,2)(-2, 1, 2): ⟨−1, 2, 1⟩\langle -1,\ 2,\ 1\rangle

  3. ระนาบสัมผัส: −1(x+2)+2(y−1)+1(z−2)=0-1(x + 2) + 2(y - 1) + 1(z - 2) = 0 → −x+2y+z=6-x + 2y + z = 6

  4. เส้นปกติ: x=−2−t, y=1+2t, z=2+tx = -2 - t,\ y = 1 + 2t,\ z = 2 + t

  5. ตรวจ: แทนจุด (−2,1,2)(-2,1,2): 2+2+2=62 + 2 + 2 = 6 ✓

ระนาบสัมผัส −x+2y+z=6-x + 2y + z = 6 · เส้นปกติ ⟨−2,1,2⟩+t⟨−1,2,1⟩\langle -2, 1, 2\rangle + t\langle -1, 2, 1\rangle

ในงานวิศวกรรม: ผิวตัวนำไฟฟ้าเป็นผิวศักย์เท่ากัน (VV คงที่) สนาม E=−∇V\mathbf E = -\nabla V จึงตั้งฉากกับผิวตัวนำเสมอ (เงื่อนไขขอบเขตที่ใช้ในการออกแบบอิเล็กโทรด) น้ำบนผิวดินไหลตามทิศ −∇h-\nabla h ซึ่งตั้งฉากกับเส้นชั้นความสูง จึงวางแนวร่องระบายน้ำตั้งฉากกับเส้นชั้น และความร้อนไหลตั้งฉากกับ isotherm

กฎของเกรเดียนต์และสูตรที่ใช้บ่อย กลาง

G7 Gradient rules กฎของเกรเดียนต์

∇(f±g)=∇f±∇g,∇(fg)=f∇g+g∇f,∇ h(f)=h′(f) ∇f\nabla(f \pm g) = \nabla f \pm \nabla g,\quad \nabla(fg) = f\nabla g + g\nabla f,\quad \nabla\,h(f) = h'(f)\,\nabla f

เป็นกฎของตัวแปรเดียวทุกข้อ ใส่ ∇\nabla แทน d/dxd/dx

G8 Gradient of radial functions เกรเดียนต์ของฟังก์ชันรัศมี

r=x2+y2+z2:∇r=rr,∇ ⁣(1r)=−rr3,∇rn=n rn−2rr = \sqrt{x^2 + y^2 + z^2}:\quad \nabla r = \frac{\mathbf r}{r},\qquad \nabla\!\left(\frac1r\right) = -\frac{\mathbf r}{r^3},\qquad \nabla r^n = n\,r^{n-2}\mathbf r

สูตรสามข้อนี้ใช้บ่อยมากในไฟฟ้า (ศักย์จากประจุจุด) และแรงโน้มถ่วง · ทิศ r/r\mathbf r/r คือเวกเตอร์หนึ่งหน่วยตามรัศมี

ตัวอย่าง G-5 · ได้กฎของคูลอมบ์จากศักย์ (ไฟฟ้า)

ศักย์ของประจุจุด qq คือ V=kqrV = \dfrac{kq}{r} จงหา E=−∇V\mathbf E = -\nabla V

  1. V=kq⋅r−1V = kq\cdot r^{-1} จากสูตร G8: ∇(1r)=−rr3\nabla\left(\dfrac1r\right) = -\dfrac{\mathbf r}{r^3}

  2. E=−∇V=−kq(−rr3)=kq rr3=kqr2 r^\mathbf E = -\nabla V = -kq\left(-\dfrac{\mathbf r}{r^3}\right) = \dfrac{kq\,\mathbf r}{r^3} = \dfrac{kq}{r^2}\,\hat{\mathbf r}

  3. นี่คือกฎของคูลอมบ์ — ขนาด kq/r2kq/r^2 พุ่งออกตามรัศมี และเมื่อ q<0q < 0 พุ่งเข้า

  4. สรุป: คำนวณศักย์ (สเกลาร์ ง่ายกว่า) แล้วหา gradient ได้สนามเวกเตอร์ทั้ง 3 องค์ประกอบในครั้งเดียว

E=kqr2r^\mathbf E = \dfrac{kq}{r^2}\hat{\mathbf r} · ใช้ได้กับผลรวมของหลายประจุโดยรวม VV ก่อนแล้วหา gradient (ดูแล็บประจุจุด)

Gradient Descent: ลงเขาทีละก้าว กลาง

ถ้าต้องการจุดต่ำสุดของ ff แต่แก้ ∇f=0\nabla f = \mathbf 0 ตรง ๆ ไม่ได้ (ฟังก์ชันซับซ้อน มีพารามิเตอร์นับพัน) ให้เริ่มจากจุดหนึ่งแล้วเดินสวนทางเกรเดียนต์ซ้ำ ๆ ทีละก้าวเล็ก ๆ นี่คือ gradient descent ซึ่งเป็นแกนของการฝึกโครงข่ายประสาทเทียม การจูนพารามิเตอร์ตัวควบคุม และการแก้ปัญหากำลังสองน้อยสุดขนาดใหญ่ ส่วนการไต่ขึ้น (gradient ascent) ใช้หาค่ามากสุด เช่น วิธี perturb & observe ที่ตามจุดกำลังสูงสุดของแผงโซลาร์เซลล์ก็คือการไต่เขา P(V)P(V) ในมิติเดียว

G9 Gradient descent วิธีลงเขาตามเกรเดียนต์

xk+1=xk−α ∇f(xk),ฟังก์ชันกำลังสอง f=12x⊤Ax: ลู่เข้า  ⟺  0<α<2λmax⁡(A)\mathbf x_{k+1} = \mathbf x_k - \alpha\,\nabla f(\mathbf x_k),\qquad \text{ฟังก์ชันกำลังสอง } f = \tfrac12\mathbf x^{\top}\mathbf A\mathbf x:\ \text{ลู่เข้า} \iff 0 < \alpha < \frac{2}{\lambda_{\max}(\mathbf A)}

α\alpha = ขนาดก้าว (learning rate) · เล็กเกิน = ช้า ใหญ่เกิน = แกว่งแล้วแตกออก · เส้นชั้นเป็นวงรียาว (λmax⁡/λmin⁡\lambda_{\max}/\lambda_{\min} มาก) = ลู่เข้าช้าเป็นรูปซิกแซก

ตัวอย่าง G-6 · ทำสองก้าวด้วยมือ

f(x,y)=x2+3y2f(x, y) = x^2 + 3y^2 เริ่มที่ (2,1)(2, 1) ใช้ α=0.1\alpha = 0.1 ทำ gradient descent สองก้าว

  1. ∇f=⟨2x,6y⟩\nabla f = \langle 2x, 6y\rangle · เริ่ม f(2,1)=4+3=7f(2, 1) = 4 + 3 = 7

  2. ก้าวที่ 1: ∇f(2,1)=⟨4,6⟩\nabla f(2,1) = \langle 4, 6\rangle · (x,y)=(2,1)−0.1⟨4,6⟩=(1.6, 0.4)(x, y) = (2, 1) - 0.1\langle 4, 6\rangle = (1.6,\ 0.4) · f=2.56+0.48=3.04f = 2.56 + 0.48 = 3.04

  3. ก้าวที่ 2: ∇f(1.6,0.4)=⟨3.2,2.4⟩\nabla f(1.6, 0.4) = \langle 3.2, 2.4\rangle · (x,y)=(1.28, 0.16)(x, y) = (1.28,\ 0.16) · f=1.638+0.077=1.715f = 1.638 + 0.077 = 1.715

  4. ค่า ff ลดลงทุกก้าว (7 → 3.04 → 1.715) และเข้าใกล้จุดต่ำสุด (0,0)(0, 0) ซึ่ง f=0f = 0

(2,1)→(1.6,0.4)→(1.28,0.16)(2,1) \to (1.6, 0.4) \to (1.28, 0.16) · f:7→3.04→1.715f: 7 \to 3.04 \to 1.715

ตัวอย่าง G-7 · เลือกขนาดก้าวไม่ได้ถ้าไม่รู้ความโค้ง

f=x2+10y2f = x^2 + 10y^2 ต้องใช้ α\alpha น้อยกว่าเท่าไรจึงลู่เข้า

  1. ∇f=⟨2x,20y⟩\nabla f = \langle 2x, 20y\rangle แต่ละก้าวคูณแต่ละพิกัดด้วย (1−2α)(1 - 2\alpha) และ (1−20α)(1 - 20\alpha)

  2. ลู่เข้าเมื่อทั้งสองตัวคูณมีขนาดน้อยกว่า 1: ∣1−2α∣<1|1 - 2\alpha| < 1 ได้ α<1\alpha < 1 และ ∣1−20α∣<1|1 - 20\alpha| < 1 ได้ α<0.1\alpha < 0.1

  3. ข้อจำกัดคือ α<0.1=2/λmax⁡\alpha < 0.1 = 2/\lambda_{\max} เมื่อ λmax⁡=20\lambda_{\max} = 20 (ค่าเฉพาะที่ใหญ่สุดของ Hessian)

  4. ทดสอบ 30 ก้าวจาก (2,1)(2, 1): α=0.09\alpha = 0.09 → (0.005,0.001)(0.005, 0.001) ลู่เข้า · α=0.1\alpha = 0.1 → yy สลับ ±1\pm 1 ตลอด (ขอบเขต) · α=0.11\alpha = 0.11 → y≈237y \approx 237 แตกออก

  5. ปัญหาของวงรียาว: xx ต้องการก้าวใหญ่ (ความโค้งน้อย) แต่ yy ต้องการก้าวเล็ก (ความโค้งมาก) ทำให้ช้า จึงมีวิธีขั้นสูง เช่น momentum, Newton, conjugate gradient

ลู่เข้าเมื่อ 0<α<0.10 < \alpha < 0.1 · α=0.11\alpha = 0.11 แตกออก

นำไปใช้ในงานวิศวกรรม พื้นฐาน

สาขาเกรเดียนต์ของใช้ทำอะไร
ไฟฟ้าศักย์ไฟฟ้า VVE=−∇V\mathbf E = -\nabla V · สนามตั้งฉากกับผิวตัวนำ (บทไฟฟ้า)
ไฟฟ้ากำลัง P(Vpv)P(V_{pv}) ของแผงโซลาร์MPPT แบบ perturb & observe คือการไต่เขา (MPPT)
เครื่องกลอุณหภูมิ TTq=−k∇T\mathbf q = -k\nabla T ฟลักซ์ความร้อนตั้งฉาก isotherm (บทเครื่องกล)
เครื่องกลความดัน ppแรงสุทธิต่อหน่วยปริมาตรของของไหล −∇p-\nabla p
โยธาความสูงภูมิประเทศ hhความชัน ∣∇h∣|\nabla h| และทิศน้ำไหล −∇h-\nabla h (บทโยธา)
โยธา / ธรณีระดับน้ำใต้ดิน hhกฎของดาร์ซี v=−K∇h\mathbf v = -K\nabla h ความเร็วซึมตั้งฉากเส้นระดับ
ทุกสาขาฟังก์ชันค่าความผิดพลาด J(θ)J(\theta)gradient descent ปรับพารามิเตอร์ (บทค่าสุดขีด)

ข้อผิดพลาดที่พบบ่อย พื้นฐาน

  1. ลืมทำเวกเตอร์ทิศให้เป็นหนึ่งหน่วย ก่อนดอต · DufD_{\mathbf u}f ต้องใช้ u\mathbf u ที่ ∣u∣=1|\mathbf u| = 1 เสมอ
  2. คิดว่า gradient เป็นสเกลาร์ · ∇f\nabla f เป็นเวกเตอร์ (ชี้ทิศ) ส่วน DufD_{\mathbf u}f เป็นสเกลาร์
  3. คิดว่า ∇f\nabla f อยู่บนผิว 3 มิติ · ∇f\nabla f ของ f(x,y)f(x,y) เป็นเวกเตอร์ 2 มิติในระนาบ xyxy (ทิศบนแผนที่) ไม่ใช่เวกเตอร์ชี้ขึ้นบนผิว
  4. ใช้ gradient descent โดยไม่ตรวจขนาดก้าว · ถ้า ff ไม่ลดลงเลยหลังหลายก้าวให้ลด α\alpha ลงครึ่งหนึ่ง
  5. สับสนทิศลงเขา · ลงเขาชันสุดคือ −∇f-\nabla f (น้ำไหล) ไม่ใช่ +∇f+\nabla f

ไปต่อที่ค่าสูงสุด-ต่ำสุดและตัวคูณลากรองจ์ ที่ใช้เงื่อนไข ∇f=0\nabla f = \mathbf 0 และ ∇f∥∇g\nabla f \parallel \nabla g หาจุดเหมาะสมที่สุด

คำถามที่พบบ่อย

เกรเดียนต์ (gradient) คืออะไร ชี้ไปทางไหน?

เกรเดียนต์ของ f(x,y)f(x,y) คือเวกเตอร์ ∇f=⟨fx,fy⟩\nabla f = \langle f_x, f_y\rangle ที่รวมอนุพันธ์ย่อยทั้งหมดไว้ด้วยกัน มันชี้ไปทางที่ ff เพิ่มขึ้นเร็วที่สุด และขนาด ∣∇f∣|\nabla f| คืออัตราเพิ่มสูงสุดนั้น ถ้า ff คือความสูงภูเขา ∇f\nabla f ชี้ขึ้นเขาทางชันที่สุด และ −∇f-\nabla f คือทางที่น้ำไหลลง ทิศของ ∇f\nabla f ตั้งฉากกับเส้นชั้นความสูงเสมอ

อนุพันธ์ตามทิศ (directional derivative) หาอย่างไร?

ใช้ Duf=∇f⋅uD_{\mathbf u} f = \nabla f \cdot \mathbf u เมื่อ u\mathbf u เป็นเวกเตอร์หนึ่งหน่วย ถ้าโจทย์ให้ทิศเป็นเวกเตอร์ v\mathbf v ใด ๆ ต้องทำเป็นหนึ่งหน่วยก่อน u=v/∣v∣\mathbf u = \mathbf v/|\mathbf v| ตัวอย่าง f=x2y3−4yf = x^2y^3 - 4y ที่ (2,−1)(2,-1) ทิศ ⟨2,5⟩\langle 2, 5\rangle: ∇f=⟨−4,8⟩\nabla f = \langle -4, 8\rangle และ Duf=(−8+40)/29=5.94D_{\mathbf u} f = (-8 + 40)/\sqrt{29} = 5.94 ข้อผิดพลาดที่พบบ่อยที่สุดคือลืมทำเวกเตอร์ให้เป็นหนึ่งหน่วย

ทำไม gradient ตั้งฉากกับเส้นชั้นความสูง?

ตามเส้นชั้น ff คงที่ จึงอัตราเปลี่ยนในทิศสัมผัสเส้นชั้นเป็นศูนย์ นั่นคือ Duf=∇f⋅u=0D_{\mathbf u} f = \nabla f \cdot \mathbf u = 0 เมื่อ u\mathbf u สัมผัสเส้นชั้น ดอตเป็นศูนย์แปลว่าตั้งฉากกัน เหตุผลเดียวกันใช้กับผิวระดับ F(x,y,z)=cF(x,y,z) = c: ∇F\nabla F คือเวกเตอร์ปกติของผิว ซึ่งทำให้เขียนระนาบสัมผัสได้ทันที และในไฟฟ้าอธิบายว่าสนาม E=−∇V\mathbf E = -\nabla V ตั้งฉากกับผิวตัวนำ

Gradient descent คืออะไร ใช้ทำอะไร?

คือวิธีหาจุดต่ำสุดของ ff โดยเดินสวนทาง gradient ซ้ำ ๆ: xk+1=xk−α∇f(xk)\mathbf x_{k+1} = \mathbf x_k - \alpha\nabla f(\mathbf x_k) เมื่อ α\alpha คืออัตราการเรียนรู้ (learning rate) ใช้ฝึกโครงข่ายประสาทเทียม ปรับพารามิเตอร์ตัวควบคุม และแก้ปัญหากำลังสองน้อยสุด ถ้า α\alpha ใหญ่เกินไปจะแกว่งแล้วแตกออก (เช่นสำหรับ x2+10y2x^2 + 10y^2 ต้อง α<0.1\alpha < 0.1) ถ้าเล็กเกินไปจะช้ามาก

เกรเดียนต์กับอนุพันธ์ย่อยต่างกันอย่างไร?

อนุพันธ์ย่อยแต่ละตัวบอกอัตราเปลี่ยนตามแกนเดียว (fxf_x ตามแกน xx) ส่วนเกรเดียนต์รวมทุกอนุพันธ์ย่อยเป็นเวกเตอร์เดียว จึงบอกอัตราเปลี่ยนในทุกทิศผ่านการดอตกับเวกเตอร์ทิศ และบอกทิศที่ชันที่สุดได้ด้วย ถ้า ff หาอนุพันธ์ได้ ความรู้ fx,fyf_x, f_y สองตัวก็เพียงพอจะทำนายความชันในทุกทิศ

อาจารย์มด · ธีรวุฒิ แสวงบุญ
อาจารย์สาขาวิชาวิศวกรรมไฟฟ้า มหาวิทยาลัยราชภัฏธนบุรี สมุทรปราการ · ดูโปรไฟล์