PYTHON
20221129 = 딥 러닝 , Tensorflow
K.Y.PARK
2022. 11. 29. 16:52
딥 러닝
dropout = 일부 노드를 제거하고 사용하는 것
왜 dropout을 사용하는가? = 과대적합(과적합, 오버피팅)을 방지하기 위해 일부 노드를 제거하고 사용하는 것
optimizer = 오차가 최소가 되는 지점을 찾기 위한 optimizer, 기울기, 방향, learning rate를 고려
loss = 손실을 측정
metrics = 평가지표
import numpy as np
smax = tf.nn.softmax(predictions).numpy()
np.sum(smax)
tf.nn.softmax 함수는 다음과 같이 이러한 로짓을 각 클래스에 대한 확률로 변환
losses.SparseCategoricalCrossentropy를 사용하여 로짓의 벡터와 True 인덱스를 사용하고 각 예시에 대해 스칼라 손실을 반환하는 훈련용 손실 함수를 정의
이 훈련되지 않은 모델은 무작위에 가까운 확률(각 클래스에 대해 1/10)을 제공하므로 초기 손실은 -tf.math.log(1/10) ~= 2.3에 근접해야 함
Model.evaluate 메서드는 일반적으로 "Validation-set" 또는 "Test-set"에서 모델 성능을 확인
Tensorflow cheatsheet
층 구성 tf.keras.sequential()
tf.keras.input() = 입력층
tf.keras.layers.Dense() = 은닉층
tf.keras.layers.Dense() = 출력층
활성화 함수 (Activation)
linear = 디폴트 값
relu = 은닉층에 주로 사용
sigmoid = 이진 분류 문제
softmax = 다중 클래스 분류 문제
컴파일 model.compile()
model.compile(optimizer, loss, metrics)
- optimizer = SGD, RMSprop, Adam
- loss = 회귀 (MSE), 분류 (binary_crossentropy, categorical_crossentropy, sparse_categorical_crossentropy)
- metrics = 분류 (accuracy, AUC), 회귀 (MAE, MSE)
요약 model.summary()
model.summary()
- Layer
- Output Shape
- Param
학습 model.fit()
model.fit(X_train, y_train, epochs)
tf.keras.callbacks.history()
- acc = 훈련 정확도
- val_acc = 검증 정확도
- loss = 훈련 손실값
- val_loss = 검증 손실값
예측 model.predict()
model.predict(x_test)
평가 model.evaluate()
model.evaluate(X_test, y_test)