[인공지능 기초] 6. ANN(Artificial Neural Network)

2021. 10. 10. 01:58인공지능/인공지능 기초

지난 번에 Perceptron을 배우고, 그 한계점을 알아보았다. 단층 퍼셉트론은 표현력에 있어서 선형으로 분류가 힘든 문제를 풀지 못하는 한계가 있었다. 끝! 인공지능 bye~

가 아니고!! ㅎㅎ..한 층이 안된다면 여러 층을 쌓으면 되지 않을까? 종이 하나로는 맞아도 안 아프지만 백과사전으로 맞으면 아픈 것처럼 말이다!


1. MLP(Multi Layer Perceptron)

그게 바로 Multi Layer Perceptron이다. 말 그대로 layer를 1개가 아닌 여러 개를 쌓음으로써 비선형적인 공간으로 문제를 매핑시키는 것이다.

 

 

예전 수업 중에 더 직관적인 설명이 있었는데,

레이어의 수가 증가할 수록 기준선이 증가(분류를 하는 잣대의 개수)하고, 유닛의 수가 증가할 수록 그 안에서의 디테일이 더해지는 것이라 한다. 정말 DNN이 그렇게 학습하는 지는 모르지만 어느정도 reasonable한 설명인 것 같아 덧붙인다.  

 

이렇게 여러 층을 쌓다보니 문제가 하나 또 생겼다. layer가 거듭될 수록 차원은 커지고, 그에 해당하는 gradient를 구해서 학습을 시켜주어야하는데....미분을 구하는 연산량이 어마무시하다...

 

여기서 히어로 Back propagation의 등장이시다! back propagation은 간단하게 말해서 cost를 뒤에서 앞으로 전달하면서 미분의 chain rule을 통해 gradient를 구하는 것이다. 

 

2. Back Propagation(역전파)

역전파를 다시 설명하자면, 미분의 chain rule과 그 편미분을 이용하여 forward propagation을 통해 얻은 오류(cost)를 다시 역(back)으로 전파하여 gradient를 구하는 방법이다. 

 

이 방식을 사용하면 정말 빠르고 효율적이게 gradient를 구할 수 있게 된다.

back propagation이 어떻게 동작하는지 간단하게 알아보자.

 

2.1 Back Propagation의 과정

stanford cs231강의 예제

 

  1. 제일 마지막에 있는 노드부터 계산한다. 예에서는 cost f를 g와 b에 대해서 편미분.
    • f는 g+b이므로 g와 b에 대한 편미분은 모두 1이 된다.
  2. 이제 그 전 노드로 이동하여  w와 x에 대한 편미분을 구해준다.
    • g = w*x이므로 w에 대한 미분은 x, x에 대한 미분은 w가 된다.
    • 하지만 이렇게 구한 미분은 $\frac{\sigma g}{\sigma w}$이다.
    • chain rule을 사용하면 좌측에 쓰여져있는 것 같이 표현되고, cost에 대한 x, w의 gradient를 구할 수 있게 된다.
  3. 2번을 맨 처음 노드로 올 때까지 반복해주면 끝.

오늘은 MLP와 Back Propagation에 대해서 공부해보았다! 역전파는 처음 본다면 어려운 개념일 수 있다. 하지만 쉬운 예제로 연습하다보면 어떻게 동작하는지 이해할 수 있을 것이다.