[강의노트] KDT_day11_260120

딥러닝

by 아르떼

XOR 문제 -> 단층 퍼셉트론으로는 해결할 수 없음.

은닉층을 추가하여 다층 퍼셉트론을 만들면 XOR 문제를 해결할 수 있다.


model = keras.Sequential([

layers.Dense(1, input_shape=(2,), activation="sigmoid")

])

# layer가 하나인 모델. input_shape = 입력 데이터의 크기. activation 함수는 "sigmoid"


model.compile(optimizer=keras.optimizers.SGD(learning_rate=0.1),

loss="binary_crossentropy",

metrics=["accuracy"])

# 최적화 방법은 SGD(Stochastic Gradient Descent) 학습률은 0.1, 손실함수는 binary_crossentropy,

# 학습지표는 accuracy



모델 : 은닉층 1개 + 출력층인 경우

model = keras.Sequential([

layers.Input(shape=(2,)),

layers.Dense(2, activation="tanh"), # 은닉층: 2개 뉴런(핵심)

layers.Dense(1, activation="sigmoid") # 출력층

])

# layers.Dense를 써서 모델 안에 층을 쌓는다.


활성화 함수가 시그모이드 함수일 때 기울기 소실 문제가 발생.

기울기 소실 문제 : 여러 층을 거칠수록 기울기가 0에 가까워져서 가중치를 수정하기 어려워짐.

기울기 소실 문제를 해결하기 위해 여러 활성화 함수를 도입.

시그모이드 함수, 렐루 함수, 하이퍼볼릭 탄젠트 함수, 소프트플러스 함수


고급 경사 하강법

확률적 경사 하강법(Stochastic Gradient Descent, SGD)

전체 데이터 중에서 무작위로 하나를 뽑아 기울기를 계산. 전체 기울기를 확률적으로 추정해서 파라미터를 업데이트.

모멘텀(Momentum)

과거의 기울기를 누적해 관성처럼 사용함으로써, SGD를 빠르고 안정적으로 만드는 기법이다. 이전까지의 이동 방향을 관성처럼 기억해서 일관된 방향은 더 빠르게, 흔들림을 줄여준다.

RMSProp (Root Mean Square Propagation)

파라미터마다 학습률을 자동으로 조절. 기울기 변화가 큰 파라미터는 천천히, 작은 파라미터는 좀 더 빠르게. RMSProp은 최근 기울기 크기의 RMS로 학습률을 자동 조절하는 최적화 기법이다.

Adam(Adaptive Moment Estimation)

Adam은 모멘텀과 RMSProp을 결합해, 각 파라미터마다 "방향+속도"를 자동으로 조절하는 최적화 알고리즘이다.

1차 모멘트 (Momentum) = 기울기의 지수 이동 평균, 방향과 관성 담당

2차 모멘트 (RMSProp 계열) = 기울기 제곱의 지수 이동 평균, 학습률 자동 스케일링 담당


소프트맥스 함수

다중 분류 문제에서 사용. 각 정답값일 확률을 산출해주며, 각 정답 마다 예측 확률을 다 더하면 1이 된다.

작가의 이전글[북리뷰] 5. 로얼드 호프만,<같기도 하고 아니..>