엔지니어가 되고 싶은 공돌이
08. 데이터 본문
1. 입력 값
- 시그모이드 함수를 기준으로 x 값이 너무 크게 되면 기울기가 작아짐 = 학습이 제한됨
- 작은 기울기는 곧 학습 능력이 제한된다는 것을 의미하고 이를 일컬어 신경망에 포화(saturation)가 발생했다고 한다.
- 컴퓨터는 매우 작거나 큰 수를 처리할 때 정확도를 잃을 수 있으므로 매우 작은 수 도 문제가 될 수 있다.
해결방법: 입력 값을 0.0~1.0 사이에 놓이도록 그 크기를 조절한다. 때로는 입력값이 0 이 되지 않도록 작은 값을 더하기 도 한다. 입력 값이 0이면 출력값도 0으로 설정돼 가중치 업데이트 수식에 의한 학습능력이 죽을 수 있기 때문.
2. 결과 값
- 시그모이드 함수의 결과 값 즉, 출력 값은 0.0~1.0 사이의 값을 가진다. (0.0, 1.0의 값을 가지지는 못한다.)
- 목표 값을 도달 불가능한 값으로 설정하지 않도록 주의한다.
만약 도달할 수 없는 값으로 목표 값이 설정되면 신경망을 학습하면 학습할 수록 더 큰 가중치로 잘못 업데이트 된다.
- 0.01~0.99의 값을 일반적으로 사용.
3. 가중치 초기화
- 가중치 초기화시 큰 값을 피해야 한다.
큰 값을 가지는 가중치는 신호를 크게 만들어 활성화 함수에 전달되어 포화를 일으켜 가중치 학습 효과를 떨어뜨리게 할 여지가 분명히 존재하기 때문이다.
- 가중치 초기화는 -1.0~1.0 사이의 임의의 값으로 한다.
- 많은 과학자와 수학자 께서 더 나은 가중치 초기화 식을 찾아 내셨다.
: 노드로 오는 연결 노드의 개수에 루트를 씌운 다음 역수를 취해 얻은 값을 범위로 가중치의 값을 초기화한다.
ex) 100개의 연결노드를 가진다 -> -0.1~0.1 사이의 임의의 값으로 가중치를 초기화.
- 연결노드가 많아지면 신호는 합의 연산을 수행하므로 그 결과 값이 커질 우려가 있어 연결노드가 많아지면 많아질 수록 가중치 크기를 작게해 합 결과가 작게 나오도록 유도한다.
- 가중치의 초기값은 같은 상수로 설정되서는 안되며 절대 0이 되어서는 안된다.
'Artificial Intelligence > Basic Neural Network' 카테고리의 다른 글
09. 간단한 정리 (0) | 2020.01.20 |
---|---|
07. 경사 하강법 및 오차함수 (0) | 2019.12.30 |
06. 역전파(back propagation) (0) | 2019.12.30 |
05. 가중치 학습 (0) | 2019.12.29 |
04. 순전파(forward propagation) (0) | 2019.12.29 |