[Description]
------------------------------------------------------------------------------------
[다층 퍼셉트론]
퍼셉트론을 여러 층 쌓은 것을 다층 퍼셉트론이라 하며, 일반적으로 신경망이란 다층 퍼셉트론을 의미합니다.
신경망에서 데이터를 받는 부분을 입력층(Input layer)이라고 하며, 신경망의 출력 부분을 출력층(Out layer)이라 합니다.
입력층과 출력층 사이에 있는 층들을 중간층( Hidden layer)이라고 하며 중간층은 1개 이상 존재할 수 있으며, 이 단층 퍼셉트론을 뉴런 또는 노드라고 합니다.
인접하는 모계층의 모든 뉴런이 서로 연결돼 있는 층을 완전연결계층(Fully Connected layer)이라고 하며, 신경망의 종류에 따라서 다양한 형태의 연결이 있을 수 있습니다.
[활성화 함수]
활성화 함수는(Activation Function)는 시냅스와 같은 역할로서 뉴런으로 모아진 정보를 어떻게 다음 뉴런으로 전달할지를 결정하는 역할을 합니다.
위 그림은 뉴런을 한 개 연결한 것입니다.
하나의 뉴런은 간단한 함수밖에 표현할 수 없었습니다.
하지만 뉴런을 여러 개의 충으로 연결한 다층 퍼셉트론은 복잡한 비선형 함수를 표현할 수 있습니다.
뉴런의 가중치와 입력의 시그마(∑)로 계산된 결과는 활성화 함수를 통해 새로운 결과값으로 다음 퍼셉트론의 입력이 됩니다.
활성화 함수로는 아무 함수나 사용하지 않는데요, 활성화 함수가 되기 위한 가장 기본적인 조건은 두가지 입니다.
비선형 함수를 사용해야 하는 이유는 뉴런마다 만약 같은 선형 함수를 활성화 함수로 사용한다면 뉴런을 여러 개 연결해도 아무런 의미가 없어지기 때문입니다.
뉴활성화 함수로 선형 함수 f(x)=x 인 항등 함수를 사용한다고 예시를 들어보면,
그림은 뉴런을 두개 연결한 것 입니다. 위 그림의 출력을 계산해보면,
위 식은 한 개만 연결한 것의 결과입니다.
활성화 함수로 항등함수를 사용하면 뉴런을 두 개 연결한 것과 한 개만 연결한 것의 결과가 같다는 것을 확인할 수 있습니다.
이처럼 활성화 함수로 선형 함수를 이용할 경우 뉴련을 몇백 개 연결하더라도 하나의 뉴런으로 표현할 수 있기 때문에 의미가 없습니다.
그래서 활성화 함수로 비선형 함수를 사용하게 되었습니다.
두 번쨰로 활성화 함수는 미분 가능해야 하는데 다층 퍼셉트론은 델타규칙의 확장인 오차역전파법에 의해 가중치와 편향이 학습됩니다.
델타규칙이 편미분을 이용한 방법이기 때문에 오차역전파법에서도 편미분을 사용하며, 활성화 함수가 미분이 불가능할 경우 델타규칙에 기반한 오차역전파법을 사용할 수 없기 때문입니다.
[자주 사용되는 활성화 함수]
활성화 함수 중에서 가장 오래된 함수로서 함수식과 미분 결과는 다음과 같습니다.
시그모이드 함수의 출력은 0과 1 사이의 s자 모양으로 생긴 것이 특징입니다.
그래서 출력을 확률로 변환하는데 많이 사용됩니다.
시그모이드 함수는 신경망 연구 처기에 활성화 함수로 가장 많이 사용됐지만 신경망에서는 몇가지 단점이
존재합니다.
첫 번째, 미분한 시그모이드 함수를 보면, 입력이 -5보다 크고 +5보다 작은 구간을 제외한 모든 구간에서 출력이 거의 0에 가깝습니다.
이것은 거의 모든 구간에서 델타규칙을 이용하는 가중치의 학습이 거의 이뤄지지 않는 것을 의미합니다.
또한, 미분한 시그모이드 함수의 최댓값은 입력이 0일 때 0.25밖에 안 되기 떄문에 다층 퍼셉트론의 중간층이 3~4개 정도라면 문제가 없었지만 10개의 중간층을 가진 다층 퍼셉트론이 있다면 첫 번쨰 중간층의 가중치는 오차의 0.2510=0.00000095만큼 밖에 학습이 안 되는 경사소실 문제가 발생합니다.
그리고 시그모이드 함수의 출력이 양수뿐이며 평균이 0.5초 편향돼 있기 때문에 학습이 불안정하고 exp(x)를 함수로 사용하기 때문에 계산이 무겁다는 단점이 있어 지금은 많이 사용되지 않는 것으로 알려져 있습니다.
시그모이드 함수를 보완하기 위해 연구된 활성화 함수가 하아퍼볼릭탄젠트이며, 함수식과 미분한 결과는 다음과 같습니다.
하이퍼볼릭탄젠트의 미분 결과도 자기 자신으로 표현 가능합니다.
하이퍼볼릭탄젠트는 출력이 -1 ~ 1 이고 평균이 0이기 때문에, 시그모이드 함수의 출력과 비교해보면 학습 불안정성을 어느 정도 해결한 함수라는 것을 알 수 있습니다. 경사소실 문제를 해결하기 위해 미분한 하이퍼볼릭탄젠트의 출력 최댓값이 1로 커졌다는 것을 알 수 있습니다. 하지만 역시 -5보다 작거나 5보다 큰 범위에서 미분한 하이퍼볼릭탄젠트 출력은 거의 0으로 시그모이드 함수와 차이가 없다는 점에서 시그모이드 함수와 마찬가지로 exp(x)를 사용하고 있기 때문에 계산이 어렵다는 점도 해결되지 않았습니다.
경사소실 문제를 해결하기 위해 등장한 ReLU 함수와 미분형은 다음과 같습니다.
식: f(x)=max(0,x)
ReLU 함수는 입력이 0보다 작은 경우에는 0을 출력하고,0 보다 큰 경우는 항등함수를 사용합니다.
이렇게 되면 미분했을 때 기울기가 1이 되어, 중간층이 100개가 되더라도 오차가 바로 전달되기 때문에 경사소실 문제를 해결하는데 중요한 역할을 하게되었습니다.
게다가 exp(x) 함수도 없어져서 계산에 대한 리소스 부담도 줄어들었습니다.
입력이 0보다 작은 경우는 미분한 값이 0이 되는 문제가 남아있기는 하지만 ReLU함수는 신경망에서 활성화 함수를 대표하는 함수로 자리 잡았습니다.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.