인곡지λŠ₯🐾/λ”₯λŸ¬λ‹

[인곡지λŠ₯ λ”₯λŸ¬λ‹] 0. λ”₯λŸ¬λ‹ 기초 지식(2)

πŸͺ„ν•˜λ£¨πŸͺ„ 2023. 4. 5. 08:00
728x90
곡뢀λ₯Ό μ‹œμž‘ν•˜κΈ° μ•žμ„œ ν‹°μŠ€ν† λ¦¬ 방문자 100λͺ…을 λ‹¬μ„±ν–ˆλ‹€πŸŽ‡

λΈ”λ‘œκ·Έ 방문자 λ°±λͺ… 달성!

μƒˆλ‘œμš΄ μ‚¬λžŒ λ°±λͺ…을 λ§Œλ‚¬λ‹€κ³  μƒκ°ν•˜λ©΄ κ½€ λŒ€λ‹¨ν•œ μˆ«μžκ°€ μ•„λ‹κΉŒ 슀슀둜λ₯Ό 칭찬함과
λ™μ‹œμ— 더 κΎΈμ€€νžˆ 글을 올리기λ₯Ό λ‹€μ§ν•˜λ©°! 였늘의 곡뢀λ₯Ό μ‹œμž‘ν•΄ 보자.

 

 

* 이 글은 넀이버 λΆ€μŠ€νŠΈ μ½”μŠ€μ˜ λ”₯λŸ¬λ‹ 기초 닀지기 κ°•μ˜λ₯Ό μˆ˜κ°•ν•˜λ©° μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€.

 

μ˜€λŠ˜μ€ λ”₯λŸ¬λ‹μ—μ„œ ν™œμš©ν•˜λŠ” Neural Network ꡬ쑰와 Multi-Layer Perceptron에 λŒ€ν•΄ μ•Œμ•„λ³΄μž.

 

 

0. Neural Network λž€?

포유λ₯˜μ˜ 신경망을 λͺ¨λ°©ν•˜κ³ μž ν•˜λŠ” μ‹œμŠ€ν…œμ΄λ‹€.

(λΉ„ν–‰κΈ°λŠ” μƒˆλ₯Ό λͺ¨λ°©ν–ˆμ§€λ§Œ, κΌ­ μƒˆμ˜ λ°©μ‹μœΌλ‘œλ§Œ λ‚ μ§€λŠ” μ•ŠλŠ”λ‹€.

이게 무슨 말이냐 ν•˜λ©΄ 점차 λ°œμ „ν•˜λ©° ν”„λ‘œνŽ λŸ¬λ‚˜ 엔진 등을 μΆ”κ°€ν•˜κ³  쒋은 μ„±λŠ₯을 λ‚΄κΈ° μœ„ν•΄μ„œ λ‹€μ–‘ν•œ 연산을 μΆ”κ°€ν•˜λŠ” κ³Όμ •μ—μ„œ 처음의 λͺ©μ μΈ μƒˆμ˜ μ›€μ§μž„μ„ λͺ¨λ°©ν•˜λŠ” κ²ƒμ—μ„œλŠ” μ΄νƒˆν–ˆλ‹€λŠ” 것이닀.)

이와 λ§ˆμ°¬κ°€μ§€λ‘œ, λ”₯λŸ¬λ‹μ΄ μ΄ˆκΈ°μ—λŠ” μ‚¬λžŒμ˜ λ‡Œλ₯Ό λͺ¨λ°©ν•˜κ³ μž ν•˜μ˜€μœΌλ‚˜, ν˜„μž¬λŠ” μΈκ°„μ˜ λ‡Œλ₯Ό λͺ¨λ°©ν•œλ‹€λŠ” λͺ©μ μ— 훨씬 더 λ‚˜μ•„κ°€ μˆ˜ν•™μ μΈ 접근방식을 톡해 쒋은 μ„±λŠ₯을 λ‚΄κ³  μžˆλ‹€.

 

λ”°λΌμ„œ λ”₯λŸ¬λ‹μ— λŒ€ν•œ 더 μ˜¬λ°”λ₯Έ μ •μ˜λŠ” λ‹€μŒκ³Ό κ°™λ‹€.

 

function approximators that stack affine transformations followed by nonlinear transformations
: λ‚΄κ°€ μ •μ˜ν•  function(λͺ¨λΈ)으둜 κ·Όμ‚¬ν•˜λŠ” ν•¨μˆ˜λ‘œ
   ν–‰λ ¬ κ³± μ—°μ‚°κ³Ό λΉ„μ„ ν˜•μ—°μ‚°(activation function)이 반볡적으둜 μˆ˜ν–‰λœλ‹€.

 

 

