- Published on
밑바닥부터 시작하는 딥러닝 | 신경망
- Authors
- Name
- 박준열 | Eric Park
신경망 Neural Network
- 퍼셉트론의 문제점
- 1층 퍼셉트론으로는 선형분리 외의 문제를 해결할 수 없음 (XOR)
- MLP: 층을 늘리면 해결 가능
다층 신경망
층이 총 세개로 구성이 되어있지만, 가중치를 갖는 층은 입력층과 은닉층 두개이기 때문에 위 그림은 2층 신경망이다.
활성화 함수 h(x)
입력 신호의 총합을 출력 신호로 변환하는 함수
활성화 함수의 처리 과정을 기존 퍼셉트론에 추가한다면
활성화 함수의 종류
계단 함수 (Step Function) - 0을 기준으로 출력값이 갑자기 변화
시그모이드 함수 (Sigmoid Function) - 0과 1 사이의 연속적인 출력 - 미분이 가능하다
ReLU (Rectified Linear Unit) 함수 - 입력이 0 이하이면 0을 출력 - 입력이 0 이상이면 입력을 그대로 출력
항등 함수 (Identity Function) - 출력층에서 사용하는 활성화 함수 - 입력을 그대로 출력
소프트맥스 함수 (Softmax Function)
클래스 분류를 위해 마지막 출력값을 정규화 하는 함수
모든 결과 수치의 합을 1.0으로 만들어 주기에 각 클래스에 대한 확률로써 수치화하기에 좋음
분자는 입력 신호의 지수 함수
분모는 모든 입력 신호의 지수 함수의 합
소프트맥스 함수를 적용해도 각 원소의 대소 관계는 변하지 않음
계단 함수와 시그모이드 함수의 차이
차이점 1
- 시그모이드는 부드러운 곡선이며 입력에 따라 출력이 연속적으로 변화
- 계단 함수는 0을 경계로 출력이 갑자기 변화
차이점 2
- 시그모이드는 0과 1 사이의 실수를 반환
- 계단 함수는 0 아니면 1 둥 중 하나의 값 반환
공통점
- 입력이 작을 때 출력은 0 입력이 커지면 출력이 1이 되는 구조
- 입력이 아무리 작거나 커도 출력은 0에서 1 사이의 값
- 비선형 함수
- 직선 하나로는 그릴 수 없는 함수
퍼셉트론과 신경망의 차이
- 뉴런이 여러 층으로 이어지는 구조나 신호 전달 방법은 같다
- 활성화 함수가 계단 함수가 아닌 다른 함수로 변경
- 신경망에서는 계단 함수가 아닌 시그모이드 함수를 사용한다
지도학습 Supervised Learning
분류 Classification
- 미리 정의된 클래스 중 하나를 예측하는 것
- 스팸메일 / 정상메일 분류
- 손글씨 분류
- (0, 1, ..., 9)
- 출력층에서 소프트 맥스 함수 사용
- 미리 정의된 클래스 중 하나를 예측하는 것
회귀 Regression
- 연속적인 수를 예측하는 것
- 기상데이터로 내일 기온 예측
- 공부시간으로 성적 예측
- (10점, 11.5점, 27점, 등등)
- 출력층에서 항등 함수 사용
- 연속적인 수를 예측하는 것
출력층의 뉴런 수 정하기
- 출력층의 뉴런 수는 풀려는 문제에 맞게 적절히 정해야 함
- 분류에서는 분류하고 싶은 클래스 수로 설정하는 것이 일반적
- 숫자 손글씨 이미지를 0~9로 분류하는 문제라면 출력층의 뉴런은 10개
- 분류에서는 분류하고 싶은 클래스 수로 설정하는 것이 일반적