λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
1️⃣ AI•DS/πŸ“’ Deep learning

[인곡지λŠ₯] DNN

by isdawell 2022. 4. 23.
728x90

πŸ“Œ ꡐ내 '인곡지λŠ₯' μˆ˜μ—…μ„ 톡해 κ³΅λΆ€ν•œ λ‚΄μš©μ„ μ •λ¦¬ν•œ κ²ƒμž…λ‹ˆλ‹€. 

 

 

μš”μ•½ 

 

β‘  Universal approximation theorem 

 

β‘‘ Activation function 

 

β‘’ DNN : why deep?

 

β‘£ Random Initialization 

 

- tanh, ReLU : κ°€μ€‘μΉ˜κ°€ 0으둜 κ³ μ •

- sigmoid : κ°€μ€‘μΉ˜κ°€ suboptimal matrix ν˜•νƒœλ‘œ μ—…λ°μ΄νŠΈ

 

β‘€ Application example : Face recognition 

 

 

 


 

 

1️⃣  Universal approximation thm , activation function 


 

β‘  Universal approximation theorems 

 

πŸ‘€ μΆ©λΆ„ν•œ κ°€μ€‘μΉ˜κ°€ μ μš©λ˜μ—ˆμ„ λ•Œ, MLP 둜 μ–΄λ– ν•œ ν•¨μˆ˜λ„ κ·Όμ‚¬μ‹œν‚¬ 수 μžˆλ‹€. 

 

  • hidden layer 에 μžˆλŠ” hidden unit 의 κ°œμˆ˜κ°€ μΆ©λΆ„νžˆ λ§Žλ‹€λ©΄ 2개의 layer 둜 κ΅¬μ„±λœ MLP 둜 λͺ¨λ“  ν•¨μˆ˜λ₯Ό κ·Όμ‚¬μ‹œν‚¬ 수 μžˆλ‹€.

 

 

πŸ€” κ·Έλ ‡λ‹€λ©΄ λ”₯λŸ¬λ‹μ„ μ™œ μ‚¬μš©ν•˜λŠ”κ°€ →νš¨μœ¨μ„±μ˜ 문제 

 

 

 

β‘‘ ν™œμ„±ν™” ν•¨μˆ˜ 

 

πŸ‘€ ν™œμ„±ν™” ν•¨μˆ˜λŠ” non-linearlity λ₯Ό λΆ€μ—¬ν•˜μ—¬ NN 으둜 λΉ„μ„ ν˜•μ μΈ 문제λ₯Ό ν’€ 수 μžˆλ„λ‘ ν•œλ‹€. 

 

  • λΉ„μ„ ν˜• ν•¨μˆ˜λ₯Ό 톡해 각 layer 사이λ₯Ό λΉ„μ„ ν˜•μ μœΌλ‘œ μ—°κ²°μ‹œμΌœμ€€λ‹€. 
  • ꢁ극적으둜 세상에 μžˆλŠ” λ³΅μž‘ν•œ λ¬Έμ œλŠ” linear ν•˜κ²Œ ν’€ 수 μ—†λŠ” λ¬Έμ œκ°€ 더 λ§Žλ‹€. 
  • ν™œμ„±ν™”ν•¨μˆ˜κ°€ μ‘΄μž¬ν•΄μ•Ό layer λ₯Ό μŒ“μœΌλ©° feature extraction 을 톡해 space transformation 을 μˆ˜ν–‰ν•  수 μžˆλ‹€. 

 

행렬곱은 ν–‰λ ¬λ‘œ κ²°κ³Όκ°€ λ„μΆœλ˜λ©° o λŠ” μ„ ν˜•μ‹μœΌλ‘œ κ²°κ³Όκ°€ λ„μΆœλ¨

 

πŸ’¨ ν™œμ„±ν™” ν•¨μˆ˜κ°€ μ—†μœΌλ©΄ κ³΅κ°„λ³€ν™˜μ΄ λ°œμƒν•˜μ§€ μ•Šμ•„ layer λ₯Ό μŒ“μ•„λ„ μ„ ν˜•λ³€ν™˜λ§Œ λ°œμƒν•¨

