딥러닝 학습 순서
model.fit(x_train, y_train)
1. 가중치 초기값을 할당한다. (초기값: 랜덤)
2. 예측 결과를 뽑는다.
3. 오차를 계산한다. (loss function)
4. 오차를 줄이는 방향으로 가중치를 조절한다. (optimizer: GD, Adam)
-얼마만큼 조절할 것인지 : learning_rate (학습률, 보폭)
5. 다시 처음으로 가서 반복한다. (epoch)
[1] 모델 설계
# 메모리 정리
clear_session()
# Sequential 모델 만들기
model = Sequential( Dense( 1 , input_shape = (nfeatures ,), activation= 'sigmoid') ) # outputlayer activation ='sigmoid'
# 모델요약
model.summary()
1) input_shape = ( , ) : 분석단위에 대한 shape
- 1차원: (feature 수, )
- 2차원: (rows, columns)
2) output
- 예측 결과가 1개 변수 (y가 1개 변수)
3) layer 여러 개: 리스트[ ]로 입력
- hidden layer
-input_shape는 첫 번째 layer만 필요!
-activation: 활성함수 필요! (보통 relu 사용)
- output layer
- 예측 결과가 1개
4) Activation Function (활성화 함수)
hidden layer -> 선형함수를 비선형 함수로 변환
output layer -> 결과 값을 다른 값으로 변환해 주는 역할
[2] compile + 학습
model.compile(optimizer = Adam(lr=0.01), loss = 'binary_crossentropy') # 이진분류 모델 손실함수 (loss function)
history = model.fit(x_train, y_train,
epochs = 50, validation_split=0.2).history
1) loss function(오차함수)
- 오차 계산을 무엇으로 할지 결정
- mse: mean squared error, 회귀모델은 보통 mse로 오차 계산
2) optimizer
- 오차를 최소화하도록 가중치를 조절하는 역할
- optimizer = 'adam' : learning_rate 기본값 = 0.001
3) epochs
- 가중치 조정 반복 횟수
- 전체 데이터를 몇 번 학습할 것인지!
4) validation_split = 0.2
- train 데이터에서 20%를 검증 셋으로 분리
[3] 학습 결과 그래프
dl_history_plot(history)
[4] 예측 및 검증
pred = model.predict(x_val)
# activation이 sigmoid --> 0 ~ 1 사이의 확률값.
# 그러므로 cut-off value(보통 0.5)를 기준으로 잘라서 0과 1로 만들어 준다.
pred = np.where(pred >= .5, 1, 0)
print(confusion_matrix(y_val, pred))
print(classification_report(y_val, pred))
요약
- ReLU : 좀 더 깊이 있는 학습을 시키기 위해
- 이진분류/ sigmoid : 결과를 0,1로 변환하기 위해
- 다중분류/ softmax : 각 범주에 대한 결과를 범주별 확률 값으로 변환
구분 | Hidden Layer - Activation |
Output Layer - Activation |
Output Layer -Node 수 |
Compile - optimizer |
Compile - loss |
Regression | relu | x | 1 | adam | mse |
2-Class | relu | sigmoid | 1 | adam | binary_crossentropy |
Multi-Class | relu | softmax | Class수 | adam | sparse_categorical_crossentropy categorical_crossentropy |
'KT AIVLE' 카테고리의 다른 글
KT AIVLE(KT 에이블스쿨) 5기 DX트랙_ 딥러닝 심화_언어 모델 이해 (1) | 2024.04.20 |
---|---|
KT AIVLE(KT 에이블스쿨) 5기 DX트랙_ 딥러닝 심화_실습 및 언어 모델 활용 (2) | 2024.04.18 |
KT AIVLE(KT 에이블스쿨) 5기 DX트랙_ 딥러닝 심화_실습 (2) | 2024.04.17 |
KT AIVLE(KT 에이블스쿨) 5기 DX트랙_ 딥러닝 심화_시각지능 (0) | 2024.04.16 |
KT AIVLE(KT 에이블스쿨) 5기 DX트랙_ 딥러닝 기초_CNN (0) | 2024.04.15 |