신경망 : Matlab은 여러 계층에 대해 서로 다른 활성화 함수를 사용합니다. 이유는 무엇입니까?
나는 matlab 에서 하나의 입력 레이어, 하나의 숨겨진 레이어 및 하나의 출력 레이어가 있는 인공 신경망 을 훈련했습니다 (제 출력은 0과 1 사이의 값이며 0.5의 임계 값에 따라 0 또는 1로 바뀝니다).
나는에 의해 나타났습니다 기본 , MATLAB의 사용 'tansig'전송 숨겨진 계층의 기능을 다음과 출력 계층에 대한 'logsig'전달 함수를 . 누구든지 이것에 대한 설명을 줄 수 있습니까?
미리 감사드립니다!
답변
큰 아이디어는 신경망의 모든 계층이 동일한 활성화 함수를 사용하는 특별한 요구 사항이 없다는 것입니다. 원하는대로 믹스 앤 매치 할 수 있습니다. 즉, 사용을 선호하는 몇 가지 이유가 있습니다.$\tanh$ 히든 레이어의 활성화 함수로 $\sigma$ 출력 기능으로.
그만큼 $\tanh(x)=\frac{\exp(x)-\exp(-x)}{\exp(x)+\exp(-x)}$기능은 표준 활성화 기능입니다. 신경망에서이를 사용하는 것은 회귀 작업의 목적 함수로 최소 제곱을 사용하는 것보다 놀라운 일이 아닙니다.
함수 $\sigma(x)=\frac{1}{1+\exp(-x)}$실수를 (0,1)의 실수 값에 매핑하는 표준 방법입니다. 따라서 일반적으로 확률을 모델링하는 데 사용됩니다. 작업은 0 또는 1을 예측하는 것이므로이 모델을 사용 하면 표본이 1로 레이블이 지정 될 확률 을 모델링 할 수 있습니다.
사용 $\tanh$ 마지막 레이어의 함수는 샘플이 1로 라벨링 될 확률을 모델링하는 것과 명확한 관계가 없기 때문에 믿을 수 없습니다. $\tanh$ -1과 1 사이의 값을 반환하므로 확률이 아닙니다.
원하는 경우 사용할 수 있습니다. $\sigma(x)$활성화 기능으로. 그러나$\tanh$더 강한 기울기를 갖고 양수 및 음수 출력을 제공하면 최적화하기가 더 쉽기 때문에 선호됩니다. 참조 : tanh 활성화 함수 대 시그 모이 드 활성화 함수
그러나 ReLU 및 유사한 기능은 일반적으로 히든 레이어의 활성화 기능으로 선호됩니다. 참조 : 심층 신경망에서 시그 모이 드 함수에 비해 ReLU의 장점은 무엇입니까?
사용할 선택 $\tanh$A와 기본 레거시 코드를 중단하고 예기치 않은 동작이 발생할 수있는 소프트웨어의 기본 동작 변경 : 수학적 원리보다는 소프트웨어 개발 관행에 대한 가능성이 더 많은 것이다. ReLU 유닛 은 MATLAB 시대에 비해 최근에야 인기를 얻었습니다 . Neural Network Toolbox 애드온은 1992 년에 처음 발표되었습니다 (그 이후로 "Deep Learning Toolbox"로 브랜드가 변경되었습니다). 1992 년에 신경망 구축은 다음과 같은 단일 레이어 네트워크와 거의 동의어입니다.$\tanh$ 또는 $\sigma$ 활성화 기능.
그러나이 선택에 대한 타당한 이유 (예 : 릴리스 노트 또는 문서)를 게시하지 않는 한 MATLAB이이 기본값을 선택한 이유에 대한 명확한 설명은 없을 것입니다.