PYTHON

20221130 = 딥러닝 복습

K.Y.PARK 2022. 11. 30. 17:07
loss와 metric

loss는 손실율을 측정하는 것이고, metric은 평가지표입니다
loss는 손실함수인데 회귀는 MSE, MAE, 분류는 바이너리와 멀티클래스에 따라 나누어진다.
Metrics는 평가 지표로 분류에는 accuracy가 있다.

이진분류 - binarycrossentropy
다중분류 : 원핫인코딩 - categorical_crossentropy
다중분류 : 오디널 - sparse_categorical_crossentropy
Z-score scaling은 평균을 0으로, 표준편차를 1로 만들고 평균을 이용하여 계산하기 때문에 이상치에 민감하지 않습니다.

Min-Max scaler는 이름 그대로 최솟값과 최댓값을 0과 1로 지정합니다. 이는 정규분포가 아니거나 표준편차가 작을 때 효과적입니다. 하지만 이상치를 포함하고 있다면 범위 설정에 영향이 가기 때문에 이상치에 민감합니다.

Robust scaler는 중앙값을 0으로, 사분위 수를 1로 만들고 중앙값을 이용라기 때문에 앞의 두 정규화 방법들에 비해 이상치에 강합니다.
딥러닝 레이어

층 설정하기

- 신경망의 기본 구성 요소는 layer
- 대부분 딥러닝은 간단한 층을 연결하여 구성됨
- tf.keras.layers.Dense는 가중치는 훈련하는 동안 학습

출력층

- 예측 값이 n개 일 때 : tf.keras.layers.Dense(n, activation='softmax')
- 예측 값이 둘 중 하나일 때 : tf.keras.layers.Dense(1, activation='sigmoid')

학습

class PrintDot(tf.keras.callbacks.Callback):
    def on_epoch_end(self, epoch, logs):
        if epoch % 100 == 0: print('')
        print('.', end='')

- batch = 모델 학습에 한 번에 입력할 데이터셋
- epoch = 모델 학습 시 전체 데이터를 학습한 횟수
- step = 하나의 배치를 학습한 횟수

Dropout

- tf.keras에서는 Dropout 층을 이용해 네트워크에 드롭아웃을 추가할 수 있습니다. 이 층은 바로 이전 층의 출력에 드롭아웃을 적용

Sequential 만들기

- 입력 레이어를 Input 레이어로 사용할 수도 있습니다.  tf.keras.layers.Input(shape=(input_shape))
- 분류와 똑같지만 회귀는 출력을 하나로 합니다.  tf.keras.layers.Dense(1)

모델 컴파일

model.compile(optimizer=optimizer,
              loss='mean_absoluter_error')

- 회귀 = MSE, MAE
- 분류 = binary_crossentropy, categorical_crossentropy, sparse_categorical_crossentropy
복습 과제

선형회귀
loss값

출처 : 멋쟁이사자처럼 AI School 학습자료