뉴럴 네트워크 - MLP

Heath_Jeong·2021년 3월 7일
0

Ustage Week3 - DL Basic

목록 보기
4/10

Neural Networks

  • 동물의 뇌를 구성하는 생물학적 뉴런 네트워크에서 애매하게 영향받은 컴퓨터 시스템 (실제 인간의 뇌가 역전파가 일어나느냐? 아니라고 봄, 교수님은 실제 뇌와 비슷한 구조가 아니라고 봄)
    • 하늘을 날고 싶다고 해서 비행기가 새처럼 생길 필요는 없음 → 지능을 만들고 싶다해서 인간 뇌구조를 만들 필요는 없음
  • 뉴럴 네트워크는 행렬의 연산을 하고 이것을 비선형으로 바꾸는 연산을 반복하는 함수 근사자

Linear Neural Networks

  • Data : 1 차원의 x, y 데이터 1~N 개
  • Model : y_hat = wx + b
  • Loss : 정답과 예측값 차이의 제곱 평균
  • 경사하강법, optimization variables 업데이트하는 방법
    • loss 를 w 에 대해 편미분하고 이를 lr 과 곱하여 현재 w 에서 뺌.
    • 마찬가지로 b 에 대해서도, loss 를 b 에 대해 편미분하고 이를 lr 과 곱하여 현재 b 에서 뺌.
    • 딥러닝에서는 마지막 층의 w 와 시작점에 대한 영향력을 알기 위해 바로 옆 레이어끼리 편미분하여 각각의 값에 경사하강법 수행

- 적절한 스텝사이즈를 잡아야 함
  • 다차원의 input 과 output 이라면 행렬 연산 수행

- 행렬은 두 개의 벡터 공간을 선형 변환 (연결) 해주는 것으로 이해 가능
  • 딥러닝은 여기서 히든 레이어와 W 를 더 늘려 나감
    • 근데 여기서 선형 결합만 계속 반복하는건 1번의 선형결합과 다를게 없음 → 비선형함수와 결합해서 표현을 극대화한 벡터를 얻어서 다음 스텝 수행

  • Activation functions (비선형 함수)
    • ReLU
    • Sigmoid
    • Hyperbolic Tangent (tanh)
    • 어떤게 제일 좋을지는 문제마다, 상황마다 다름 → 하지만 딥러닝에서는 꼭 써야함

Multi-Layer Perceptron, MLP

loss functions

  • 손실 함수의 목적은 우리가 예측한 값과 실제 값의 차이를 최소화 하는 것
  • 꼭 제곱하는 MSE 를 사용할 필요는 없음, 절댓값을 제곱할 수도 있고, 그냥 절댓값 씌울 수도 있음
    → 아웃레이어에 대응하다가 거기에 적합한 모델이 되버릴 수도 있음
  • 손실 함수가 어떤 성질을 가지고 있고, 이게 왜 내가 원하는 결과를 얻어낼 수 있는지 알아야 함
    1) 회귀 문제에서는 MSE 가 적합
    2) 분류 문제를 생각해보면, 아웃풋은 one-hot vector 가 나옴 (하나만 1이고 나머지는 0)
    → Cross-Entropy 를 사용 → 그 차원에 해당하는 값만 키워줌
    다른 말로 예측 결과 벡터가 다른 값들에 비해 그냥 높기만 하면 됨 → 이것을 수학적으로 표현해주는게 CE
    ⇒ 근데 과연 CE 가 분류 문제 푸는데 최적인가? 고민해보고 판단해봐야 함
    3) 확률적 문제 (Probabilistic Task) 에서는 MLE(최대가능도) 함수를 사용하여 적절한 모수를 추정
  • 사람 얼굴을 보고 나이를 맞추는 문제에서 단순히 나이만 맞추면 회귀 문제
  • 20살일 확률, 30살일 확률 등을 알려준다면 확률적 문제

참조

  • BoostCamp AI Tech
profile
데이터로 문제를 해결하는 엔지니어를 꿈꿉니다.

0개의 댓글