일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 패스트캠퍼스
- 알버트
- SKT
- 패스트캠퍼스후기
- 한번에끝내는Java/Spring웹개발마스터초격차패키지
- 패캠챌린지
- 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online.
- 직장인자기계발
- albert
- 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지
- 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online
- AI
- R
- 직장인인강
- Today
- Total
제주 탈출 일지
인공지능 이론(5주차) - 경사하강법과 오차역전파법 본문
5주차 부터 올리는 이유는 게을러서 공부를 안했기 떄문이다. 천천히 짬날떄마다 이전 주차 강의들에 대한 정리를 올릴 예정이다.
이전차시 복습
신경망 학습의 지표 : 손실 함수
신경망 학습은 가중치와 편향과 같은 최적의 매개변수를 찾아나가는 과정이다.
손실함수를 작게 만드는 매개변수 값을 찾아나감.
-> 손실 함수에 대해서 미분함.(가중치를 조금 변화시켰을 때 손실함수가 어떻게 변하는 가?)
손실 함수의 미분 값은 손실 함수의 기울기와 같다고 말할 수 있겠다.
경사하강법(Gradient Descent)
그래서 기울기를 통해 최소인 지점을 찾는 경사하강법이라는 하나의 방법이 제시된다.
(손실 함수 그래프의 전체적인 모양은 알 수 없지만 현재 위치의 순간 기울기는 알 수 있음.)
기울기 방향으로 조금씩 내려가면 기울기가 0인 지점에 다다를 수 있을 것이다. (물론 그래프 이 포물선처럼 간단하지 않다..)
학습률은 현재 지점에서 다음지점으로 얼마나 큰 보폭으로 이동할 것인지에 대한 정보(얼마나 세세하게 학습할 것인가?)
학습률에 따라 얼마나 빨리 최소값을 찾아나가는데 영향을 준다.
학습률이 너무 크면 지그재그로 학습하는 경우 발생하고 너무 적으면 최적인 가중치를 찾는데 너무 많은 시간이 소요되게 된다.
변수가 여러 개라고 해도 경사 하강법의 원리는 동일하다. 위 그래프에서 많은 변수들이 존재 하겠으나, 매 가중치 업데이트마다 변수를 수정하는 방식으로 손실함수의 최소값을 찾아나가게 된다.
경사하강법의 문제점 :
지역 최소값(Local Minima) 문제에 빠질 수 있다. 실제로는 손실 함수의 그래프가 매우 복잡하기 때문
-> 유일 최소값을 찾기가 어렵다.
그래프를 보면 실제 손실 함수가 최소가 되는 부분이 급격하게 기울기가 변하는 구간에 존재한다. 학습률이 해당 구간보다 크다면, 최소값을 찾지 못하고 지역 최소값에 머무르게 될 것 이다.
확률적 경사 하강법(SGD)
: 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것
이전까지 나왔던 내용에 미니배치가 추가하였다. 10,000 개의 데이터에서 100개씩 미니 배치 사이즈를 설정하면,
1에폭은 100번의 학습이 이루어지는 것이다.
오차역전파법
입력값을 순전파 방향으로 계산하면 결과물이 도출된다. 지도학습에서는 결과물과 결과물에 대한 답을 알고 있고, 두개 값의 차이를 손실함수를 통해 계산하게 됨. 그 손실함수 값이 최소로 되는 값으로 매개변수를 업데이트 한다.
그런데 손실함수 값에 영향을 주는 것은 입력값이 아닌 결과값과 가장 가까운 층부터 알 수 있다.
따라서 반대로 값을 변화시켜 나가게 된다.
(참고 편미분 : 다변수 함수에서 특정 변수를 제외한 나머지 변수를 상수로 생각하여 미분하는 것)
미분의 연쇄법칙
: 합성 함수의 미분은 합성함수를 구성하는 각 함수의 미분의 곱.
위 그림을 보면 f = g + b, 즉 합성함수로 구성되어 있는 것을 확인할 수 있다.
w, x, b를 입력이라고 하면 g는 f에 대한 정보가 없기 때문에 f에 대한 각 변수들의 미분값을 구할 수가 없다.
따라서 마지막 노드인 f에서부터 f를 g와 b에 대해서 편미분을 한다. 그럼 f를 g로 미분한 미분값은 1이고, b로 미분한 미분값 또한 1이다.
그 후 g 노드로 가서 g를 w에 대해서 미분한 값과, x에 대해서 미분한 값을 구한다.
df/dg * dg/dw = df/dw이므로, f에 대한 w의 미분값이나, x에 대한 미분값 또한 구할 수 있게 된다. 이렇게 역으로 값을 갱신해 나가면서 우리가 원하는 변수들에 대한 미분값을 구하게 된다.
오늘 포스팅에서 중요한 것 : 경사하강법, 손실함수를 줄일 수 있는 역전파에 대한 이해(미분의 특성, 각각의 노드는 멀리 있는 노드에 대한 정보를 알기 어려움)
'인공지능' 카테고리의 다른 글
인공지능 이론(3주차) - 신경망 학습 이론 Ⅰ (0) | 2020.11.07 |
---|---|
인공지능 이론(2주차) - 머신러닝과 딥러닝 (0) | 2020.11.07 |
인공지능 실습(6주차) - 모델을 구성하고 학습하기 1 (0) | 2020.10.10 |
인공지능 이론(6주차) - 학습 관련 기술 1 (0) | 2020.10.09 |
인공지능 실습(5주차) - 이미지와 openCV (0) | 2020.10.01 |