신경망
퍼셉트론으로 복잡한 함수를 표현할 수 있다. 그러나 가중치를 설정하는 작업은 사람이 입력해야 한다.
신경망은 가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습한다.
신경망을 그림으로 나타내면 다음과 같다.
- 입력층 (input layer) - 정보를 넘겨주는 역할
- 은닉층 (hidden layer) - 은닉층은 보이지 않는다.
- 출력층 (output layer) - 넘어온 정보를 계산하는 역할
신경망은 모두 3층으로 구성되지만, 가중치를 갖는 층은 2개 뿐이므로 '2층 신경망'이라 한다.
- 가중치를 갖는 층의 개수 = (입력층 + 은닉층 + 출력층) - 1
활성화 함수 activation function
가중치가 달린 입력 신호와 편향의 총합을 계산하고 이를 y라 한다.
그리고 y를 함수 f( )에 넣어 y'를 출력한다. 이때, f를 활성화 함수라 한다.
즉, 활성화 함수란 입력 신호의 총합을 출력 신호로 변환하는 함수이다.
계단 함수, 시그모이드 함수, ReLU 함수
퍼셉트론에서는 계단 함수를 이용했다면 신경망에서는 시그모이드 함수나 ReLU 함수를 이용한다.
시그모이드 함수와 계단 함수 비교
차이점
- 계단 함수는 0을 경계로 출력이 갑자기 바뀐다. -> 0과 1 중 하나의 값만 돌려준다.
- 시그모이드 함수는 부드러운 곡선이며 입력에 따라 출력이 연속적으로 변화한다. -> 실수를 돌려준다.
공통점
- 둘다 입력이 작을 때의 출력은 0에 가깝고 (혹은 0이고), 입력이 커지면 출력이 1에 가까워지는 (혹은 1이 되는) 구조.
- 입력이 중요하면 큰 값을 출력하고 중요하지 않으면 작은 값을 출력한다.
- 입력이 아무리 작거나 커도 출력은 0에서 1 사이이다.
- 둘다 비선형 함수이다.
ReLU 함수
ReLU는 입력이 0을 넘으면 그 입력을 그대로 출력하고, 0 이하이면 0을 출력하는 함수이다.
비선형 함수
비선형 함수란, 문자 그대로 '선형이 아닌' 함수이다. (선형 함수란, 출력이 입력의 상수배만큼 변화하는 함수이다.)
즉, 직선 1개로는 그릴 수 없는 함수를 뜻한다.
Q. 신경망에서는 활성화 함수로 비선형 함수를 사용해야 하는 이유는?
A. 선형 함수를 이용하면 신경망의 층을 깊게 하는 의미가 없어지기 때문이다.
선형 함수의 문제는 층을 아무리 깊게 해도 '은닉층이 없는 네트워크로'로도 똑같은 기능을 할 수 있다는데 있다.
선형 함수로는 여러 층으로 구성하는 이점을 살릴 수 없기 때문이다.
소프트맥스 함수
소프트맥스 함수의 출력은 0~1.0 사이의 실수이다.
출력의 총합은 1이라는 성질은 갖는다.
이 성질 덕분에 출력을 '확률'로 해석할 수 있다.
참조 - 사이토 고키(2019). 밑바닥부터 시작하는 딥러닝. 서울: 한빛미디어.
'공부 > 딥러닝 (Tensorflow)' 카테고리의 다른 글
오차역전파법 (0) | 2019.10.13 |
---|---|
신경망 학습 (0) | 2019.10.13 |
퍼셉트론 perceptron (0) | 2019.09.26 |
머신러닝 (Machine Learning ) (0) | 2019.09.19 |
인공지능, 머신러닝, 딥러닝의 차이 (0) | 2019.09.19 |