본문 바로가기

Etc../인공지능 연구동향

[인공지능 연구동향] Neural_Networks_학습_방법과_이슈

Neural Networks 학습 방법과 이슈

신경망은 Gradient기반의 optimization기법 사용

  • gradient는 각 input에 따른 output의 변화량을 나타낸다.

Gradient descent recap

  • optimization 진행

  • gradient를 계산하고 그 반대 방향으로 업데이트를 진행한다.

  • 너무 큰 learning rate는 loss값을 발산시킨

  • 너무 작으면 학습속도를 지나치게 느리게 하고 global minima에 도달하는데 어려움을 겪을 수 있음

  • 딥러닝의 학습을 가능하게 만드는 주요 알고리즘이다.
  • 어떤 종류의 smooth enough한 function에서도 잘 동작
  • 특정 조건에 따라 non-smooth function에서도 업데이트 가능
  • local optimum에 빠지는 문제가 흔하게 발생하고 이를 해결한 많은 변형 버전이 존재

Overfitting

  • 일반적으로 우리는 트레이닝 데이터로 학습을 진행하고, 모델이 우리의 네트워크가 본적이 없는 데이터로 테스트를 진행
  • 처음 본 데이터가 들어왔을때 우리 모델이 얼마나 잘 처리할 것이냐에 가깝다.
  • 트레이닝 데이터에 대해서 학습하고 모델을 키우고 로스를 줄여나가는 과정을 반복하다 보면 이론상 트레이닝 로스를 점점 줄여나갈 수 있다.
  • 하지만 모델에 학습을 진행하면 어느정도 구간까지는 trainning arrow와 test arrow가 서로 감소
  • 너무 적으면 적어서 예측을 정확하게 하지 못한다(underfitting)
  • 반대로 너무 많으면 모델이 너무 복잡한 부분을 고려하여 예측을 하려고 하기 때문에 예측을 정확하게 하지 못한다(overfitting)
  • 모델의 표현력이 지나치게 복잡하지 않고 최대한 간단한 형태로 유지되도록 해야한다.



Regularization

  • overfitting을 방지하고 모델을 최대한 간단하게 유지하기 위한 기법

  • 일반적으로 lp regularization, dropout, data augmentation, early stopping등 다양한 normalization 기법들을 사용한다.

  • lp regularization

$$
L(W) = \frac{1}{N}\sum_{i=1}^NL_i(f(x_i,W),y_i)+\lambda R(w)
$$

  • 현재까지 다루고 사용했던 loss는 data loss
  • data loss를 줄이는 방향으로만 가면 네트워크가 트레이닝 데이터에 대해서만 신경을 쓰고 복잡한 표현력을 가지게 될 가능성이 있음.
  • data loss를 계산한 후에 L1,L2와 같은 규제를 적용하면 모델이 지나치게 복잡해지는 것을 완화시켜 줌



dropout

  • forward pass에서 임의의 뉴런을 사용하지 않는 기법
  • 일반적으로 50%의 확률로 사용하지 않음
  • 모든 뉴런의 특징을 사용하지 않고 부분적인 특징들로 학습을 할 수 있도록 만들어줌
  • 새로운 데이터가 들어왔을 때 네트워크가 반응을 잘 할 수 있도록 도와줌



Data Augmentation

  • 학습시킬 때 변형을 주어 trainning data set에 존재하지 않는 데이터에 대해서도 네트워크가 처리를 할 수 있도록 만들어 줌

  • 기본적으로는 로테이션, 클럽, 플립 등 다양한 transformation을 적용하여 진행

  • MixUp : 2개의 이미지를 섞어서 다양성을 줌

  • CutOut 이미지의 특정 부분을 0으로 만들어 활용

  • CutMix : MixIp과 CutOut을 섞은 형태, 이미지 특정 부분에 다른 클래스 이미지를 넣어 augmentation 진행

  • 이러한 기법은 다양한 dataSet에 대해 좀 더 우리 네트워크의 성능을 높일 수 있음을 증명함



Early stopping

  • 일정 시점 이후로 로스가 계속해서 증가한다면 거기서 학습을 멈춰버리는 것



Diagnosing and Debugging

  • 뉴럴 네트워크를 학습시키는 것은 까다로울 수 있다.
  • 학습 초기에 학습이 잘 진행되고 있는지 계속 확인할 필요가 있다.
  • 해결하고자 하는 문제와 dataSet에 따라 적합하게 initialization을 진행해야 한다.
  • 적합하게 되었고 네트워크 구성과 설정이 올바르게 되었다면 적은 샘플에 대해서는 빠르게 overfitting이 이루어져야 한다
  • 항상 trainning loss가 올바른 방향으로 줄어들고 있는지 살펴볼 필요가 있다.
  • loss가 줄어들지 않거나 explode하다면 learning rate또는 initialization에 문제가 있을 수 있다.
  • weight가 적당한 비율로 업데이트되고 있는지 항상 확인해야 한다.



신경망의 한계점

$$
f(x,z) = <x,z>
$$

  • x와 z라는 인풋이 들어왔을 때 두개의 inner product를 표현할 수 없다.
  • 신경망은 아주 가깝게 approximate를 할 뿐 완벽하게 표현할 수 있지는 않다.
  • 이러한 한계를 해결하고자 Multiplicative interaction을 사용하는 연구가 최근 진행되고 있다.




참고 : K-MOOC 인공지능 연구동향 - 중앙대학교 김영빈 교수님