1. κ°€μž₯ λ‹¨μˆœν•œ Neural Network - 1D Linear Neural Network (1차원 μ„ ν˜•νšŒκ·€)

제일 λ¨Όμ € κ°€μž₯ κ°„λ‹¨ν•œ Neural Network ꡬ쑰인 μ„ ν˜•νšŒκ·€μ— λŒ€ν•΄ μ‚΄νŽ΄λ³΄μž.

 

1차원 μ„ ν˜•νšŒκ·€ λ¬Έμ œλŠ” μž…λ ₯ : 1차원 ⇒ 좜λ ₯ : 1차원 일 λ•Œ, 이λ₯Ό κ°€μž₯ 잘 κ·Όμ‚¬ν•˜λŠ” $ y=wx+b $ λ₯Ό κ΅¬ν•˜λŠ” 것이닀.

 

μ•žμ„œ λ§ν–ˆλ“―, λ”₯λŸ¬λ‹μ€ 데이터, λͺ¨λΈ, μ†μ‹€ν•¨μˆ˜λ‘œ μ •μ˜ν•  수 μžˆλ‹€.

 

- Data : $ D=\left\{(x_i, y_i) \right\}_{i=1}^{N} $

- Model : $ \hat{y}=wx+b $

- Loss : $ loss=\frac{1}{N} \sum_{i=1}^{N}(y_i-\hat{y_i})^2 $

 

 

재차 λ§ν•˜μ§€λ§Œ, 우리의 λͺ©μ μ€ Loss function을 Minimize ν•˜λŠ”

⇒ 졜적의 νŒŒλΌλ―Έν„° w, bλ₯Ό μ°ΎλŠ” 것이닀.

 

μ΄λ•Œ, 졜적의 w와 b 값을 κ΅¬ν•˜λŠ” λ§Žμ€ μ•Œκ³ λ¦¬μ¦˜μ΄ μžˆλŠ”λ°, 그쀑 back propagation을 μ‚¬μš©ν•΄ 보자.

 

Step 1. Loss ν•¨μˆ˜λ₯Ό 각각 w와 b에 λŒ€ν•΄ νŽΈλ―ΈλΆ„ ν•œλ‹€.

 

- Loss ν•¨μˆ˜μ˜ w에 λŒ€ν•œ νŽΈλ―ΈλΆ„ 방정식 ($\frac{\partial loss}{\partial w}$)

$\frac{\partial loss}{\partial w}=\frac{\partial }{\partial w}\frac{1}{N}\sum_{i=1}^{N}(y_i-\hat{y_i})^2$

$=\frac{\partial }{\partial w}\frac{1}{N}\sum_{i=1}^{N}(y_i-wx_i-b)^2$

$=-\frac{1}{N}\sum_{i=1}^{N}-2(y_i-wx_i-b)x_i $

 

- Loss ν•¨μˆ˜μ˜ b에 λŒ€ν•œ νŽΈλ―ΈλΆ„ 방정식($ \frac{\partial loss}{\partial b}$)

$ \frac{\partial loss}{\partial b}=\frac{\partial }{\partial b}\frac{1}{N}\sum_{i=1}^{N}(y_i-\hat{y_i})^2$

$=\frac{\partial }{\partial b}\frac{1}{N}\sum_{i=1}^{N}(y_i-wx_i-b)^2$

$=-\frac{1}{N}\sum_{i=1}^{N}-2(y_i-wx_i-b)x_i $

 

Step 2. 각 νŒŒλΌλ―Έν„°μ— νŽΈλ―ΈλΆ„κ°’μ„ λ°˜μ˜ν•΄ μ—…λ°μ΄νŠΈν•œλ‹€.(Gradient Decent 방식 이용)

cf) Gradient Decent  : 각 νŒŒλΌλ―Έν„°μ— loss function의 νŽΈλ―ΈλΆ„ 값을 λΉΌλŠ” 방법(⇔Gradient Ascent)

 

$ w \leftarrow w-\eta \frac{\partial loss}{\partial w} $

$ b \leftarrow b-\eta \frac{\partial loss}{\partial b} $

 

κ·Έλ ‡λ‹€λ©΄ $\eta$ : Stepsize(=learning rate)λŠ” μ–΄λ–»κ²Œ μ •ν• κΉŒ?

  • λ„ˆλ¬΄ 크면 Loss ν•¨μˆ˜μ˜ μ΅œμ†Ÿκ°’μ„ κ³„μ‚°ν•˜μ§€ λͺ»ν•˜κ³  계속 μ»€μ ΈλŠ” λ°©ν–₯으둜 λ‚˜μ•„κ°„λ‹€.
  • λ„ˆλ¬΄ μž‘μœΌλ©΄ 맀우 느린 μ†λ„λ‘œ ν•™μŠ΅μ΄ μ§„ν–‰λ˜κΈ° λ•Œλ¬Έμ— λΉ„νš¨μœ¨μ μ΄λ‹€.

