신경망 학습///
- 학습 : 훈련 데이터로부터 가중치 매개변수 최적값을 자동으로 획득하는 것.
- 손실함수 : 신경망이 학습할 수 있도록 해주는 지표.
-> 손실함수 결괏값을 가장 작게 만드는 가중치 매개변수를 찾아야 함.
- 종류 : 경사법 ....
- 알고리즘의 구분 : 인간의 개입 정도에 따른 구분
1) 인간 only : 이미지 보기 -> 사람이 생각한 알고리즘 -> 결과
2) 인간 + 기계 :
이미지 보기 -> 사람이 생각한 특징(SIFT, HOG) -> 기계학습(SVM, KNN) -> 결과
3) 기계 only : 이미지 보기 -> 신경망(딥러닝) -> 결과
** "종단간 기계학습" 이라고 불린다
- 기계학습의 데이터 종류
1) 훈련 데이터 : 최적의 매개변수를 찾는데에 사용
2) 시험 데이터 : 찾아낸 모델의 실력 평가 -> for 범용능력 평가
** 공정성 확보를 위해, "임의의" 데이터를 이용해서 평가한다.
- 손실함수
- 사용 개념 : 평균 제곱 오차, 교차 엔트로피 오차
평균제곱오차//
- 사용 값
1) 원-핫 인코딩 : 한 원소만 1로 하고, 나머지 원소들을 모두 0으로 설정하는 경우
2) 신경망의 출력값
- 적용 원리 : (신경망 출력값 - 정답레이블)**2 /2
교차 엔트로피 오차//
- 사용 값 : 위에 있는 값과 동일
-적용 원리 : 정답레이블 * log(신경망 출력값)
** 델타값을 신경망 출력값에 더해줘야 계산이 가능함.
- 미니 배치 학습 :
- 일반적인 배치 학습 : 여러 개의 신경망 출력값들을 한꺼번에 묶어서 계산함.
- 미니 배치 학습 : 여러 개의 데이터들 중에서, 일부 표본을 무작위로 선정한 다음에 학습
손실함수 설정이유//
- 정확도를 사용할 경우 : 매개변수의 미분값이 대부분의 장소에서 0이 됨
-> 손실함수 이용시, 해결! (손실함수는 미분값이 0이 되는 지점이 엄청 적음)
- 손실함수의 값은 매개변수의 값이 조금이라도 변하면 그에 반응하여 연속적으로 변화함
(정확도의 경우엔, 그정도로 변하지 않음. 불연속적으로 띄엄띄엄하게 변함)
-> 계단함수를 활성 함수로 이용하지 않는 이유도 이러한 까닭에 의해서임.
** 손실함수와 활성화 함수는 다르다!!
1) 활성화 함수 : 신경세포간의 신호가 전달될 떄, 어느정도의 막전위가 오는지를 알아야 함.
활성화 함수도 막전위라고 생각하면 편함.
어떤 노드에서 다음 노드로 활성화 되는 확률이 얼마인지를 산출해 주는 일종의 함수.
2) 손실 함수 : 각 노드들마다 설정된 가중치와 편향이 다름.
그 매개변수(가중치, 편향)가 얼마나 적절한지를 판단해주는 함수.
함숫값이 높게 나올수록, 매개변수를 변형해야 함.
손실함수의 방식과 역전파 방식이 대립되는 방식이라고 일단 이해하자
- 사용하는 원리 : 미분
- 종류 : 중심 차분(중앙차분), 차분
** 아주 작은 차분으로 미분하는 걸 "수치 미분"이라고 함.
- 편미분
- 일반적인 방식 : 여러 변수가 있을 경우, 딱 한 변수 제외하곤 모두 고정시킴.
고정시키지 않은 변수만 미분을 해서 값을 대입해줌
- gradient 방식 : 각각의 편미분 값들을 하나의 좌표처럼 정리해서 표현한 것.
- 원리 : 각 지점에서의 gradient값을 구해서, 경사 하강법을 이용해서 최솟값을 향해 이동
** 그러나, 해당 최솟값이 최적(또는 최소)의 값을 항상 가리키지는 않는다.
- 학습률 : 하이퍼파라미터 라고 한다. 얼마나 큰 보폭으로 dradient만큼 옮길것인가?
- 신경망에도 손실함수를 이용한 계산이 가능하다!
- 가중치 값에 따라 결괏값이 있으며, 그 결괏값은 손실함수에 의해 평가된다
- 평가된 손실함수를 미분해버리면 된다!
- 이때, 각각의 함수 결괏값들을 gradient형식으로 받아주면 됨
학습 알고리즘 구현하기//
- 순서 : 신경망 학습을 하기 위함
1) 1단계 - 미니 배치 :
훈현 데이터 중 일부를 무작위로 가져옴 (미니배치의 손실 함숫값을 줄이는 게 목표)
2) 2단계 - 기울기 산출 :
가중치 매개변수의 기울기 구함 (기울기는 손실함수 값을 가장 작게 하는 방향 제시)
3) 3단계 - 매개변수 갱신 :
가중치 매개변수를 기울기 방향으로 조금 갱신
4) 4 단계 - 위의 과정 반복
'기계학습 > [밑바닥부터 시작하는 딥러닝]' 카테고리의 다른 글
3장 신경망 코드들 모음 (0) | 2019.08.06 |
---|---|
2장 퍼셉트론 코드들 모음 (0) | 2019.08.06 |
7장 정리 - CNN (0) | 2019.08.06 |
6장 정리 - 학습관련 기술들 (0) | 2019.08.06 |
1장-3장 정리 - 퍼셉트론~신경망 (0) | 2019.08.06 |