Day 3: Chapter 3. 왜 우리는 인공 신경망을 공부해야 하는가? (Part I)

2023. 2. 22. 23:35딥러닝 이론

오늘의 공부: Ch 3-1에서 3-5까지

 

내용이 많아서 바로 시작 할께요~

 

TIL...

 

오늘 배운 내용들:

- weight & biases in DL

- linear regression

- gradient descent

- weight initialization (LeCun, Xavier, He)

- stochastic gradient descent

 

1. Weights and biases:

  • 인공 신경망은 input layer -> hidden layer -> activation layer -> output 으로 이뤄져 있다.
  • Input은 x로 표현하고 최종 결과는 y hat(prediction)이다.
  • Hidden layer의 구조는 상황에 따라 다르게 쓸 수 있고 deep learning을 돌리다 보면 거기에 있는 weights and biases는 저절로 계산이 되는 과정이다. Deep learning model을 training완료하고 이 weights and biases를 잘 저장해 놓으면, 그 알고리즘은 저장됐고 다른 사람 하고도 공유하여 활용이 가능하다.
  • 한 노드에서 다른 노드에 가는 과정에서 x * w + b = next_x가 되어 이어가면 된다.
  • Activation은 prediction / output이 나오기 전에 정리를 해주는 함수이다. 예를 들어 Linear function (y=x), unit step function, Sigmoid, ReLU등이 있다.

2. Linear regression (선형회귀):

 

Linear regression이란 인풋데이터에 대해 error를 최소로 줄이는 "선"을 그리는 것이다.

 

그럼 뭐 할 때 쓰이는데?

회귀는 데이터에 의존해 처음 보는 입력에 대해서도 적절한 출력 (prediction) 을 얻기 위함이다.

간단한 input -> activation function -> output로 만들면 선형회귀가 되는거다.

공식은 x * w + b이다. 하지만 여러 노드와 레이여가 있으면 선형회귀 뿐만 아니라 아주 intricate한 곡선을 만들 수 있다.

Weights and biases의 update에 따라 선이 곡선으로 변하고 더 정확한 prediction을 해낼 수 있다. weights가 올라가면 slope가 조금 꺾인다고 생각 할수 있다. 밑에 있는 그림을 참고해 주세요. Non-linear regression에서 graph가 꺾일 수 있는 것은 그 weights and biases의 결과이다.

Weights and biases을 update하려면 loss function이 필요하다. Loss function은 error를 최대한 줄일 수 있는 함수이다. 강의에서 언급한 MSE (mean squared error)는 선형회귀의 일종이다.

 

Mean squared error는 낱개의 error=y-y_hat를:

  1. 제곱해 준다 -> 제곱을 안하면 error_1=-1, error_2=1같은 상황은 Loss가 없는걸로 계산되서 update할께 없다. 여기서 absolute value를 안쓰는 이유는 제곱이 더 민감하기 때문이다 (이는 그래프를 보면 어느정도 알 수 있다)
  2. 그리고 n개의 (error)^2들을 합해서 n으로 나눈다... 그 이유는 n으로 안나누면 숫자가 너무 커지는 이유가 있다

3. Gradient descent vs stochastic gradient descent: 

GD는 고질적인 문제 2개가 있다:

  • 너무 느리다... (모든 error를 신중하게 계산 해야 하니)
  • Local minimum에 빠질 수 있다... 빠지면 나오질 못한다...
  Gradient descent Stochastic gradient descent
특징 Epoch마다 모든 error에 대해 전부 계산한다 낱개의 error를 "주머니"에서 꺼내고 그것으로 loss를 계산한다
문제 1 (완화 방안 1) 계산이 느리다 계산이 빠르다
문제2 (완화 방안 2) 항상 Local minimum에 빠질 수 있다... 빠지면 나오질 못한다... 낱개의 error를 loss로 계산하니 신중하진 않고 '튀'는 현상이 있다.

 

4. Weight initialization은 쉽게 말해 일반적으로 0으로 쓰면 local minimum에 빠질수 있어 random initialization이 필요하다. 자세한 수학적 정의는 LeCun, Xavier, He라는 3연구자의 핵심연구에 의한 발견이다.

감사합니다~