λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
IT/AI, λ”₯λŸ¬λ‹

μ˜΅ν‹°λ§ˆμ΄μ € κ°œλ…λΆ€ν„° SGD, AdamκΉŒμ§€ 비ꡐ 뢄석

by πŸ”₯κΉ‘ λ‹€ κ³ ! 2025. 4. 10.

μ˜΅ν‹°λ§ˆμ΄μ €

 

λ”₯λŸ¬λ‹ λͺ¨λΈμ„ ν•™μŠ΅μ‹œν‚¬ λ•Œ κ°€μž₯ 기본이 λ˜λŠ” κ°œλ… 쀑 ν•˜λ‚˜κ°€ κ²½μ‚¬ν•˜κ°•λ²•(Gradient Descent)μž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ κ²½μ‚¬ν•˜κ°•λ²•λ§ŒμœΌλ‘œλŠ” λͺ¨λ“  ν•™μŠ΅ 문제λ₯Ό ν•΄κ²°ν•˜κΈ°μ—” ν•œκ³„κ°€ λΆ„λͺ…ν•©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ ν•œκ³„λ₯Ό λ³΄μ™„ν•˜κ³ , ν•™μŠ΅ 속도와 μ•ˆμ •μ„±μ„ 높이기 μœ„ν•΄ λ“±μž₯ν•œ 것이 λ°”λ‘œ μ˜΅ν‹°λ§ˆμ΄μ €(Optimizer)μž…λ‹ˆλ‹€. 이번 κΈ€μ—μ„œλŠ” κ²½μ‚¬ν•˜κ°•λ²•μ˜ 단점뢀터 μ‹œμž‘ν•΄ μ˜΅ν‹°λ§ˆμ΄μ €μ˜ κ°œλ…, λŒ€ν‘œ μ•Œκ³ λ¦¬μ¦˜κΉŒμ§€ μ‰½κ²Œ μ„€λͺ…ν•΄λ“œλ¦½λ‹ˆλ‹€.


1. κ²½μ‚¬ν•˜κ°•λ²•μ΄λž€?

κ²½μ‚¬ν•˜κ°•λ²•(Gradient Descent)은 λ¨Έμ‹ λŸ¬λ‹κ³Ό λ”₯λŸ¬λ‹μ—μ„œ κ°€μž₯ 기본적인 μ΅œμ ν™” μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€. λΉ„μš© ν•¨μˆ˜μ˜ 값을 μ΅œμ†Œν™”ν•˜κΈ° μœ„ν•΄ 기울기(λ―ΈλΆ„κ°’)λ₯Ό κ³„μ‚°ν•˜κ³ , 이λ₯Ό 따라 νŒŒλΌλ―Έν„°λ₯Ό μ‘°κΈˆμ”© μ‘°μ •ν•©λ‹ˆλ‹€.
즉, 산을 λ‚΄λ €κ°€λŠ” κ²ƒμ²˜λŸΌ 손싀 ν•¨μˆ˜μ˜ μ΅œμ €μ (μ΅œμ†Ÿκ°’)을 μ°Ύμ•„κ°€λŠ” λ°©μ‹μž…λ‹ˆλ‹€.

2. κ²½μ‚¬ν•˜κ°•λ²•μ˜ ν•œκ³„

  • ν•™μŠ΅λ₯  쑰정이 μ–΄λ ΅λ‹€: λ„ˆλ¬΄ μž‘μœΌλ©΄ 느리고, λ„ˆλ¬΄ 크면 λ°œμ‚°ν•¨
  • κ΅­μ†Œ μ΅œμ†Ÿκ°’(local minima)에 빠질 수 있음: 전체 μ΅œμ κ°’μ΄ μ•„λ‹Œ μ€‘κ°„μ—μ„œ 멈좀
  • κ³„κ³‘ν˜• κ΅¬μ‘°μ—μ„œ 느림: 경사가 μ–‘μͺ½μœΌλ‘œ κΈ‰λ³€ν•˜λŠ” κ³³μ—μ„œ 진동함
  • λͺ¨λ“  νŒŒλΌλ―Έν„°μ— λ™μΌν•œ ν•™μŠ΅λ₯  적용: λΉ„νš¨μœ¨μ μΈ μ—…λ°μ΄νŠΈ λ°œμƒ

μ΄λŸ¬ν•œ ν•œκ³„λ“€μ€ μ‹€μ œ λ”₯λŸ¬λ‹ ν•™μŠ΅ μ‹œ μ„±λŠ₯ μ €ν•˜λ‚˜ ν•™μŠ΅ μ‹€νŒ¨λ‘œ μ΄μ–΄μ§ˆ 수 있기 λ•Œλ¬Έμ—, 이λ₯Ό λ³΄μ™„ν•˜κΈ° μœ„ν•œ λ‹€μ–‘ν•œ κ°œμ„ λœ μ˜΅ν‹°λ§ˆμ΄μ €κ°€ κ°œλ°œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

