λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Deep Learning

[Deep Learning] 인곡 신경망

λ°˜μ‘ν˜•

🎈 인곡 신경망 (artificial neural network)

🎲 μ‚¬λžŒμ˜ λ‡Œ 속 λ‰΄λŸ°μ˜ μž‘μš©μ„ λ³Έλ–  νŒ¨ν„΄μ„ κ΅¬μ„±ν•œ μ»΄ν“¨νŒ… μ‹œμŠ€ν…œμ˜ 일쒅

λ‰΄λŸ°μ˜ ꡬ쑰

 

🎈 인곡 신경망 λ‰΄λŸ°

πŸ‘‰ 생물학적인 λ‰΄λŸ°μ„ μˆ˜ν•™μ μœΌλ‘œ λͺ¨λΈλ§ν•œ 것

πŸ‘‰ μ—¬λŸ¬ μž…λ ₯값을 λ°›μ•„μ„œ 일정 μˆ˜μ€€μ΄ λ„˜μ–΄μ„œλ©΄ ν™œμ„±ν™”λ˜μ–΄ 좜λ ₯값을 내보냄

인곡 신경망 λͺ¨λΈ

🎲 ν•˜λ‚˜μ˜  인곡 λ‰΄λŸ°(λ…Έλ“œ, node)  μ—μ„œ λ‹€μˆ˜μ˜ μž…λ ₯ μ‹ ν˜Έλ₯Ό λ°›μ•„μ„œ ν•˜λ‚˜μ˜ μ‹ ν˜Έλ₯Ό 좜λ ₯

🎲 λ‰΄λŸ°μ˜ λŒκΈ°κ°€ μ‹ ν˜Έλ₯Ό μ „λ‹¬ν•˜λŠ” 역할을 ν•˜λ“―μ΄ 인곡 λ‰΄λŸ°μ—μ„œλŠ”  κ°€μ€‘μΉ˜(weight)  κ°€ κ·Έ 역할을 함

      각 μž…λ ₯μ‹ ν˜Έμ—λŠ” κ³ μœ ν•œ κ°€μ€‘μΉ˜κ°€ λΆ€μ—¬λ˜λ©° κ°€μ€‘μΉ˜κ°€ 클수둝 ν•΄λ‹Ή μ‹ ν˜Έκ°€ μ€‘μš”ν•˜λ‹€κ³  ν•  수 있음

 

🎈 인곡 μ‹ κ²½λ§μ˜ μž‘λ™ 원리

μž…λ ₯μ‹ ν˜Έλ₯Ό λ°›λŠ” 인곡 μ‹ κ²½λ§μ˜ μž‘λ™ 원리
편ν–₯을 0이라고 ν•˜κ³ , λ‹€μˆ˜μ˜ μž…λ ₯μ‹ ν˜Έκ°€ μ£Όμ–΄μ§ˆ λ•Œμ˜ 인곡 신경망 μž‘λ™ 원리
ν™œμ„±ν™” ν•¨μˆ˜

πŸ‘‰ μž…λ ₯μ‹ ν˜Έλ₯Ό ν†΅ν•œ 좜λ ₯값은  hΘ ν•¨μˆ˜  둜 ν‘œν˜„λ˜λ©°,  ν™œμ„±ν™” ν•¨μˆ˜ (Activation Function)  라고 함

 

🎈 ν™œμ„±ν™” ν•¨μˆ˜ (Activation Function)

