본문 바로가기

Python/개념정리

파이썬) [model] compile 함수

컴파일이란 모델을 학습시키기 위한 학습과정을 설정하는 단계로 compile 함수를 사용하여 설정할 수 있다.

compile 함수는 학습 방식에 대한 환경 설정을 필요로 하는데 아래의 세 개의 인자를 입력으로 받는다.

아래는 compile 함수를 사용한 예시 코드이다.

# 모델 구축하기
model.compile(optimizer='rmsprop',
loss='categorical_crossentropy',   # 최적화 함수 지정
metrics=['accuracy'])

 

1. optimizer(정규화하기)

훈련 과정을 설정하는 것으로 최적화 알고리즘의 설정을 의미한다.

optimizer에는 adam, sgd, rmsprop, adagrad 등이 있으며 코드에서 사용된 rmsprop는 일반적으로 순환 신경망(Recurrent Neural Networks)의 optimizer로 많이 사용된다.

 

※ 다른 optimizer에 대한 설명은 아래 링크를 참고

https://keras.io/ko/optimizers/

 

Optimizers - Keras Documentation

옵티마이저의 사용법 옵티마이저는 Keras 모델을 컴파일하기 위해 필요한 두 개의 매개변수(parameter) 중 하나입니다. from keras import optimizers model = Sequential() model.add(Dense(64, kernel_initializer='uniform', inp

keras.io

 

2. loss function(손실 함수)

예측 값과 실제 값의 차이를 구하는 기준을 의미하는 것으로 머신러닝 모델 학습에서 필수 구성요소이다.

손실 함수로는 mse, categorical_crossentropy, binary_crossentropy 등이 있다.

 

binary_crossentropy는 이진 분류기를 훈련할 때 자주 사용된다.

categorical_crossentropy는 멀티 클래스 분류에 사용된다.

mse는 신경망의 출력과 타겟이 연속 값인 회귀 문제에서 사용된다.

 

※ 참고 자료

https://didu-story.tistory.com/27

 

[딥러닝] 손실함수 (loss function) 종류 및 간단 정리 (feat. keras & pytorch)

시작하며 딥러닝모델 구축 도중 손실함수 때문에 오류가 났다. 아마 손실함수와 활성화 함수의 조합이 맞지 않았던 것 같다. 일단 그래서 이대로는 안되겠다 싶어서 자세한 수식까지는 아니더

didu-story.tistory.com

 

3. metric(평가 지표)

훈련을 모니터링 하기 위해 사용된다.

분류에서는 accuracy, 회귀에서는 mse, rmse, r2, mae, mspe, mape, msle 등이 있다.