λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
  • ONI와 Jean-y의 μŠ€λ§ˆνŠΈν•œ 곡간 πŸ”Ž
πŸ€– AI일잘러 μ˜€λ‹ˆμ˜ AI

Gradient Descent(κ²½μ‚¬ν•˜κ°•λ²•)μ΄λž€?

by Smart Platform 2023. 3. 24.
728x90
λ°˜μ‘ν˜•

μ•ˆλ…•ν•˜μ„Έμš” AI일잘러 μ˜€λ‹ˆμž…λ‹ˆλ‹€ πŸ€–

μ˜€λŠ˜μ€ Gradient Descent에 λŒ€ν•œ 글을 μž‘μ„±ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€ πŸ–‹

그럼 Gradient Descent에 λŒ€ν•΄ μ•Œμ•„λ³΄λŠ” μ‹œκ°„μ„ κ°€μ Έλ³΄κ² μŠ΅λ‹ˆλ‹€ πŸ‘ŒπŸ»

 

Gradient descent is like a ball rolling down a hill.
The steeper the hill, the faster the ball will roll. Likewise,
the steeper the gradient, the faster the convergence.
- Andrew Ng

 

βœ” λ“€μ–΄κ°€λ©°
  λ¨Έμ‹  λŸ¬λ‹μ— 관심이 μžˆλ‹€λ©΄ "Gradient descent"μ΄λΌλŠ” μš©μ–΄λ₯Ό 듀어보셨을 κ²ƒμž…λ‹ˆλ‹€. 경사 ν•˜κ°•μ€ λ¨Έμ‹  λŸ¬λ‹κ³Ό λ”₯ λŸ¬λ‹μ—μ„œ λΉ„μš© ν•¨μˆ˜ λ˜λŠ” 손싀 ν•¨μˆ˜λ₯Ό μ΅œμ†Œν™”ν•˜κΈ° μœ„ν•΄ 널리 μ‚¬μš©λ˜λŠ” μ΅œμ ν™” μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€. 이번 κΈ€μ—μ„œλŠ” 경사 ν•˜κ°•κ³Ό κ·Έ μž‘λ™ 방식, 그리고 κ·Έ λ³€ν˜•λœ μ’…λ₯˜μ— λŒ€ν•΄ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

βœ” Gradient Descentλž€ λ¬΄μ—‡μΈκ°€μš”?
  경사 ν•˜κ°•μ€ ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜ 값을 반볡적으둜 μ‘°μ •ν•˜μ—¬ 주어진 ν•¨μˆ˜λ₯Ό μ΅œμ†Œν™”ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•˜λŠ” μ΅œμ ν™” μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€. 이 μ•Œκ³ λ¦¬μ¦˜μ˜ λͺ©μ μ€ ν•¨μˆ˜μ˜ μ΅œμ†Œκ°’μ„ μ œκ³΅ν•˜λŠ” λ§€κ°œλ³€μˆ˜ 값을 μ°ΎλŠ” κ²ƒμž…λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” λ¨Έμ‹  λŸ¬λ‹μ˜ λ§₯λ½μ—μ„œ λΉ„μš© ν•¨μˆ˜ λ˜λŠ” 손싀 ν•¨μˆ˜μΌ 수 μžˆμŠ΅λ‹ˆλ‹€.

βœ” The Gradient
  λ―Έμ λΆ„ν•™μ—μ„œ κΈ°μšΈκΈ°λŠ” ν•¨μˆ˜μ˜ κ°€μž₯ κ°€νŒŒλ₯Έ 증가 λ°©ν–₯을 κ°€λ¦¬ν‚€λŠ” λ²‘ν„°μž…λ‹ˆλ‹€. ν•¨μˆ˜ f(x,y)의 κΈ°μšΈκΈ°λŠ” μ„±λΆ„(∂f/∂x, ∂f/∂y)을 가진 λ²‘ν„°μž…λ‹ˆλ‹€. λ¨Έμ‹ λŸ¬λ‹μ—μ„œλŠ” 기울기λ₯Ό μ‚¬μš©ν•˜μ—¬ λΉ„μš© ν•¨μˆ˜κ°€ κ°€μž₯ λΉ λ₯΄κ²Œ κ°μ†Œν•˜λŠ” λ°©ν–₯을 μ°ΎμŠ΅λ‹ˆλ‹€.