측을 μŒ“λŠ” 것이 무의미 해짐 πŸ™„

 

 

🐾 μ°Έκ³  : linear vs non-linear 

 

 

 

β‘’ ν™œμ„±ν™” ν•¨μˆ˜ μ’…λ₯˜

 

πŸ‘€ ν™œμ„±ν™” ν•¨μˆ˜λ‘œ λ―ΈλΆ„ κ°€λŠ₯ν•˜κ³  non-linear ν•œ ν•¨μˆ˜κ°€ 자주 μ‚¬μš©λœλ‹€. 

 

ν™œμ„±ν™” ν•¨μˆ˜ μ’…λ₯˜

 

 

πŸ‘€ Gradient descent (μ—­μ „νŒŒ) κ³„μ‚°μ‹œ ν•„μš”ν•œ ν™œμ„±ν™” ν•¨μˆ˜ λ―ΈλΆ„ 

 

ReLUμ—μ„œ x=0 일 땐 0보닀 큰 κ΅­μ†Œμ μœΌλ‘œ κ°„μ£Όν•˜μ—¬ 1둜 λ―ΈλΆ„ 값을 λŒ€μ²΄ν•œλ‹€.

 

 

 

 


 

2️⃣  DNN


 

β‘  Deep Neural network 

 

πŸ‘€ layer λ₯Ό 많이 μŒ“μ€ λ„€νŠΈμ›Œν¬ = DNN 

 

 

 

 

 

πŸ‘€ Fully-connected Network (Dens layer) : λ‰΄λŸ°λ“€μ΄ μ „κ²°ν•© λ˜μ–΄μžˆλŠ” μƒνƒœ 

 

 

 

 

πŸ‘€ Convolution Neural Network : layer κ°€ μ „κ²°ν•© λ˜μ–΄ μžˆμ§€ μ•Šλ‹€. 

 

 

 

πŸ‘€ λ‰΄λŸ° μ‚¬μ΄μ˜ κ²°ν•© ν˜•νƒœμ— 따라 μ’…λ₯˜κ°€ λ‹€μ–‘ν•˜λ‹€. 

 

 

 

 

πŸ‘€ μ„œλ‘œ λ‹€λ₯Έ κ²°ν•© ν˜•νƒœμ˜ layer λ₯Ό μ„žμ–΄μ„œ λͺ¨λΈμ„ μƒμ„±ν•˜κΈ°λ„ ν•œλ‹€. 

 

 

 

 

β‘‘ κΉŠμ€ 측을 ν˜•μ„±ν•˜λŠ” 이유 ft. Circuit Theory Analogy 

 

πŸ‘€ Small (hidden units) n-layer dnn == Shallower network with exponentially more hidden units

 

πŸ’¨ κ·ΈλŸ¬λ‚˜ νš¨μœ¨μ„±μ€ μ™Όμͺ½ network κ°€ 더 μ’‹μŒ! 

 

 

 

 

  • λ‰΄λŸ° κ°œμˆ˜λŠ” 적더라도 측을 깊이 μŒ“μ€ network κ°€ 였히렀 λΉ„μ„ ν˜• λ³€ν™˜μ΄ μ—¬λŸ¬λ²ˆ λ°œμƒν•˜λ©° 더 λ³΅μž‘ν•œ task λ₯Ό μ‰½κ²Œ μˆ˜ν–‰ν•  수 μžˆλ‹€. 

 

 

β‘’ Forward propagation in DNN

 

 

 

 

β‘£ Backpropagation in DNN 

 

πŸ‘€ dw, dz, dy 둜 μ—°μ‚°λ˜λŠ” 연쇄과정 μ΄ν•΄ν•˜κΈ°! 

 

 

 

 

πŸ‘€ MLP μ—μ„œ μ •λ¦¬ν–ˆλ˜ gradient descent μ—°μ‚° κ³Όμ • λŒ€μž…ν•΄μ„œ 이해할것 

 

πŸ‘‰ dW = error(1)* input

πŸ‘‰ error(1) = error(2) * W * f ' 

 

