ML & DL

[머신러닝] MLP -2

seouldataprince9877 2024. 9. 8. 17:09

서론 

저번 포스팅에 이어서 이번에는 다층 Perceptron 에 대해 좀 더 기록해보고자 한다. 개인적으로 이런 기술블로그의 좋은점은 내가 학습했던 예전 기억들을 다시 꺼내서 다시 한번 복기하고, 기록하며 덧씌우는 과정이라고 생각한다. 한번에 끝나는 것이 아닌, 내가 현재 투자하고 있는 시간 하나하나, 내용 하나하나가 나의 앞으로의 직무에서 든든한 기본기가 되어줄 것이라고 생각한다.

 

MLP

그렇다면 퍼셉트론을 3개 결합하면 어떻게 될까? 다음 그림처럼 3개의 퍼셉트론을 결합하면 2차원 공간을 7개 영역으로 나누고, 각 영역을 3차원의 점으로 변환한다. -> 그리고 활성함수 t(타우) 로 계단함수를 사용하므로 영역을 점으로 변환할 수 있다. -> 이를 일반화하면, p개의 퍼셉트론을 결합한다면 p차원의 공간으로 변환된다는 점을 발견할 수 있다.

 

 

퍼셉트론은 활성함수에 의해 영향을 많이 받는 만큼, 어떠한 활성함수를 쓰느냐 또한 중요한 문제이다. 계단함수는 출력이 -1과 1만을 가지는 함수로 Hard 의사결정 인 반면, 나머지 활성함수는 Soft 의사결정이 가능하다.

 

 

신경망은 다양한 활성함수를 사용하는데, 위에서 본 Logistic Sigmoid 와 Hyperbolic Tangent 함수는 a가 커질수록 계단함수에 가까워지는 형태를 가진다. 모두 1차 도함수 계산이 빠르다는 특징이 있다. 

-> 정리하면

퍼셉트론은 활성함수로 계단함수를 사용하고, 다층 퍼셉트론은 Logistic Sigmoid 와 Hyperbolic Tangent 함수,

딥러닝은 RELU 함수를 사용한다.

 

 

다층 퍼셉트론 답게 은닉층을 굳이 1층만 두지 않아도 된다. 층이 많은 MLP 또한 존재하며, 이럴때는 입력층 - 은닉층 - 출력층 을 각각 연결하는 매개변수(가중치)가 생기고, 이는 행렬로 표현할 수 있다. 2층 퍼셉트론을 예로 들어 설명한다면 

 

 

- 입력층 - 은닉층 을 연결하는 가중치는 U1으로 표현되고, u뒤의 두개의 숫자들 (예시 : Uji(1) 이라고 하면 입력층의 i번째 노드를 은닉층의 j번째 노드와 연결한다는 의미이다. ) 즉, 순서가 반대로 표시된다.

 

- 은닉층 - 출력층을 연결하는 가중치는 U2로 표기되고, 앞과 동일하다.

 

 

일반화하면, 입력층을 0번째 은닉층, 출력층을 마지막 은닉층이라고 간주했을 때, Uji(k) 은 k-1번째 은닉층의 i번째 노드를 k번째 은닉층의 j번째 노드와 연결하는 가중치라고 할 수 있다.

 

또한, 특징벡터 x를 출력벡터 o로 mapping 하는 함수로 간주할 수도 있다.

2층 퍼셉트론의 기준에서 위 문장을 식으로 표현하면, 왼쪽과 같고, 3층 퍼셉트론은 오른쪽의 식이다.

즉 계속 감싸는 합성함수의 형태를 가지게 된다.

 

 

이 은닉층이 더 많아진다면, 특징벡터 x는 계속해서 은닉층 거쳐 출력벡터 o으로 최종적으로 산출된다. 아래 그림이 바로 MLP를 간략화한 구조이다.

 

 

여기에서 각 노드는 연산을 수행한다.

j번째 은닉노드의 연산을 예로 들어 보겠다.

 

 

여기서 Uj(1)는 j번째 은닉노드에 연결된 가중치 벡터이다. 앞서 표현된 가중치 행렬에서 U1의 j 번째 행인 셈이다.

x로 표현된 특징벡터를 해당하는 가중치와 곱하여 zsumj를 형성하고, 이를 활성함수 ( 여기에서는 Logistic Sigmoid 혹은 Hyperbolic Tangent 함수) 에 적용하여 다음 층으로 넘긴다. 

 

2층 퍼셉트론이라고 가정한다면 다음 층은 출력층일 것이다. 이 출력층에서 k번째 출력노드의 연산을 본다면,

 

 

위와 같이 적용된다. 여기서 z 는 바로 위에서 산출한 은닉노드의 연산 결과 값이다. 이 값이 다시 출력층의 입력으로 들어오고, 이제는U2(k) 의 해당 가중치와 결합하여 산출된 결과 osumk를 다시 활성함수에 넣어서 출력값 o(k)를 구한다.

 

여기서 출력층의 활성함수는 조금 달라질 수도 있는데 내가 기억하는 바로는 이진분류일 경우 그냥 그대로 Logisitic Sigmoid 함수를 사용해도 되고, 만약 다중 클래스 분류의 문제일 경우 softmax 함수를 사용할 수 있다.

softmax 함수는 출력값을 확률 분포로 변환하여 모든 출력 노드의 값이 0과 1 사이에 있도록 만든다.

 

다층 퍼셉트론의 동작을 정리하여 행렬로 표기한다면

이렇다고 할 수 있다.

 

결론

 

은닉층은 특징 추출기이다. 

은닉층은 특징 벡터를 분류에 더 유리한 새로운 특징 공간으로 변환한다. 현대 기계학습에서는 특징 학습 (Feature Leaning) 이라고도 부른다. 사실 딥러닝은 더 많은 단계를 거쳐 특징 학습을 한다.

 

데이터 공간, 혹은 원래 특징 공간인 입력 공간에서 시작하여, 은닉층으로 구성된 특징 공간들을 거치면, 부류 공간이라고도 불리는 출력 공간으로서 특징이 추출되는 원리이다.

 

'ML & DL' 카테고리의 다른 글

[딥러닝] CNN - Convolution State  (0) 2024.10.06
[딥러닝] DMLP  (0) 2024.09.22
[머신러닝] MLP - 3 ( 오류 역전파 알고리즘)  (0) 2024.09.17
[머신러닝] MLP - 1  (0) 2024.09.02