μ•Œμ•„μ„œ μ λ‹Ήνžˆ μ •ν•΄μ•Ό ν•˜λŠ”λ°,

 λ‹€μŒ κ°•μ˜μ˜ μ΅œμ ν™”(Optimization) λ°©λ²•λ‘ μ—μ„œ Adaptive learning rate에 λŒ€ν•΄ ν•™μŠ΅ν•˜κ²Œ λ˜λŠ”λ° 이 방법을 μ΄μš©ν•˜λ©΄ step sizeλ₯Ό μžλ™μœΌλ‘œ λ°”κΏ”μ€€λ‹€κ³  ν•œλ‹€.

 

 

2. Linear Neural Network

μ•žμ˜ λ‚΄μš©μ„ ν™•μž₯ν•΄ 보자.

μž…λ ₯ : m차원 ⇒ 좜λ ₯ : n차원 일 λ•Œμ˜ μ„ ν˜• λͺ¨λΈμ„ μ°Ύμ•„λ³΄μž.

 

ν–‰λ ¬λ³€ν™˜(ν–‰λ ¬κ³±=affine transform) μ„œλ‘œ λ‹€λ₯Έ 차원을 λ§€ν•‘ν•˜λŠ” 것이닀.

μˆ˜μ‹μ μœΌλ‘œλŠ”

$y=W^Tx+b$ (y, x, bλŠ” 벑터이고, WλŠ” ν–‰λ ¬)으둜 μ •μ˜ν•  수 있고, 그림으둜 λ‚˜νƒ€λ‚΄λ©΄ λ‹€μŒκ³Ό κ°™λ‹€.

 

ν–‰λ ¬λ³€ν™˜(ν–‰λ ¬κ³±) : m차원 -> nμ°¨μ›μœΌλ‘œ λ³€ν™˜

 

 

3. μ–΄λ–»κ²Œ λ”₯λŸ¬λ‹μ΄ 쒋은 μ„±λŠ₯을 λ‚ΌκΉŒ

μΈκ°„μ˜ λ‡Œλ₯Ό λͺ¨λ°©ν–ˆκΈ° λ•Œλ¬Έμ—μ˜ λŒ€λ‹΅μ—μ„œ λ²—μ–΄λ‚˜λ³΄μž.

λ”₯λŸ¬λ‹μ˜ ν‘œν˜„λ ₯에 ν‘œν˜„λ ₯에 λŒ€ν•œ 유λͺ…ν•œ 정리가 μžˆλ‹€.

Universal Approximators theorem(정리)
there is a single hidden layer feedforward network that approximates any measurable function to any desired degree of accuracy on some compact set K
:
νžˆλ“  λ ˆμ΄μ–΄κ°€ 1개 μžˆλŠ” λ‰΄λŸ΄ λ„€νŠΈμ›Œν¬μ˜ ν‘œν˜„λ ₯은 λŒ€λΆ€λΆ„μ˜ 연속적인 ν•¨μˆ˜(μš°λ¦¬κ°€ ν‘œν˜„ν•˜κ³ μž ν•˜λŠ” λŒ€λΆ€λΆ„μ˜ ν•¨μˆ˜)에 λŒ€ν•΄ λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€.

ν•˜μ§€λ§Œ, 이 가섀은 μ‘΄μž¬μ„±λ§Œμ„ 보인닀. λ‚΄κ°€ ν•™μŠ΅μ‹œν‚¨ λ‰΄λŸ΄ λ„€νŠΈμ›Œν¬κ°€ λͺ©μ ν•¨μˆ˜μ— μ–΄λ–»κ²Œ λ‹€κ°€κ°ˆ 수 μžˆλŠ”μ§€μ— λŒ€ν•œ μ˜λ―ΈλŠ” μ•„λ‹ˆλ‹€.

 

 

4. Multi Layer Perceptron λ‹€μΈ΅ λ ˆμ΄μ–΄ νΌμ…‰νŠΈλ‘ 

자, 이제 μ•žμ„œ λ§ν–ˆλ˜ λ”₯λŸ¬λ‹μ˜ μ •μ˜λ₯Ό λ‹€μ‹œ ν•œλ²ˆ λ– μ˜¬λ € 보자.

λ‚΄κ°€ μ •μ˜ν•  function(λͺ¨λΈ)으둜 κ·Όμ‚¬ν•˜λŠ” ν•¨μˆ˜λ‘œ

