- keras model 생성
from keras.models import Sequential
model = Sequential() # 설명서를 가지고 온다
네트워크가 학습할 준비가 됐다 !!!
네트워크는 두뇌 역할일뿐, 학습을 위해서는 목표함수와 최적화기가 필요하다.
model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
- keras Network 정의
keras, layers import Dense # 'Dense'라는 '2층'짜리 층을 쌓는다
model.add(Dense(units=64, activation='relu', input_dim=100)) model.add(Dense(units=10, activation='softmax'))
네트워크에 입력을 주면 출력이 하나 나온다.
시그모이드 = 0.0~1 사이의 실수만 출력
❗ 알아둬야 할 세 가지 objective func.
네트워크를 갱신할 어떤 객체 ex. 과외, EBS 와 같은 하나의 수단
딥러닝 모델은 문제를 푸는 최적화 상태를 만들어주어야 함.
따라서 계속해서 적정한 학습률로 맞춰가며 학습을 진행해야한다.
sgd = optimizers.SGD(lr=0.01, decay=1e-6, momentum=0.9, neserov=True) model.compile(loss='mean_squared_error', opimizer=sgd)
# pass optimizer by name. default model.compile(loss='mean_squared_errer',optimizer='sgd')
Objective Function : X를 입력해서 나온 출력 Y'값과 실제 정답 Y 사이의 차이 계산
Optimizer : Y와 Y'의 오차값을 통해 Network 갱신
모델 학습 fit()
model.fit(x, y, batch_size=32, epochs=10)
batch_size
: 가중치 업데이트
→ 메모리용량, 학습 속도에 영향을 미침
epochs
: 학습 반복 횟수, 전체 데이터 샘플의 총 사용 횟수
→ 데이터 수는 정해져있기 때문에, 반복 횟수를 지정해 준다. (정확도 ↑)