[인공지능] 케라스 기초 - 모델 컴파일

참조


모델 컴파일(compile)

  • 모델을 구성한 후, 사용할 손실함수(loss), 옵티마이저(optimizer를 지정)
model.compile(loss='sparse_categorical_crossentropy',
              optimizer='sgd'
              metrics=['accuracy'])

loss

  • keras.lossess.sparse_categorical_crossentropy 등과 같이 지정 가능
    • sparse_categorical_crossentropy
      • 클래스가 배타적, 즐 MNIST 예제에서 (0,1,2,...,9) 와 같은 방식으로 구분되어 있을 때 사용
    • categorical_cross_entropy 클래스가 원-핫 인코딩 방식으로 되어 있을 때 사용

      원-핫 인코딩 은 단어 집합의 크기를 벡터의 차원으로 하고, 표현하고 싶은 단어의 인덱스에 1의 값을 부여하고, 다른 인덱스에는 0을 부여하는 단어의 벡터 표현 방식입니다. 이렇게 표현된 벡터를 원-핫 벡터라고 합니다.

    • binary_crossentropy 이진 분류를 수행할 때 사용

optimizer

  • keras.optimizer.SGD() 등과 같이 사용 가능
    • 보통 옵티마이저의 튜닝을 위해 따로 객체를 생성하여 컴파일
  • keras.optimizer.Adam() 도 많이 사용
optimizer = keras.optimizer.SGD(learning_rate = 1e-5)
model.compile(...,
              optimizer=optimzer,
              ...)

metrics

  • 성능 지표, 모니터링할 지표
  • 주로 accuracy, acc 로도 가능

컴파일 설정 예시

  • 평균 제곱 오차 회귀 문제
model.compile(loss = 'mse',  
              optimizer = RMSprop(),  
              metrics=['mae'])
  • 이진 분류
model.compile(loss = 'binary_crossentropy',  
              optimizer = RMSprop(),  
              metrics=['accuracy'])
  • 다항 분류
model.compile(loss = 'categorical_crossentropy',  
              optimizer = RMSprop(),  
              metrics=['accuracy'])

모델 훈련, 평가 및 예측

  • fit() 함수
    • train_data(학습데이터), train_label(데이터의 정답)
    • epochs
    • batch_size
    • validation_data
  • evaluate() 함수
    • 테스트 데이터
  • predict() 함수
    • 임의의 데이터를 인자로 넣어 예측 가능
728x90

이 글을 공유하기

댓글

Designed by JB FACTORY