본문 바로가기
AI

[AI] 딥러닝 핵심 개념 요약 정리

by Lcoding 2025. 6. 6.
반응형

안녕하세요, 개인 공부한 내용을 정리하는 게시글입니다.

 

딥러닝 핵심 개념 요약 정리

 

1. 인공신경망 (ANN: Artificial Neural Network)

- 딥러닝의 시작: 인공신경망

  • 로지스틱 회귀를 여러 개 쌓은 구조
  • 이미지 등 입력값은 보통 입력 / 255.0으로 정규화
  • 숫자 스케일링은 중요하지만, 이미지에서는 단순 나누기만 해도 충분함

2. 딥러닝 기본 구조 in Keras (TensorFlow 기반)

from tensorflow import keras

model = keras.Sequential()  # 모델 구조 정의
model.add(keras.layers.Dense(units=100, activation='relu'))  # 은닉층
model.add(keras.layers.Dense(units=10, activation='softmax'))  # 출력층 (다중 분류)

 

3. 모델 구성 단계

단계 설명
Sequential() 층을 순차적으로 쌓는 모델
compile() 손실 함수, 최적화 함수, 평가 지표 지정
fit() 모델 학습 (입력/타겟, 에포크 수)
evaluate() 성능 평가
summary() 모델 구조, 파라미터 수 등 요약
 

- 손실 함수 선택 예시

문제 유형 손실 함수
이진 분류 'binary_crossentropy'
다중 분류 'categorical_crossentropy'
정수형 클래스 다중 분류 'sparse_categorical_crossentropy'
회귀 'mean_squared_error'
model.compile(
    loss='sparse_categorical_crossentropy',
    optimizer='adam',
    metrics=['accuracy']
)

 

4. 심층 신경망 (DNN)

- 은닉층 추가로 모델 확장

model = keras.Sequential()
model.add(keras.layers.Flatten(input_shape=(28, 28)))  # 2D → 1D 변환
model.add(keras.layers.Dense(100, activation='sigmoid'))
model.add(keras.layers.Dense(10, activation='softmax'))
model.summary()

 

 

  • Flatten: 2D 이미지를 1D 벡터로 변환
  • Dense: 완전 연결 계층

 

5. 옵티마이저 (Optimizer)

이름 특징
SGD 고전적, 학습률 수동 지정
Adagrad 희소 데이터에 유리, 학습률 자동 조정
RMSprop RNN에 효과적, 최근 그래디언트 반영
Adam 대부분의 상황에서 좋은 성능 제공 (기본값 추천)

 

model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

 

 

6. 활성화 함수 비교

 

함수 함수
sigmoid 이진 분류용, 0~1
softmax 다중 분류용, 전체 합이 1
relu 은닉층 기본값, 음수는 0 처리
 

7. 과적합 방지 기법: 드롭아웃 (Dropout)

  • 학습 중 일부 뉴런의 출력을 0으로 만들어 과적합 방지
keras.layers.Dropout(0.3)  # 30% 드롭

 

8. 콜백 함수 (Callback)

종류 설명
ModelCheckpoint 가장 성능 좋은 모델 저장
EarlyStopping 성능 향상이 멈추면 조기 종료

 

checkpoint_cb = keras.callbacks.ModelCheckpoint('best-model.h5', save_best_only=True)
early_stopping_cb = keras.callbacks.EarlyStopping(patience=2, restore_best_weights=True)

model.fit(..., callbacks=[checkpoint_cb, early_stopping_cb])

 

9. CNN: 합성곱 신경망 (Convolutional Neural Network)


- CNN 전체 구조

입력 → 합성곱층(Conv2D) → 풀링층(MaxPooling2D) → 밀집층(Dense)

10. 합성곱(Conv2D) 레이어

keras.layers.Conv2D(10, kernel_size=(3,3), activation='relu', padding='same', strides=1)

 

개념

용어 설명
패딩 입력 테두리를 0으로 채움
same 출력 크기 유지
valid 패딩 없이 계산
스트라이드 필터 이동 거리 (기본 1칸)

11. 풀링(Pooling) 레이어

  • 차원 축소 + 위치 불변성 강화
  • 최대풀링(MaxPooling2D) / 평균풀링(AveragePooling2D)
keras.layers.MaxPooling2D(pool_size=2)

 

12. RNN: 순환 신경망 (Recurrent Neural Network)


- 피드포워드 vs 순환신경망

 

구분 설명
피드포워드 입력 → 출력으로만 정보 전달
RNN 이전 출력(상태)을 기억하고 다음에 전달 (타임스텝 활용)
 

대표 예시: LLM 모델 (단어 예측)

  • "나는 학교에" → "간다" 예측

13. RNN 내부 구조

  • tanh 함수 사용: 출력 범위 -1 ~ 1
  • 시그모이드와 유사하지만 대칭적
  • 단어 표현은 원핫 인코딩 대신 임베딩 레이어 사용
keras.layers.Embedding(input_dim=10000, output_dim=16)

- LSTM과 GRU 셀

셀 종류 설명
LSTM Long Short-Term Memory. 장기 기억 유지
GRU Gated Recurrent Unit. LSTM보다 간단하면서도 효과적

 

- 전체 흐름

(train_input, train_target), (test_input, test_target) = keras.datasets.fashion_mnist.load_data()
train_scaled = train_input / 255.0

model = keras.Sequential()
model.add(keras.layers.Flatten(input_shape=(28, 28)))
model.add(keras.layers.Dense(100, activation='relu'))
model.add(keras.layers.Dropout(0.3))
model.add(keras.layers.Dense(10, activation='softmax'))

model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

checkpoint_cb = keras.callbacks.ModelCheckpoint('best.h5', save_best_only=True)
early_stopping_cb = keras.callbacks.EarlyStopping(patience=2, restore_best_weights=True)

model.fit(train_scaled, train_target, epochs=20, validation_split=0.2, callbacks=[checkpoint_cb, early_stopping_cb])

 

 

- 딥러닝 구조 요약

             ┌────────────────────┐
             │ 인공신경망 (ANN)   │
             └──────┬─────────────┘
                    ↓
        ┌──────────────┬──────────────┐
        ↓                             ↓
   DNN (심층신경망)           CNN (합성곱신경망)
                                    ↓
                              RNN (순환신경망)
                                  ↓
                           LSTM, GRU (기억 강화)

 

감사합니다.

반응형

loading