먼저 데이타 set를 준비해야 함. 데이타가 없으면 인공지능은 아무 쓸모가 없음.
위 그림과 같은 손글씨가 있다고 가정.
(실제 인공지능 연습할 때 사용하는 손글씨 갯수는 6만개임)
그리고, 인공지능 모델을 만듬.
요런 식으로 만듬.
그 다음엔 그냥 기계적으로 하면 됨.
1. 학습시킬 데이타 크기를 정함. 예를 들어 D
2. 학습할 횟수를 정함. S
3. 인공지능 연습용 손글씨에서 무작위로 글자 하나를 뽑음.
4. 그걸 입력에 넣음. 그리고 출력을 빼냄.
5. 출력값과 실제 정답을 비교해서 '손실함수'를 계산함.
6. 이 손실함수에 대하여 가중치 및 바이어스를 독립변수로 해서 기울기 구함.
7. 기울기를 구했으면 새로운 가중치와 바이어스를 구함.
8. 이 새로운 값을 사용해서 3번부터 다시 7번까지 함.
9. 이 과정을 S번 함.
끝.
실제론, 시간을 좀 더 절약하기 위해서 다음과 같이 함.
인공지능 모델이 아래와 같이 여러개 겹쳐 놓음.
각 인공지능의 손실함수를 더해서 총손실함수 Loss로 만든다는 게 틀림.
이렇게 계산하는 것을 batch 처리라고 함.
다시 과정을 분해해 보면,
1. 학습시킬 데이타 크기를 정함. 예를 들어 D
2. 학습할 횟수를 정함 S
2. 한번에 계산할 양, 즉 배치 크기를 정함. 예를 들어 N이라고 하자.
3. N개의 손글씨를 랜덤으로 고름
4. 그걸 입력에 넣음. 그리고 출력을 빼냄.
5. 출력값과 실제 정답을 비교해서 '손실함수'를 계산함.
6. 이 손실함수에 대하여 가중치 및 바이어스를 독립변수로 해서 기울기 구함.
7. 기울기를 구했으면 새로운 가중치와 바이어스를 구함.
8. 이 새로운 값을 사용해서 3번부터 다시 7번까지 함.
9. 이 과정을 S번 함.
흔히 epoc이란 말을 하는데, epoc은 훈련데이타를 한번 다 도는 데 걸리는 횟수임.
예를 들어 훈련 데이타 크기가 100이고 배치가 2이라면 epoc은 50임.
배치데이타는 랜덤으로 뽑는데, 만약 배치 크기가 3이라면 아래그림처럼 함.
첫번째 뽑은 배치 데이타는 (빨강색) : 2,4,7
두번째 뽑은 배치 데이타는 (초록색): 1,6,9
세번째 뽑은 배치 데이타는 (파랑색): 1,2,7
.....
'인공지능' 카테고리의 다른 글
7.5 CNN 구현하기 (0) | 2021.08.13 |
---|---|
7.4.4 풀링 계층 구현하기 (0) | 2021.08.12 |
인공지능 개념 파악하기-1/2 (0) | 2021.08.06 |
7.4.3 합성곱 계층 구현하기 (0) | 2021.08.04 |
7.4.2 im2col로 데이터 전개하기 (0) | 2021.08.04 |
댓글