활성화 함수,
즉 무언가 활성한다는건데 이 행위의 목적이 뭘까
활성화 함수를 사용해야하는 두 가지 이유가 있다.
첫째, 데이터에서 복잡한 패턴을 배워야 한다
복잡한 패턴은 데이터가 방대하다는 뜻이고 그 변화도 아주 다양해서 숫자 식별하는 상상을 할 때처럼 작은 변화를 줄 수 있다.
1과 7의 차이가 그리 크지 않듯.
우리의 뇌는 본능적으로 물체를 인식하는데 효율적으로 빠르게 식별한다.
둘째, 비선형성
1과 7의 경계선에 대해 말했는데, 이제 숫자가 더 많다고 가정해보자.
클래스가 너무 다양해서 복잡한 방법이 필요한데,
기본적으로 비선형 기능으로 입력값을 받아서 우리가 원하는 출력을 만들어 낸다.
선형 매핑 함수가 아니라 의사 결정 경계가 여러 요인에 따라 달라진다.
그래서 인공 신경망에서는 활성화 함수(activation function)를 사용하여 비선형성을 도입했고,
대표적인 활성화 함수로는
ReLU(Rectified Linear Unit), 시그모이드(sigmoid), tanh(tangent hyperbolic) 등 이있다.
위에 대표적인 활성화 함수 4가지가 있다.
ReLU가 CNN에서 가장 널리 사용되고 있다.
ReLU 내용을 보면 입력이 양수일경우 그대로 출력, 음수일 경우 0을 출력한다.
다시 ReLU 를 확인해보자
긍정적인 건 그대로 두고 부정적인 건 전부 0으로 바꾸는 특징을 갖고있다.
그러면 이 ReLU를 수학적으로 어떻게 적용하는지 보자.
Feature Map이 활성화 함수인 ReLU를 적용시키니까 특성해도 부정적인 건 전부 0으로 바꾸었다.
Feature Map의 검은 부분들이 부정적인 음수 값이고
하얀 부분이 양수 값인데,
ReLU를 적용시키면서 검은색 값들이 전부 0 변경됐다.
근데 여기서 검은색 : 0 흰색 : 255 일때
음수값이 나오게 되면 역으로 255 로 넘어가서 오히려 밝아진다는 내용을 공부한 적이 있다.
그런데 음수 값의 시각화로
음수 값을 포함하는 특징 맵을 시각화할 때는 음수 값, 양수 값, 그리고 0을 구분하기 위해 특정 색상 매핑을 사용한다.
그래서 ReLU를 적용해서 0이된 검은색 값들이 회색을 띄는 이유이다.