22.03.21 퍼셉트론(Perceptron)과 DNN / Activation Function / FFNN, RNN과 FC=Dense layer

2022. 3. 21. 16:18카테고리 없음

인공신경망(Artificial Neural Network)는 수많은 머신 러닝 기법 중 하나이다. 인공신경망을 복잡하게 쌓아올린 딥러닝(Deep Learning = DNN) 이 성능이 좋아지면서 전통적인 머신러닝과 딥러닝을 구분해서 이해해야 한다는 의견이 나오면서 두 분야의 이름을 달리 부른다고 한다. 먼저 초기의 인공 신경망인 퍼셉트론에 대해 알아보자.

 

Perceptron : 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘. 실제 뇌의 신경세포 뉴런에서 따왔다. 

뉴런은 가지돌기에서 신호를 받아들이고 이 신호가 일정치 이상의 크기를 가지면 신호를 전달한다.

단층 퍼셉트론(Single Layer Perceptron)과 다층 퍼셉트론(Multi Layer Perceptron)이 있다.

아래 그림은 기본적인 단층 퍼셉트론의 그림이다.

x 는 입력값, W는 가중치, y는 출력값. W값이 크면 해당 입력값이 중요(영향을 크게 미친다)하다는 것을 의미.

각 입력값이 가중치와 곱해져서 인공 뉴런(파란동그라미)에 보내지고, 각 입력값과 그에 대항되는 가중치의 곱(+b)의 전체 합이 임계치(threshold)를 넘으면 인공 뉴런은 출력 신호로서 1을 출력하고, 그렇지 않을 경우에는 0을 출력한다.

이렇게 활성화를 시키는 가장 기본적인 함수를 계단 함수(Step function)이라고 한다.

Activation Function : 뉴런에서 출력값을 변경시키는 함수. 임계치를 넘으면 출력 신호 생성하는 함수. (ex. step function, sigmoid, ReLU, softmax 등)

 

다층 퍼셉트론 Multi Layer Perceptron(MLP) : 간단한 단층 퍼셉트론이 해결하지 못하는 문제(XOR만 해도)를 해결하기 위해 입력층(input layer), 출력층(output layer) 뿐 아니라 중간에 은닉층(hidden layer)가 존재하는 퍼셉트론이다.

 

심층 신경망 DNN(Deep Neural Network) : 은닉층(hidden layer)가 2개 이상인 신경망. 

 

순방향 신경망 FFNN(Feed Forward Neural Network) : 다층 퍼셉트론(MLP) 중에서 오직 입력층에서 출력층 방향으로만 연산이 전개되는 신경망

순환 신경망 RNN(Recurrent Neural Network) : hidden layer의 출력값을 output layer로도 보내지만 동시에 다시 input으로도 사용된다. 순차데이터 처리에 사용됨.

전결합층 Fully Connected layer = FC = Dense layer : 어떤 층의 모든 뉴런(파란동그라미)가 이전 층의 모든 뉴런과 연결돼어 있는 층(layer). 예를 들어 다층퍼셉트론 MLP는 hidden layer과 output laye에 있는 모든 뉴런은 바로 이전 층의 모든 뉴런과 연결돼 있다. 즉 DNN에 있는 모든 hidden layer과 output layer는 FC이다. FC라고 줄여부르기도 하고 Dense Layer라고 부르기도 한다. 케라스에서는 Dense()라는 함수가 존재한다.