일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준
- BAEKJOON
- API
- Python
- 배열
- 자료형
- 연동
- OrientDB
- 설치
- 알고리즘
- AWS
- 자바스크립트
- 토네이도
- Framework
- Tornado
- spring
- 파이썬
- 이클립스
- MongoDB
- 오픈한글
- Judge
- 연결
- r
- online
- Java
- 저지
- mariadb
- ubuntu
- r script
- 프레임워크
Archives
- Today
- Total
맛동산
미니배치 학습 본문
훈련 데이터에 대한 손실 함수의 값을 구하고, 그 값을 최대한 줄여주는 매개변수를 찾아내는것이 기계학습의 과정.
이렇게 하려면 모든 훈련 데이터를 대상으로 손실 함수 값을 구해야함.
수백 수천만이 넘든 데이터를 대상으로 손실함수를 계산하는 것은 비용적인 문제가 있음.
그럴때 데이터 일부를 추려 전체의 근사치로 이용하는데 이것을 mini batch라고 함
import sys, os sys.path.append(os.pardir) # 부모 디렉터리의 파일을 가져올 수 있도록 설정 import numpy as np import pickle from dataset.mnist import load_mnist from common.functions import sigmoid, softmax def get_data(): (x_train, t_train), (x_test, t_test) = load_mnist(normalize=True, flatten=True, one_hot_label=True) return (x_train, t_train), (x_test, t_test) # normalize = True : 0.0~1.0 사이로 정규화, False : 0~255 사이 값 유지 # flatten = 1차원 배열로 평탄화할지 -> 1*28*28 vs 784 # one_hot_label = True : 정답인 라벨의 원소만 1 [0,0,1], False : 1, 5 등 정답 자체를 저장 (x_train, t_train), (x_test, t_test) = get_data() print(x_train.shape) # (60000, 784) # 이미지 print(t_train.shape) # (60000, 10) # 라벨 #print(len(x_train)) train_size = x_train.shape[0] # 전체 중에 batch_size = 10 # 10개의 데이터를 추출 batch_mask = np.random.choice(train_size,batch_size) # numpy의 random choice 함수를 사용하여 랜덤 선택 인덱스를 반환 print(batch_mask) x_batch = x_train[batch_mask] t_batch = t_train[batch_mask]
예제 코드가 껴있어서 복붙으론 실행이 안되지만
메타 자체는 훈련데이터 70% 검증데이터 30% 추출하던 방식이랑 똑같음
책에는 안나와있는데 검증파트, 오차파트, 미니배치파트를 합쳐봐야겠음
'파이썬 > 딥러닝 구현' 카테고리의 다른 글
수치 미분 구현 (0) | 2017.06.08 |
---|---|
예측 + 미니배치 + 오차 (5) | 2017.06.04 |
MNIST 파라미터 (0) | 2017.06.03 |
평균 제곱 오차, 교차 엔트로피 오차 함수 구현 (0) | 2017.06.03 |
batch (0) | 2017.05.29 |
Comments