🎲 μ‹œκ·Έλͺ¨μ΄λ“œ ν•¨μˆ˜ (Sigmoid function)

   : ν™œμ„±ν™” ν•¨μˆ˜κ°€ 일정 값을 λ„˜μ–΄μ„œλ©΄ 1, κ·Έ μ΄ν•˜λŠ” 0 값을 좜λ ₯ν•˜κΈ° μœ„ν•΄  μ‹œκ·Έλͺ¨μ΄λ“œ ν•¨μˆ˜ (Sigmoid function)  λ₯Ό μ‚¬μš©

     μž…λ ₯κ°’ x와 각각의 μž…λ ₯값에 λŒ€ν•œ κ°€μ€‘μΉ˜(weight) 세타값(Θ) 으둜 κ³„μ‚°λœ μ‹œκ·Έλͺ¨μ΄λ“œ ν•¨μˆ˜μ— μž…λ ₯ν•˜μ—¬ 0κ³Ό 1μ‚¬μ΄μ˜

     κ°’μœΌλ‘œ λ°”κΎΈλ©°, 보톡 0.5λ₯Ό κΈ°μ€€μœΌλ‘œ 0.5 λ―Έλ§Œμ€ 0,  0.5 이상은 1에 λŒ€μ‘λ˜λ„λ‘ ν•˜μ—¬ ν™œμ„±ν™” ν•¨μˆ˜λ‘œ μ‚¬μš©

Sigmoid function
Sigmoid function

βœ”  μž„κ³„κ°’μ„ κΈ°μ€€μœΌλ‘œ ν™œμ„±ν™” / λΉ„ν™œμ„±ν™” λ˜λŠ”  κ³„λ‹¨ν•¨μˆ˜(step function)  or  Heaviside function  을 근사화

Heaviside function

🎲 ReLU ν•¨μˆ˜ (Rectified Linear Unit function)

   : μž…λ ₯값이 0보닀 크면 μž…λ ₯값을 κ·ΈλŒ€λ‘œ 좜λ ₯, μž…λ ₯값이 0 μ΄ν•˜μ΄λ©΄ 0을 좜λ ₯

     μ‹œκ·Έλͺ¨μ΄λ“œλΆ€ν„° νƒ„μ  νŠΈ ν•¨μˆ˜κΉŒμ§€ ν•΄κ²°λ˜μ§€ μ•Šμ•˜λ˜  기울기 μ†Œμ‹€λ¬Έμ œ  λ₯Ό μ•„λž˜μ˜ ν•¨μˆ˜λ‘œ ν•΄κ²°

ReLU function

βœ”  μ‹œκ·Έλͺ¨μ΄λ“œ ν•¨μˆ˜λŠ” λ„ν•¨μˆ˜μ—μ„œ 0μ—μ„œ 1μ‚¬μ΄μ˜ μž‘μ€ 값을 κ³±ν•˜λ©΄μ„œ 점점 κΈ°μšΈκΈ°κ°€ μ†Œμ‹€λ˜λŠ” λ¬Έμ œκ°€ λ°œμƒ

βœ”  ReLU ν•¨μˆ˜λŠ” μœ„μ˜ κ·Έλ¦Όκ³Ό 같이 미뢄값이 1이기 λ•Œλ¬Έμ— 기울기 μ†Œμ‹€λ¬Έμ œκ°€ λ°œμƒν•˜μ§€ μ•Šκ³  ν•™μŠ΅νš¨κ³Όκ°€ 계속 지속

βœ”  But, μ‹ κ²½λ§μ˜ νŠΉμ • 좜λ ₯이 0이 되면  ν•™μŠ΅ν•΄μ„œ κ³±ν–ˆλ˜ 기울기 값에 0을 κ³±ν•˜κ²Œ λ˜μ–΄ 값을 0으둜 λ§Œλ“€κ²Œ 됨 

     (죽은 ReLU 문제)

 

🎲 Leaky ReLU ν•¨μˆ˜

βœ”  0보닀 μž‘κ±°λ‚˜ 같을 λ•Œ 0을 κ³±ν•˜λŠ” 것이 μ•„λ‹Œ  x에 0.01을 κ³±ν•œ μž‘μ€ μ–‘μ˜ 기울기λ₯Ό μ‚¬μš©  ν•˜μ—¬ 죽은 ReLU 문제λ₯Ό ν•΄κ²° 

 

🎈 νΌμ…‰νŠΈλ‘  (Perceptron)

   : λ‰΄λŸ°μ˜ 원리λ₯Ό λ³Έλ–  λ§Œλ“  인곡ꡬ쑰

Perceptron

