인공지능은 대체로 linear를 이용해 가중치를 표현한다. 이는 선형적이어서 아무리 여러 가중치를 쌓아도 완전하게 표현하지 못하는 데이터가 존재한다. 이를 해결하기 위해 활성화 함수라는 것이 등장했다.

1. 개념

활성화 함수는 하나의 층(노드1)에서 나오는 가중치를 다음 층(노드2)로 보낼 때 각 가중치에 적용하는 함수이다.

신경망은 기본적으로 선형 변환( $y=Wx+b)$를 통해 데이터를 처리하는데, 이는 아무리 많은 층을 쌓아도 선형 함수의 조합은 결국 하나의 선형 함수(연립방정식)가 되므로, 복잡한 비선형 문제를 해결 할 수 없다.

활성화 함수는 선형 변환 결과에 비선형성을 적용시켜, 신경망이 복잡하고 비선형적인 패턴까지 학습, 표현할 수 있도록 한다.

이는 대개 0~1의 값을 띄며, 입력 신호의 총합이 특정 임계치를 넘을 때만 뉴런을 활성화 해 다음 층으로 신호를 전달하는 역할을 한다. (퍼셉트론의 계산 함수와 같이)

2. 어떻게 작용하는가

$Output = f(W \cdot X + b)$

  1. 선형 변환 ( $y = W \cdot X +b)$: 이전 층의 출력(벡터 X)에 가중치(W)를 곱하고 편향(b)를 더하는 선형 계산
  2. 활성화 함수 적용( $f(Z)$) : 선형 결과 Z에 비선형 함수 f 적용

효과

  1. 다층 구조 효과

    f(x) = x 는 아무리 쌓아도 $W_3(W_2(W_1X+b_1)+b_2)+b_3)$ 와 같아 결국 $W'X+b'$ 형태의 하나의 선형 함수가 된다.

    하지만 비선형 함수를 적용하면, 각 층이 서로 다른 비선형 변환을 수행해 복잡한 곡선 형태를 만들 수 있다.

  2. 정규화 및 스케일링

    일부 활성화 함수(sigmoid, tanh)는 출력값을 특정 범위(0~1, -1~1)로 출력을 압축해 다음 층의 입력값 크기가 너무 크거나 작아지는 것을 방지하는 효과도 가진다.

    다만, 위 두 함수는 Gradient Vanishing(가중치 소실) 문제를 가진다.

    가중치 소실은 모델이 깊어질 수록(여러 번 활성화 함수를 거칠수록) 정규화한 값이 여러 번 활성화 함수를 거치면서 값이 지극히 0에 가까워지는 현상이다

3. 주요 활성화 함수의 종류

은닉층

출력층