ν–‰λ ¬ κ³± μ—°μ‚°(affine transformations)κ³Ό λΉ„μ„ ν˜•μ—°μ‚°(activation function)이

반볡적으둜 μˆ˜ν–‰λ˜λŠ” λ°©μ‹μœΌλ‘œ μž‘λ™ν•œλ‹€.

 

λ”°λΌμ„œ 일반적인 λ”₯λŸ¬λ‹ λͺ¨λΈμ€ λ‹€μŒκ³Ό 같은 μ‹μœΌλ‘œ ν‘œν˜„ν•  수 μžˆλ‹€.

μ„ ν˜•μ—°μ‚°λΉ„μ„ ν˜•μ—°μ‚°(=nonlinear transformation) μ„ ν˜•μ—°μ‚°,,,, 의 반볡

cf) μš©μ–΄μ •λ¦¬

μ„ ν˜•μ—°μ‚°(=ν–‰λ ¬κ³±μ—°μ‚°=affine transformation), λΉ„μ„ ν˜• μ—°μ‚°(=ν™œμ„±ν™”ν•¨μˆ˜=nonlinear transformation)

 

κ·Έλ ‡λ‹€λ©΄ μ™œ λΉ„μ„ ν˜• 연산을 ν¬ν•¨μ‹œμΌœμ•Ό ν• κΉŒ?

λͺ¨λ“  μ„ ν˜• 연산은 λ‹€λ₯Έ ν•˜λ‚˜μ˜ μ„ ν˜• μ—°μ‚°μœΌλ‘œ ν‘œν˜„ν•  수 있기 λ•Œλ¬Έμ— 측을 κ΅¬μ„±ν•˜μ§€ λͺ»ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.

 

x에 λŒ€ν•΄ ν–‰λ ¬ $W_1, W_2$λ₯Ό κ³±ν–ˆλ‹€κ³  생각해 보자.

$W_1W_2$의 행렬곱은 λ‹€λ₯Έ ν–‰λ ¬ $W_3$둜 ν•œ λ²ˆμ— ν‘œν˜„ν•  수 μžˆλ‹€.

$W_1W_2x = W_3x$

ν–‰λ ¬μ˜ λ‹€μŒκ³Ό 같은 νŠΉμ§•μœΌλ‘œ 인해 Layer(μΈ΅)을 μΆ”κ°€ν•  수 μ—†κΈ° λ•Œλ¬Έμ— λΉ„ μ„ ν˜• 연산을 μΆ”κ°€ν•˜μ—¬ 측을 ν‘œν˜„ν•œλ‹€.

 

이제 λΉ„μ„ ν˜• μ—°μ‚°(nonlinear function)에 λŒ€ν•΄ 쑰금 더 μ‚΄νŽ΄λ³΄μž.

λΉ„μ„ ν˜• μ—°μ‚°μœΌλ‘œ 보톡 Activation function(ν™œμ„±ν•¨μˆ˜)λ₯Ό μ‚¬μš©ν•˜λŠ”λ° μ—¬λŸ¬ 가지 μ’…λ₯˜κ°€ μžˆλ‹€.

  • Step function
  • RELU
  • Sigmoid
  • Hyperbolic Tangent

 

 

자, λ”₯λŸ¬λ‹μ— λŒ€ν•œ λͺ¨λ“  ꡬ성 μš”μ†Œ(μ„ ν˜•μ—°μ‚°, λΉ„μ„ ν˜•μ—°μ‚°) 듀을 μ‚΄νŽ΄λ΄€μœΌλ‹ˆ 이제 닀쀑 λ ˆμ΄μ–΄ νΌμ…‰νŠΈλ‘ μ„ ν‘œν˜„ν•΄ 보자.

 

예제) 3 Layer 쀑에 2 hidden layerκ°€ μžˆλŠ” λ‰΄λŸ΄ λ„€νŠΈμ›Œν¬ ν‘œν˜„ν•˜κΈ°.

$ y=W_{3}^{T}h_2=W_{3}^{T}\rho_2(W_{2}^{T}h_1)=W_{3}^{T}\rho_2 W_{2}^{T}\rho_1(W_{1}^{T}x) $

 

 

식을 톡해 μ‚΄νŽ΄λ³Έ μš©μ–΄μ˜ νŠΉμ§•

  • hidden layer : μ„ ν˜•μ—°μ‚°κ³Ό λΉ„μ„ ν˜•μ—°μ‚°μœΌλ‘œ ꡬ성
  • layer : μ„ ν˜• 연산을 λͺ‡ 번 ν–ˆλŠ”μ§€
728x90