3. μ˜΅ν‹°λ§ˆμ΄μ €λž€ 무엇인가?

μ˜΅ν‹°λ§ˆμ΄μ €(Optimizer)λŠ” κ²½μ‚¬ν•˜κ°•λ²•μ˜ κΈ°λ³Έ 원리λ₯Ό κ°œμ„ ν•˜μ—¬ 더 λΉ λ₯΄κ³  μ •ν™•ν•˜κ²Œ 손싀 ν•¨μˆ˜μ˜ μ΅œμ†Œκ°’μ„ 찾을 수 μžˆλ„λ‘ μ„€κ³„λœ μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€.
각 νŒŒλΌλ―Έν„°μ˜ λ³€ν™”λŸ‰μ„ μžλ™μœΌλ‘œ μ‘°μ •ν•˜κ±°λ‚˜, μ΄μ „μ˜ κ·Έλž˜λ””μ–ΈνŠΈλ₯Ό λ°˜μ˜ν•΄ λ°©ν–₯을 λ³΄μ •ν•¨μœΌλ‘œμ¨ ν•™μŠ΅ μ•ˆμ •μ„±, 수렴 속도, 정확도 λͺ¨λ‘λ₯Ό ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€.

4. λŒ€ν‘œμ μΈ μ˜΅ν‹°λ§ˆμ΄μ € μ’…λ₯˜

  • SGD (Stochastic Gradient Descent): κΈ°λ³Έ κ²½μ‚¬ν•˜κ°•λ²•μœΌλ‘œ, λ―Έλ‹ˆλ°°μΉ˜ λ‹¨μœ„ μ—…λ°μ΄νŠΈ
  • Momentum: 이전 κ·Έλž˜λ””μ–ΈνŠΈ λ°©ν–₯을 λ°˜μ˜ν•΄ 더 λΉ λ₯Έ 수렴 μœ λ„
  • RMSProp: νŒŒλΌλ―Έν„°λ§ˆλ‹€ λ‹€λ₯Έ ν•™μŠ΅λ₯  적용, 진동 μ–΅μ œ
  • Adam: Momentum + RMSProp μ‘°ν•©, κ°€μž₯ 널리 μ‚¬μš©λ˜λŠ” μ˜΅ν‹°λ§ˆμ΄μ €

5. μ˜΅ν‹°λ§ˆμ΄μ € 선택 μ‹œ κ³ λ €ν•  점

- 데이터 크기, λ³΅μž‘λ„, λ…Έμ΄μ¦ˆμ— 따라 λ‹€λ₯Έ μ˜΅ν‹°λ§ˆμ΄μ €κ°€ 적합할 수 μžˆμŠ΅λ‹ˆλ‹€. - μ΄ˆλ³΄μžλŠ” λŒ€λΆ€λΆ„μ˜ 경우 Adam을 μ‚¬μš©ν•˜λŠ” 것이 μ•ˆμ „ν•œ μ„ νƒμž…λ‹ˆλ‹€. - κ·ΈλŸ¬λ‚˜ μ •λ°€ν•œ 쑰정이 ν•„μš”ν•œ κ²½μš°μ—” SGD + Momentum을 μ‚¬μš©ν•΄λ³΄λŠ” 것도 μ’‹μŠ΅λ‹ˆλ‹€.

6. 마무리 μš”μ•½

κ²½μ‚¬ν•˜κ°•λ²•μ€ λ¨Έμ‹ λŸ¬λ‹ μ΅œμ ν™”μ˜ κΈ°λ³Έμ΄μ§€λ§Œ, ν˜„μ‹€μ˜ λ³΅μž‘ν•œ 문제λ₯Ό ν•΄κ²°ν•˜κΈ°μ—” ν•œκ³„κ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ ν•œκ³„λ₯Ό κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄ λ“±μž₯ν•œ μ˜΅ν‹°λ§ˆμ΄μ €λŠ” ν•™μŠ΅ 속도λ₯Ό 높이고, 더 μ•ˆμ •μ μΈ μˆ˜λ ΄μ„ κ°€λŠ₯ν•˜κ²Œ ν•΄μ£ΌλŠ” μŠ€λ§ˆνŠΈν•œ λ„κ΅¬μž…λ‹ˆλ‹€.

Adam, RMSProp, Momentum λ“± λ‹€μ–‘ν•œ μ•Œκ³ λ¦¬μ¦˜μ„ μ΄ν•΄ν•˜κ³  ν”„λ‘œμ νŠΈμ— λ§žλŠ” 졜적의 μ˜΅ν‹°λ§ˆμ΄μ €λ₯Ό μ„ νƒν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.