πŸ‘» error(2) * W = dy = input gradient 

 

 

ν–‰λ ¬ κ³± μ—°μ‚°κ³Ό element wise κ³± κ΅¬λΆ„ν•˜κΈ°!

 

 

 

 

 

 

 

β‘€ hyperparameters 

 

πŸ‘€ Parameter 

 

  • 기계가 training 을 톡해 값을 update ν•œλ‹€. 

 

 

πŸ‘€ HyperParameter 

 

  • trial error, 즉 μ‚¬λžŒμ΄ 직접 값을 λ°”κΏ”κ°€λ©° 졜적의 값을 κ²°μ •ν•΄μ•Ό ν•œλ‹€. 

 

 

 

 

β‘₯ Random Initialization problem 

 

πŸ‘€ μ΄ˆκΈ°κ°’μ„ λ‹€λ₯΄κ²Œ μ„€μ •ν•˜λ©΄ ν›ˆλ ¨ 결과도 달라진닀. 

 

  • μ΄ˆκΈ°κ°’μ„ 잘 μ„€μ •ν•΄μ£ΌλŠ” 것도 맀우 μ€‘μš”ν•˜λ‹€ ⭐⭐
  • μΌλ°˜μ μœΌλ‘œλŠ” small random number 둜 μ΄ˆκΈ°κ°’μ„ μ„€μ •ν•œλ‹€. 

 

 

πŸ‘€ μ΄ˆκΈ°κ°’μ„ 0으둜 μ„€μ •ν•  λ•Œ λ°œμƒν•˜λŠ” 문제점 

 

 

(1) ν™œμ„±ν™” ν•¨μˆ˜κ°€ tanh λ‚˜ ReLU μΌλ•Œ 

 

  • Weight 값이 0μ—μ„œ λ²—μ–΄λ‚˜μ§€ λͺ»ν•˜λ©° weight update κ°€ 이루어지지 μ•ŠλŠ”λ‹€. 

 

(2) ν™œμ„±ν™” ν•¨μˆ˜κ°€ Sigmoid μΌλ•Œ 

 

  • weight matrix κ°€ μΉΌλŸΌλ³„λ‘œ 항상 같은 κ°’μœΌλ‘œλ§Œ κ°±μ‹ λ˜λŠ” suboptimal ν•œ ν˜„μƒμ΄ λ°œμƒν•˜κΈ° λ•Œλ¬Έμ— 졜적의 weight 값을 찾지 λͺ»ν•˜λŠ” λ¬Έμ œκ°€ λ°œμƒν•œλ‹€. 
  • weight 값이 λ‹€μ–‘ν•΄μ•Ό ν›ˆλ ¨λ„ 잘 이루어진닀. 

 

 

 

⭐ 결둠은 κ°€μ€‘μΉ˜ μ΄ˆκΈ°κ°’μ„ 0으둜 μ„€μ •ν•˜λ©΄ μ•ˆ!된!λ‹€!

 

 


 

3️⃣ DNN 의 μ‘μš© : Face recognition 


 

 

β‘  Training data 

 

πŸ‘€ layer λ₯Ό 많이 μŒ“μ€ λ„€νŠΈμ›Œν¬ = DNN 

 

  • 전체 20λͺ…μœΌλ‘œ κ΅¬μ„±λ˜μ–΄ 있고, ν•œ μ‚¬λžŒλ‹Ή 32개의 흑백 사진이 μ‘΄μž¬ν•˜λŠ”λ° 각 μ‚¬μ§„λ³„λ‘œ μ‚¬λžŒμ˜ ν‘œμ •, μ–Όκ΅΄ λ°©ν–₯, μ„ κΈ€λΌμŠ€ 착용 μœ λ¬΄κ°€ λ‹€λ₯΄κ²Œ μ„€μ •λ˜μ–΄ μžˆλ‹€. μ›λž˜ 이미지 λ°μ΄ν„°λŠ” 120x128 크기의 ν”½μ…€λ‘œ 이루어져 μžˆλ‹€. 
  • λͺ©ν‘œλŠ” μ‚¬λžŒμ΄ μ–΄λŠλ°©ν–₯을 보고 μžˆλŠ”μ§€ left, right, straight ahead, up 쀑에 ν•˜λ‚˜λ₯Ό λ§žμΆ”λŠ” 것 

 

 

  • 120x128 pixel 의 원본 이미지λ₯Ό 30x32 크기둜 λ³€ν™˜μ‹œν‚¨ ν›„, 2d 인 matrix λ₯Ό 1d둜 flatten μ‹œμΌœ 크기가 960인 벑터λ₯Ό μž…λ ₯으둜 λ„£λŠ”λ‹€. 
  • hidden unit 은 3개, output unit 은 4개 
  • μ΅œμ’…μ μœΌλ‘œ 960 x 3 x 4 network κ°€ ν›ˆλ ¨λœλ‹€. 

 

 