βœ” Gradient Descent Algorithm
  경사 ν•˜κ°• μ•Œκ³ λ¦¬μ¦˜μ€ ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜ 값을 음의 경사 λ°©ν–₯으둜 반볡적으둜 μ‘°μ •ν•˜λŠ” λ°©μ‹μœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€. 이 μ•Œκ³ λ¦¬μ¦˜μ€ λ§€κ°œλ³€μˆ˜ 값에 λŒ€ν•œ 초기 μΆ”μΈ‘μœΌλ‘œ μ‹œμž‘ν•œ λ‹€μŒ ν•΄λ‹Ή μ§€μ μ—μ„œ λΉ„μš© ν•¨μˆ˜μ˜ 기울기λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€. 그런 λ‹€μŒ λ§€κ°œλ³€μˆ˜μ˜ ν˜„μž¬ κ°’μ—μ„œ 기울기의 일뢀λ₯Ό λΉΌμ„œ λ§€κ°œλ³€μˆ˜ 값을 μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€. 이 λΉ„μœ¨μ„ ν•™μŠ΅λ₯ μ΄λΌκ³  ν•˜λ©°, ν•™μŠ΅λ₯ μ€ 음의 기울기 λ°©ν–₯으둜 μŠ€ν… 크기λ₯Ό κ²°μ •ν•©λ‹ˆλ‹€. μ•Œκ³ λ¦¬μ¦˜μ€ λΉ„μš© ν•¨μˆ˜κ°€ μ΅œμ†Œλ‘œ μˆ˜λ ΄ν•  λ•ŒκΉŒμ§€ 이 과정을 λ°˜λ³΅ν•©λ‹ˆλ‹€.

βœ” Learning Rate
  ν•™μŠ΅λ₯ μ€ 경사 ν•˜κ°• μ•Œκ³ λ¦¬μ¦˜μ—μ„œ μ€‘μš”ν•œ ν•˜μ΄νΌνŒŒλΌλ―Έν„°μž…λ‹ˆλ‹€. ν•™μŠ΅ 속도가 μž‘μœΌλ©΄ 수렴이 λŠλ €μ§€κ³ , ν•™μŠ΅ 속도가 크면 μ΅œμ†Œκ°’μ„ μ΄ˆκ³Όν•˜μ—¬ μ΅œμ†Œκ°’μ„ 놓칠 수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μ•Œκ³ λ¦¬μ¦˜μ΄ μ μ ˆν•œ 반볡 νšŸμˆ˜μ—μ„œ μ΅œμ†Œκ°’μ— μˆ˜λ ΄ν•  수 μžˆλ„λ‘ μ μ ˆν•œ ν•™μŠ΅ 속도λ₯Ό μ„ νƒν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.

βœ” κ·ΈλΌλ””μ–ΈνŠΈ ν•˜κ°•μ˜ λ³€ν˜•
  경사 ν•˜κ°• μ•Œκ³ λ¦¬μ¦˜μ—λŠ” 맀개 λ³€μˆ˜ 값을 μ—…λ°μ΄νŠΈν•˜λŠ” 방식이 λ‹€λ₯Έ μ—¬λŸ¬ 가지 λ³€ν˜•μ΄ μžˆμŠ΅λ‹ˆλ‹€.

1️⃣ Stochastic Gradient Descent(SGD)
  ν™•λ₯ μ  경사 ν•˜κ°•(SGD)은 경사 ν•˜κ°•μ˜ λ³€ν˜•μœΌλ‘œ, 에포크가 끝날 λ•ŒκΉŒμ§€ 기닀리지 μ•Šκ³  각 ν›ˆλ ¨ 예제λ₯Ό μ²˜λ¦¬ν•œ ν›„ νŒŒλΌλ―Έν„° 값을 μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€. SGDλŠ” 배치 경사 ν•˜κ°•λ³΄λ‹€ λΉ λ₯΄μ§€λ§Œ ν›ˆλ ¨ 예제 μˆœμ„œμ˜ λ¬΄μž‘μœ„μ„±μœΌλ‘œ 인해 λ…Έμ΄μ¦ˆκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

2️⃣ Mini-Batch Gradient Descent
 λ―Έλ‹ˆ 배치 경사 ν•˜κ°•μ€ 배치 경사 ν•˜κ°•κ³Ό ν™•λ₯ μ  경사 ν•˜κ°•μ˜ μ ˆμΆ©μ•ˆμž…λ‹ˆλ‹€. μ†ŒλŸ‰μ˜ ν›ˆλ ¨ 예제λ₯Ό μ²˜λ¦¬ν•œ ν›„ νŒŒλΌλ―Έν„° 값을 μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€. 배치의 ν¬κΈ°λŠ” 속도와 μ•ˆμ •μ„±μ˜ κ· ν˜•μ„ λ§žμΆ”κΈ° μœ„ν•΄ μ‘°μ •ν•  수 μžˆλŠ” ν•˜μ΄νΌνŒŒλΌλ―Έν„°μž…λ‹ˆλ‹€.

3️⃣ Momentum-based Gradient Descent
 λͺ¨λ©˜ν…€ 기반 경사 ν•˜κ°•μ€ μ—…λ°μ΄νŠΈ κ·œμΉ™μ— λͺ¨λ©˜ν…€ 항을 μΆ”κ°€ν•˜λŠ” λ³€ν˜•μž…λ‹ˆλ‹€. μš΄λ™λŸ‰ 항은 κ³Όκ±° 반볡의 기울기λ₯Ό λˆ„μ ν•˜κ³  κ·Έ 일뢀λ₯Ό ν˜„μž¬ κΈ°μšΈκΈ°μ— μΆ”κ°€ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ μ—…λ°μ΄νŠΈλ₯Ό λΆ€λ“œλŸ½κ²Œ ν•˜κ³  μˆ˜λ ΄μ„ κ°€μ†ν™”ν•˜λŠ” 데 도움이 λ©λ‹ˆλ‹€.

