딥러닝은 인공신경망을 토대로 학습하는 방법으로 두뇌의 신경세포인 뉴런을 모델링하여 학습하는 방법이다
뉴런의 입출력구조를 수학적으로 구성한 퍼셉트론 그림
다수의 입력값이 가중치와 곱해져서 얻어진 결과 값이 활성화함수를 거쳐 출력되는 구조
실제 딥러닝은 인간의 수많은 뉴런의 연결 구조를 토대로 뉴런들을 여러개 쌓은 뉴런 네트워크를 구성하여 학습(Multi perceptron)
과거의 인공신경망이 성공하지 못한 이유?
XOR문제
과거의 단층 퍼셉트론을 통한 학습 방법론은 XOR 의 문제를 해결하지 못함으로 인해 인공신경망이 실패였지만 추후에 이 퍼셉트론을 여러개로 이은 Multi Perceptron방법론으로 인해 이 문제가 해결되면서 딥러닝이라는 이름으로 급부상되어 현재까지 인공지능에서 매우 중요한 부분으로 여김
이러한 단층 퍼셉트론의 Xor문제를 해결하기위해 등장한 Hidden Layer와 활성화 함수
Layer1을 입력Layer, Layer2를 히든Layer, Layer3를 출력 Lay라고 함.
딥러닝에서 학습성능을 올리기위해 어떤 활성화 함수를 사용할지, 얼마나 반복학습을 할지, 히든 레이어의갯수, 히든 노드의 갯수등을 적절하게 잘 선택하여 학습을 해야 함.
활성화 함수를 사용하면 입력값에 대한 출력값이 linear하게 나오지 않으므로 선형분류기를 비선형 시스템으로 만들 수 있다
딥러닝 네트워크에서 노드에 입력된 값들을 비선형 함수에 통과시킨 후 다음 레이어로 전달하는데, 이 때 사용하는 함수를 활성화 함수(Activation Function)라고 함.
선형 함수가 아니라 비선형 함수를 사용하는 이유는 딥러닝 모델의 레이어 층을 깊게 가져갈 수 있기 때문
활성화 함수는 입력 데이터를 다음 레이어로 어떻게 출력하느냐를 결정하는 역할이기 때문에 매우 중요하다.즉, 활성화 함수는 입력을 받아서 활성화 또는 비활성화를 결정하는 데에 사용되는 함수
대표적으로 sigmoid, softmax, relu 3개의 활성화 함수가 있음
Sigmoid함수
Softmax 함수
3개 이상의 다중 클래스 분류일때 주로 사용되는 활성화 함수
분류할 클래스가 N개일때, N차원의 벡터를 입력받아 각 클래스의 속할 확률을 구함
소프트맥스 함수는 코드내에 지수함수가 포함되어 값을 매우 확대하는 경향이 있어 지나치게 큰값이 입력되면 연산이 되지않는 오버플로우가 발생 할 수도 있음.
시그모이드 함수에서 파생된 함수인만큼 시그모이드와 같은 문제를 일으키고 추로 마지막 다중 클래스 분류의 마지막 출력층에서 사용되는 활성화 함수
Relu함수