일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Judge
- Python
- MongoDB
- mariadb
- 토네이도
- ubuntu
- 저지
- spring
- 배열
- Java
- 설치
- 알고리즘
- Framework
- 이클립스
- BAEKJOON
- 오픈한글
- r script
- 연동
- 백준
- 연결
- 자료형
- OrientDB
- online
- 파이썬
- 프레임워크
- AWS
- r
- API
- 자바스크립트
- Tornado
Archives
- Today
- Total
맛동산
미니배치 학습 본문
훈련 데이터에 대한 손실 함수의 값을 구하고, 그 값을 최대한 줄여주는 매개변수를 찾아내는것이 기계학습의 과정.
이렇게 하려면 모든 훈련 데이터를 대상으로 손실 함수 값을 구해야함.
수백 수천만이 넘든 데이터를 대상으로 손실함수를 계산하는 것은 비용적인 문제가 있음.
그럴때 데이터 일부를 추려 전체의 근사치로 이용하는데 이것을 mini batch라고 함
12345678910111213141516171819202122232425262728·¬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 |