4️⃣ Adam Optimization
  μ•„λ‹΄ μ΅œμ ν™”λŠ” 각 νŒŒλΌλ―Έν„°μ— λŒ€ν•œ μ μ‘ν˜• ν•™μŠ΅λ₯ μ„ μ‚¬μš©ν•˜λŠ” Gradient Descent의 인기 μžˆλŠ” λ³€ν˜•μž…λ‹ˆλ‹€. λͺ¨λ©˜ν…€ 기반 경사 ν•˜κ°•κ³Ό RMSprop의 아이디어λ₯Ό κ²°ν•©ν•˜μ—¬ 각 νŒŒλΌλ―Έν„°μ— λŒ€ν•œ ν•™μŠ΅λ₯ μ„ κ³„μ‚°ν•©λ‹ˆλ‹€.

βœ” κ²°λ‘ 
  경사 ν•˜κ°•μ€ λ¨Έμ‹ λŸ¬λ‹κ³Ό λ”₯λŸ¬λ‹μ—μ„œ λΉ„μš© ν•¨μˆ˜ λ˜λŠ” 손싀 ν•¨μˆ˜λ₯Ό μ΅œμ†Œν™”ν•˜κΈ° μœ„ν•΄ 널리 μ‚¬μš©λ˜λŠ” μ΅œμ ν™” μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€. 이 μ•Œκ³ λ¦¬μ¦˜μ€ ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜ 값을 음의 기울기 λ°©ν–₯으둜 반볡적으둜 μ‘°μ •ν•˜λŠ” λ°©μ‹μœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€. ν•™μŠ΅ μ†λ„λŠ” μ‹ μ€‘ν•˜κ²Œ 선택해야 ν•˜λŠ” μ€‘μš”ν•œ ν•˜μ΄νΌνŒŒλΌλ―Έν„°μž…λ‹ˆλ‹€. 경사 ν•˜κ°•μ—λŠ” ν™•λ₯ μ  경사 ν•˜κ°•, λ―Έλ‹ˆ 배치 경사 ν•˜κ°•, μš΄λ™λŸ‰ 기반 경사 ν•˜κ°•, μ•„λ‹΄ μ΅œμ ν™” λ“± μ—¬λŸ¬ 가지 λ³€ν˜•μ΄ μžˆμŠ΅λ‹ˆλ‹€. 각 λ³€ν˜•μ—λŠ” μž₯단점이 μžˆμœΌλ―€λ‘œ λ‹Ήλ©΄ν•œ 문제의 μš”κ΅¬ 사항에 따라 선택해야 ν•©λ‹ˆλ‹€.

❓ FAQ
1️⃣ 경사 ν•˜κ°•μ˜ λͺ©μ μ€ λ¬΄μ—‡μΈκ°€μš”?
  경사 ν•˜κ°•μ€ 주어진 ν•¨μˆ˜μ˜ μ΅œμ†Œκ°’μ„ μ°ΎλŠ” 것을 λͺ©ν‘œλ‘œ ν•˜λŠ” μ΅œμ ν™” μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€. λ¨Έμ‹  λŸ¬λ‹μ˜ λ§₯λ½μ—μ„œ λΉ„μš© ν•¨μˆ˜ λ˜λŠ” 손싀 ν•¨μˆ˜λ₯Ό μ΅œμ†Œν™”ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.

2️⃣ Batch Gradient Descent and Stochastic Gradient Descent의 차이점은 λ¬΄μ—‡μΈκ°€μš”?
  일괄 경사 ν•˜κ°•μ€ 전체 ν›ˆλ ¨ 데이터 μ„ΈνŠΈλ₯Ό μ²˜λ¦¬ν•œ ν›„ λ§€κ°œλ³€μˆ˜ 값을 μ—…λ°μ΄νŠΈν•˜λŠ” 반면, ν™•λ₯ μ  경사 ν•˜κ°•μ€ 각 ν›ˆλ ¨ 예제λ₯Ό μ²˜λ¦¬ν•œ ν›„ λ§€κ°œλ³€μˆ˜ 값을 μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€.

3️⃣ 경사 ν•˜κ°•μ—μ„œ ν•™μŠ΅λ₯ μ΄λž€?
  ν•™μŠ΅λ₯ μ€ 음의 경사 λ°©ν–₯으둜의 μŠ€ν… 크기λ₯Ό κ²°μ •ν•˜λŠ” ν•˜μ΄νΌνŒŒλΌλ―Έν„°μž…λ‹ˆλ‹€. ν•™μŠ΅λ₯ μ΄ μž‘μœΌλ©΄ 수렴이 λŠλ €μ§€κ³  ν•™μŠ΅λ₯ μ΄ 크면 μ΅œμ†Œκ°’μ„ μ΄ˆκ³Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ“κΈ€