딥러닝 - 9

CYSSSSSSSSS·2023년 9월 6일
0

딥러닝

목록 보기
9/12

overfitting(과적합)

  • 훈련 데이터에 특화된 학습을 하게 되어 새로운 데이터에 대한 예측이 오히려 나빠지거나 학습이 효과가 나타나지 않는 상태
  • 충분한 데이터 확보 (데이터가 부족한 경우를 해소)
  • Dropout / Ensemble
  • Batch Normalization
  • L1,L2 Regularization
  • Data Augmenation

Dropout

  • 지정된 확률의 개수만큼 노드를 랜덤하게 제외하고 학습을 진행
  • 완성된 모델에서는 모든 노드를 사용
  • 너무 많은 데이터를 제공해도 학습이 잘안되는 부작용이 있다.
H = tf.keras.layers.Dropout(0.2)(H)

Ensemble

  • 여러가지 모델을 사용하여 예측하여 과적합을 방지

Batch Normalization

  • scale 을 맞춰서 input 하여 데이터 의 과적합을 방지한다
  • 표준정규화 하는 계층
  • batch 단위로 정규화 하고 , 이동 평균값을 구한다.
H = tf.keras.layers.BatchNormalization()(H)

sparse_categorical_crossentropy

  • 다중 분류 손실 함수로 훈련 데이터가 정수 형태로 다중 분류 클래스 일때
    사용한다.
X = tf.keras.Input(shape = [28,28])
H = tf.keras.layers.Flatten()(X)
H = tf.keras.layers.Dense(64 , activation = 'swish')(H)
Y = tf.keras.layers.Dense(10 , activation = 'softmax')(H)
model = tf.keras.Model(X,Y)
model.compile(loss="sparse_categorical_crossentropy" , metrics="accuracy")
model.summary()

함수 대체 가능

X = tf.keras.Input(shape=[784])
H = tf.keras.layers.Dense(120, activation=tf.keras.activations.swish)(X)
H = tf.keras.layers.Dense(84, activation=tf.keras.activations.swish)(H)
Y = tf.keras.layers.Dense(10, activation=tf.keras.activations.softmax)(H)
model = tf.keras.Model(X, Y)
model.compile(loss=tf.keras.losses.categorical_crossentropy,optimizer=tf.keras.optimizers.Adam(),metrics=tf.keras.metrics.categorical_accuracy)
  • activatoion = activations
  • loss= losses
  • optimizer = optimizers
  • metrics = metrics
  • 문자열을 함수화 로 바꿀수 있다.
  • 대문자는 클래스 소문자는 함수이다.

Early Stopping

  • overfitting 이 발생 할때 멈추기 전 최적의 모델을 적용한다.
tf.keras.callbacks.EarlyStopping(
	monitor = 'val_loss',
    min_delta = 0
    patience = 10,
    restore_best_weights = True
early = tf.keras.callbacks.EarlyStopping(monitor = 'val_loss' , patience = 10 ,restore_best_weights=True)
result = model.fit(x_train , y_train , epochs = 50 , batch_size = 128 , validation_split = 0.2 , callbacks=[early])

ResNet

  • 100 layer dltkddml rlvdmsakd
  • skip connection
  • residual learning building block
  • pre-activation 구조
  • 깊은망 학습의 표준 모델이 됨
tf.keras.layers.Add()([H,H1])
profile
개발자 되고 싶어요

0개의 댓글