🎲 νΌμ…‰νŠΈλ‘ μ€ λ‹¨μˆœν•œ μ„ ν˜• λΆ„λ₯˜κΈ°μ— λΆˆκ³Όν•˜μ—¬ OR, AND 와 같은 λΆ„λ₯˜λŠ” κ°€λŠ₯ν•˜λ‚˜,  XOR λΆ„λ₯˜  λŠ” ν•΄κ²°ν•  수 μ—†μŒ

 

🎈 닀쀑 νΌμ…‰νŠΈλ‘  (MLP, Multi-Layer Perceptron)

   : 은닉계측 (Hidden Layer) μ΄λΌλŠ” 쀑간측을 μΆ”κ°€ν•˜μ—¬ μ„ ν˜•λΆ„λ₯˜κΈ°λΌλŠ” ν•œκ³„λ₯Ό 극볡

πŸ‘‰ 인곡신경망 λ‰΄λŸ΄ λ„€νŠΈμ›Œν¬λŠ” λ‰΄λŸ°λ“€μ„ μ—¬λŸ¬κ°œ μŒ“μ•„μ„œ λ§Œλ“€ 수 있음

       Layer1 (Input Layer, μž…λ ₯μΈ΅), Layer2 (Hidden Layer, 은닉측), Layer3 (Output Layer, 좜λ ₯μΈ΅)  λ‘œ κ΅¬μ„±λœ λ‰΄λŸ΄ λ„€νŠΈμ›Œν¬

 

🎈 μ—­μ „νŒŒ μ•Œκ³ λ¦¬μ¦˜ (Backpropagtion Algorithm)

πŸ‘‰  순방ν–₯ (Feed forward) μ—°μ‚° ν›„  μ˜ˆμΈ‘κ°’κ³Ό μ •λ‹΅ μ‚¬μ΄μ˜  였차λ₯Ό ν›„λ°© (backward)  으둜 λ‹€μ‹œ λ³΄λ‚΄λ©΄μ„œ ν•™μŠ΅μ‹œν‚€λŠ” 방법

 

🎈 경사 ν•˜κ°•λ²• (Gradient Descent)

   : 1μ°¨ 근사값 발견용 μ΅œμ ν™” μ•Œκ³ λ¦¬μ¦˜

     ν•¨μˆ˜μ˜ 기울기(경사)λ₯Ό κ΅¬ν•˜κ³  κ²½μ‚¬μ˜ λ°˜λŒ€ λ°©ν–₯으둜 계속 μ΄λ™μ‹œμΌœ 극값에 이λ₯Ό λ•ŒκΉŒμ§€ λ°˜λ³΅μ‹œν‚΄

졜적의 κ°€μ€‘μΉ˜ μ°ΎκΈ°
경사 ν•˜κ°•λ²•μœΌλ‘œ 근사값을 μ°ΎλŠ” κ³Όμ •

 

🎲 문제점 1. μ μ ˆν•œ ν•™μŠ΅λ₯  (learning rate)

ν•™μŠ΅λ₯ μ— λ”°λ₯Έ 비ꡐ

πŸ‘‰  ν•™μŠ΅λ₯ μ„ 적절히 μ‘°μ •  ν•˜λŠ” 것이 맀우 μ€‘μš” 

 

🎲 문제점 2. Local Minimum 문제

πŸ‘‰ μ „μ—­ μ΅œμ†Œκ°’(Global) 을 μ°Ύκ³  μ‹Άμ§€λ§Œ,  μ§€μ—­(Local) μ΅œμ†Œκ°’μ— λΉ μ Έ νƒˆμΆœν•˜μ§€ λͺ»ν•˜κ³  κ·ΈλŒ€λ‘œ 수렴  ν•  수 있음 

 

βœ”  ν•™μŠ΅ 도쀑에 ν•™μŠ΅λ₯ μ„ μ§€μ†μ μœΌλ‘œ λ°”κΎΈλŠ”  Adaptive Gradient Descent,

local minimum 에 λΉ μ§€λŠ” 경우λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ κ΄€μ„±λ ₯을 μΆ”κ°€ν•œ  Momentum GD  와 같은 경사 ν•˜κ°•λ²•μœΌλ‘œ ν•΄κ²°

λ°˜μ‘ν˜•