ROKO

What is Neural Networks? 본문

Artificial Intelligence/Machine Learning

What is Neural Networks?

RO_KO 2023. 3. 6. 13:07
728x90

Neural Networks(NN, 신경망)

  • 인간의 두뇌가 인식하는 과정을 모방하여 만든 모델이다.

Neuron

denderites(수상돌기)에서 입력을 전달 받아 axon(축삭돌기)를 통해 시냅스로 전달된다. 만약 시냅스의 신경전달물질이 임계점을 넘어가면 다른 뉴런으로 전달된다. 이 과정을 machine learning model들과 비교해보면 유사한 과정을 거치고 있다는 것을 알 수 있다.

 

우리의 뇌는 이러한 뉴런을 \(~10^11\)개 정도 가지고 있고, 각 뉴런은 \(~10^4\)개의 서로 다른 뉴런과 연결되어 있다.

 

Neural Net

Mulilayer perceptrons

  • a directed acyclic graph
  • feed-forward neural network

하나의 층이 아닌 여러층이 겹겹히 쌓인 형태를 다층 퍼셉트론이라고 한다.

행렬로 표현하자면 input이 M개이고 output이 N개 일때, MXN 행렬로 표현된다.

 

그리고 최종 output은 \(y=f(x)=\phi (Wx+b)\) 형태이다.

 

다층 퍼셉트론은 난제였던 XOR 문제를 손쉽게 해결한다. 

기존 domain의 공간을 새로 정의한 공간으로 매핑하고 거기서 선형 경계를 통해 값들을 분류한다. 기존 AND, OR, NAND gate들의 조합으로 XOR을 구현할 수 있게 된 것이다.

 

MLP에 쓰이는 activation function들을 살펴보자.

활성화 함수 각각의 장단점은 나중에 자세하게 작성해보도록 하겠다.

지금은 여러 활성화 함수가 있다는 사실만 알고 있으면 될 것 같다.

 

Neural network 는 분류나 회귀를 목적으로 하는 모델이다. 분류나 회귀를 하려면 각 class의 feature를 알고 있어야하는데, 이 관점에서 feature learning이라고도 불린다.

Expressive Power

신경망은 universal function approximator일까? 사실 여러 층의 perceptron이 쌓여있다고해도 각 perceptron을 행렬로 표현하여 행렬곱셈을 진행하면 하나의 행렬이 된다. linear regression과 크게 다른점이 없다는 뜻이다.

universal function approximator라면 함수를 근사할 수 있어야하는데 mlp는 함수의 근사가 아닌 각 함수값을 기억하는 overfitting형태가 될 것이다. 근사를 하기에는 실수범위 값을 모두 기억해야하므로 의미가 없다.

 

하지만 MLP의 각 layer에 nonlinear activation function을 추가한 형태라면 universal function approximator가 될 수 있다. 비선형 활성화함수로 인해 MLP가 하나의 행렬로 의미되지 않고 비선형을 잘 표현할 수 있기 때문이다.

 

그렇지만 모델이 복잡해질수록 이또한 overfitting이 될 확률이 높다. 우리는 compact represntation을 원한다.

 

Backpropagation

Loss function을 정의하여 역전파를 통해 parameter값을 조정한다면 좀 더 compact하게 표현할 수 있지 않을까? 그리고 overfitting을 막기 위해 regularization term을 추가한다면 일반화도 표현할 수 있다.

 

일반적인 MLP의 computational graph는 fan-out > 1 인 형태로 다음 그림과 같다.

  • computational cost

forward 과정과 backward 과정을 살펴보면 forward에서는 add-multiply operation이 한번만 수행되면 되지만 backward에서는 multivariate chain rule을 이용해 각 layer마다 최소 2번씩 연산을 수행하여 2배만큼 더 cost가 든다.

 

MLP의 연산량은 layer에 linear하며 각 layer units개수들에 qudratic하다. 현재 딥러닝, 머신러닝 분야에서 역전파 알고리즘이 optimization process를 지배하고 있다. 물론 이외에도 다양한 기법이 있지만 현재로서는 가장 많이 채택되는 방식이다.

여기서 논쟁점이 있는데, 신경망은 사람이 신경전달 과정을 분석하여 근사시킨 모델이다.

  • 하지만 역전파 과정의 사람의 뇌 운용방식에 해당되지 않는다.
  • 그럴듯한 대안들은 역전파보다 성능이 좋지 않아 쉽게 적용하지 못하는 상황이다.
  • 단점으로도 볼 수 있는 부분은 feed-forward, backward 과정이 순차적으로 진행된다는 것이다. 

이를 연결해서 한번에 할 수 있게 된다면 딥러닝의 연산속도를 획기적으로 줄일 수 있게 될 것이다. 관심이 있다면 더 깊게 공부해보는게 어떨까. 관련 논문으로는 forward foward algorithm[link]이 있다.

728x90

'Artificial Intelligence > Machine Learning' 카테고리의 다른 글

MLOps  (0) 2023.03.10
PCA (Principal Component Analysis)  (0) 2023.03.06
Is validation necessary?  (0) 2023.02.28
How many data need for ML model?  (0) 2023.02.28
Comments