β‘‘ DNN design 

 

πŸ‘€ Input Encoding : 인풋을 μ–΄λ–€ ν˜•νƒœλ‘œ ν‘œν˜„ν•˜μ—¬ NN에 λ„£μ„κΉŒ?

 

(1) Feature extraction (preprocessing) 

 

  • μ‚¬λžŒμ΄ 직접 κ²°μ •ν•œ key feature λ₯Ό 뽑아 μΈν’‹μœΌλ‘œ λ„£μ–΄μ€€λ‹€. 
  • (예) 이미지 λ°μ΄ν„°μ—μ„œ edge, region of uniform intensity λ“± νŠΉμ • 뢀뢄을 μΆ”μΆœν•΄ μΈν’‹μœΌλ‘œ λ„£μ–΄μ€€λ‹€. 
  • (단점) ν”Όμ²˜λ₯Ό μΆ”μΆœν•˜λŠ”λ° μ‹œκ°„μ΄ 였래 걸리고, ν”Όμ²˜μ˜ κ°œμˆ˜κ°€ μ΄λ―Έμ§€λ§ˆλ‹€ λ‹€λ₯΄κ²Œ μΆ”μΆœλ˜λŠ”, 즉 input κ°œμˆ˜κ°€ κ³ μ •λ˜μ§€ μ•ŠλŠ” 문제점이 λ°œμƒν•  수 μžˆλ‹€. λ”°λΌμ„œ 이 방법은 잘 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€. 

 

(2) Coarse-resolution 

 

  • μ—°μ‚°λŸ‰μ„ 쀄이기 μœ„ν•΄ μ΄λ―Έμ§€μ˜ 크기λ₯Ό μ€„μ΄λŠ” 방법이닀. 
  • Face recognition 도 이 방법을 μ‚¬μš©ν•˜μ—¬ 120x128 이미지 픽셀을 30x32 크기둜 μ€„μ˜€λ‹€. 즉 μ—°μ‚°λŸ‰μ΄ 16λ°° κ°μ†Œν–ˆλ‹€κ³  λ³Ό 수 μžˆλ‹€. (κ°€λ‘œ 1/4, μ„Έλ‘œ 1/4)
  • 원본 이미지λ₯Ό κ·ΈλŒ€λ‘œ μΈν’‹μœΌλ‘œ λ„£μ–΄μ£ΌλŠ” 것 보단, course resolution 을 ν•˜μ—¬ 원본 이미지λ₯Ό μš”μ•½ν•œ ν˜•νƒœλ‘œ λ„£μ–΄μ£ΌλŠ” 것이 λ³΅μž‘λ„λ₯Ό 쀄여 였히렀 ν•™μŠ΅μ—λŠ” 더 μ’‹λ‹€. 

 

 

πŸ‘€ Output Encoding

 

(1) One Unit Scheme 

 

  • multiple threshold values λ₯Ό μ‚¬μš©ν•˜μ—¬ output 이 1개둜 λ„μΆœλ˜λŠ” ν‘œν˜„ 방식을 μ‚¬μš©

 

 

