NN & MLP란?

seung·2024년 8월 13일

AI 기초

목록 보기
8/14

NN(Neural Network)

인간의 신경망을 모방하고자 하는 시스템이다.
딥러닝을 설명하는 많은 사람들이 인간의 뇌를 모방해서 잘되는 것이라고 말한다.

우리는 날고 싶다고 해서 새를 모방하지는 않는다. 우리가 빠르게 달리기 위해서 치타를 모방하지 않듯이 굳이 인간의 뇌를 닮기 위해 인간을 모방하지 않아도 된다.
그렇기 때문에 딥러닝을 인간의 뇌를 모방한 관점에서 바라보기 보다는 수학적 모델로써 바라보는 것이 더 현명하다.

그러므로 Neural Network는 어떤 우리가 알고자 함수를 행렬연산과, 비선형 연산을 이용해 우리가 정의한 것으로 근사시키는 모델로 정의한다.
ex) 가장 심플한 예시로 선형회귀가 있다. 우리가 구한 y_hat과 y사이의 loss를 구해 그것을 줄여나가는 방향으로 업데이트를 해주면서 최적의 파라미터를 구한다.

그러나 우리가 실제 다루는 모델이 선형 모델일 때도 있지만 m차원 -> n차원으로 모델을 다루고 싶을 때도 있다 그때는 행렬(matrix)를 이용해야 한다.

또한 선형결합을 계속 이용하여 신경망 층을 쌓는다면 여전히 linear하기 때문에 우리는 비선형을 고려할 수 없고, 층을 쌓는 의미가 없어진다. 그래서 activation function을 이용하여 nonlinear transform을 해줘야 한다.(ex ReLU, sigmoid, hyper tangent) 이렇게 뉴럴 네트워크를 사용하면 표현력이 굉장히 커진다는 장점이 있다.

MLP(Muti-Layer Perceptron)

우리는 입력층을 받아 linear,nonlinear transform을 거쳐 hidden vector를 뽑고 다시 transform을 거쳐 출력층을 받는 모델, 즉 1개의 hidden layer가 있는 것을 기본 MLP라고 한다. 몰론 hidden layer를 깊게 쌓은 것도 같은 구조의 다층 MLP구조이다.


각각의 layer가 끝날 때 마다 활성화 함수를 쓰면 더욱 복잡한 모델을 만들 수 있다. 그래서 굉장히 복잡하고 비선형적인 데이터의 내재된 패턴을 배울 수 있게 된다.

Loss Funtion

우리는 모델을 통해 우리가 예측한 값과 실제 값사이의 LOSS를 줄이는 과정을 진행한다. 그 때 우리는 어떠한 loss function들을 사용할 수 있을까?

  • MSE : 기본적으로 많이 사용한다.(오차제곱합)

  • CE(크로스 엔트로피) : 분류문제에서 많이 사용하고 이것은 타겟의 종류가 많든 적든 상관없이 내가 타깃하고 싶은 값을 높이기만 한다면 분류를 잘할 수 있기 때문에 그것을 하기 위해서는 크로스 엔트로피를 사용한다.

  • Probabilistic task(MLE) : 내 모델이 단순히 output이 숫자가 아니라 확률일 때, uncertain 정보를 같이 찾고 싶을 때 사용한다.

0개의 댓글