맛동산

미니배치 학습 본문

파이썬/딥러닝 구현

미니배치 학습

오지고지리고알파고포켓몬고 2017. 6. 3. 22:54

훈련 데이터에 대한 손실 함수의 값을 구하고, 그 값을 최대한 줄여주는 매개변수를 찾아내는것이 기계학습의 과정.

이렇게 하려면 모든 훈련 데이터를 대상으로 손실 함수 값을 구해야함.

 

수백 수천만이 넘든 데이터를 대상으로 손실함수를 계산하는 것은 비용적인 문제가 있음.

그럴때 데이터 일부를 추려 전체의 근사치로 이용하는데 이것을 mini batch라고 함

 

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
·¬
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]¬
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

예제 코드가 껴있어서 복붙으론 실행이 안되지만

메타 자체는 훈련데이터 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