(2) Multiple Unit Scheme

 

  • single threshold value λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‹€μˆ˜μ˜ output 을 λ„μΆœν•˜λŠ” ν‘œν˜„μ‹μ„ μ‚¬μš© 
  • One hot encoding 이 λŒ€ν‘œμ μΈ ν‘œν˜„μ‹ 
  • 1κ³Ό 0으둜 κ΅¬μ„±λœ 원핫인코딩 방식뿐 μ•„λ‹ˆλΌ 각 값을 'ν™•λ₯ κ°’'으둜 ν‘œν˜„ν•˜λŠ” ν‘œν˜„μ‹λ„ μ‘΄μž¬ν•œλ‹€. 

 

  • multiple output ν‘œν˜„ν•˜λ©΄ 1. target function 을 ν‘œν˜„ν•˜λŠ”λ° μžˆμ–΄μ„œ μžμœ λ„κ°€ λ†’λ‹€  2. κ°€μž₯ 큰 κ°’κ³Ό κ·Έ λ‹€μŒμœΌλ‘œ 큰 κ°’μ˜ 차이가 클수둝 nn 이 더 결과에 μžμ‹ μžˆλ‹€κ³  ν•΄μ„ν•˜λŠ” confidence 방법을 μ‚¬μš©ν•  수 μžˆλ‹€ λŠ” μž₯점이 μžˆλ‹€. 

 

(3) Ground Truth 의 ν˜•νƒœ 

 

 

  • Target 값을 μ›ν•«μΈμ½”λ”©μœΌλ‘œ λ„μΆœν•˜λŠ” 것 보단 였λ₯Έμͺ½κ³Ό 같은 μ†Œμˆ˜μ  λ°©μ‹μœΌλ‘œ ν‘œν˜„ν•˜λŠ” 것이 μ’‹λ‹€. 
  • κ°€λ Ή μ‹œκ·Έλͺ¨μ΄λ“œ ν•¨μˆ˜λΌκ³  ν•˜λ©΄, μ‹œκ·Έλͺ¨μ΄λ“œλŠ” μ΅œλŒ€κ°’μ΄ 0.99999둜 정닡인 1에 근접해지기 μœ„ν•΄ bound 없이 κ°€μ€‘μΉ˜κ°€ 계속 μ¦κ°€ν•˜λŠ” 문제점이 λ°œμƒν•œλ‹€. 0.9λŠ” μ‹œκ·Έλͺ¨μ΄λ“œκ°€ λ„μΆœν•΄λ‚Ό 수 μžˆλŠ” bound κ°€ μžˆλŠ” κ°’μ΄λ―€λ‘œ κ°€μ€‘μΉ˜κ°€ μœ ν•œν•œ κ°’μœΌλ‘œ 결정될 수 μžˆλ‹€. 
  • πŸ‘€ κ·ΈλŸ¬λ‚˜ μ‹€μ œ λ”₯λŸ¬λ‹μ—μ„œλŠ” μ™Όμͺ½ 원핫 인코딩 ν˜•μ‹μœΌλ‘œ ν‘œν˜„ν•¨ 

 

 

 

 

πŸ‘€ Network architecture 

 

  • 은닉측을 λͺ‡ 개 μ‚¬μš©ν•  것인가 πŸ‘‰ trial error 
  • ν•˜λ‚˜μ˜ layer 에 λŒ€ν•΄ λͺ‡ 개의 μ€λ‹‰λ…Έλ“œλ₯Ό μ‚¬μš©ν•  것인가 πŸ‘‰ trial error 

 

 

 

πŸ‘€ Hyperparameters 

 

  • ν•™μŠ΅λ₯  μ„€μ • 
  • 0에 κ°€κΉŒμš΄ μž‘μ€ κ°’μœΌλ‘œ κ°€μ€‘μΉ˜λ₯Ό μ΄ˆκΈ°ν™”ν•œλ‹€. 
  • ꡐ차검증을 톡해 에포크 수λ₯Ό κ²°μ •ν•œλ‹€. 
  • 검증 데이터 μ…‹μ—μ„œ κ°€μž₯ 쒋은 μ„±λŠ₯을 보인 nn 의 ꡬ쑰가 μ΅œμ’… nn 이 λœλ‹€. 

 

 

 

 

 

 

 

728x90

λŒ“κΈ€