딥러닝 모델 (DNN, Deep Neural Network)

장채민·2025년 7월 22일

🔴 Feedforword network

: 정보가 입력층에서 출력층으로 한 방향으로만 흐름.

1. MLP (Multi-Layer Perceptron)

  • 가장 기본적인 신경망 구조로, Fully Connected Layer(완전 연결층)로 구성됨
  • 각 층의 뉴런이 이전 층의 모든 뉴런과 연결 (Dense Layer)
  • 비선형 활성화 함수 (ReLU, Sigmoid 등)를 사용하여 복잡한 패턴 학습 가능
  • 주로 구조가 단순한 데이터(표 형식 데이터, 간단한 분류 문제) 처리에 사용됨

구성 요소:

  • 입력층(Input Layer): 데이터 입력
  • 은닉층(Hidden Layer): 비선형 변환 및 학습 수행. Fully Connected Layer.
  • 출력층(Output Layer): 최종 예측값 도출

활용 분야:

  • 기본적인 분류(Classification) → 숫자 인식(MNIST), 질병 예측
  • 회귀(Regression) → 가격 예측, 날씨 예측
  • 기본적인 특징 학습 → CNN, RNN 등에 포함되어 사용됨

한계점:

  • Fully Connected Layer로 구성되어 있어 파라미터 수가 많음 → 연산량 증가
  • 이미지, 시계열 데이터 처리에는 비효율적 (특징 학습이 어려움)
  • 과적합(Overfitting) 가능성이 높음

2. CNN (Convolutional Neural Network) - 이미지 처리 특화

📏 출력 크기 계산 공식

✏️ CNN 계산 원리

📦 1. 기본 원리: 필터 = 패턴 감지기

  • CNN의 필터는 작은 크기의 가중치 행렬
  • 이 필터를 이미지 위에서 슬라이딩하면서, 입력 이미지의 특정 부분과 내적(dot product)을 수행

🧬 2. CNN이 학습하는 과정

실제 CNN에서는 사람이 위 필터를 직접 만들지 않음

👉 대신, 필터의 값(가중치)을 학습!

초기에는 필터가 "무작위 값"임

하지만 학습을 반복하면서:

어떤 필터는 "수직선"에 민감해지고

어떤 필터는 "둥근 윤곽"에 민감해지고

어떤 필터는 질감이나 반복 패턴에 반응하도록 조정됨

즉, CNN은 데이터 안에서 자주 나타나는 패턴을 자동으로 “탐지기”로 만들어냄.

3. 🪜 계층적 구조

CNN은 필터를 여러 층으로 쌓음.

1층: 엣지, 선, 방향

2층: 모서리, 패턴

3층 이상: 눈, 얼굴, 사물의 형태

마치 사람 눈처럼 저수준 → 고수준 특징을 순차적으로 학습해 나가는 구조

🧱 CNN의 핵심 블록: Convolution → ReLU → Pooling

🎯 전체 구조 요약

[입력 이미지]
   ↓
[Convolution] : 특징 추출
   ↓
[ReLU] : 비선형성 부여
   ↓
[Pooling] : 정보 압축 + 특성 유지
   ↓
[다음 층 반복]

1️⃣ Convolution (합성곱)

📌 역할

이미지의 지역적인 특징(엣지, 선, 질감 등)을 필터(커널)로 감지

🧮 작동 방식

입력 이미지 위에서 작은 필터를 슬라이딩하며 내적 연산

각 위치마다 특징 맵(feature map) 생성

📷 예시

입력: 32×32×3 (컬러 이미지)

필터 크기: 3×3×3

→ 출력: 30×30×1 (특징 맵 하나)

여러 개의 필터를 쓰면 → 출력 채널 수(깊이)가 늘어남

2️⃣ ReLU (Rectified Linear Unit)

📌 역할

비선형성 부여 (이미지 특징을 더 잘 구분하기 위해)

음수 값을 0으로, 양수는 그대로 유지

ReLU(x) = max(0, x)

✅ 이유

만약 CNN 전체가 선형 연산만 했다면, 아무리 많은 층을 쌓아도 결국 선형 결과만 나옴 → 의미 없음

ReLU는 그걸 깨고 복잡한 패턴도 학습할 수 있도록 함

3️⃣ Pooling (서브샘플링, 다운샘플링)

📌 역할

특징 맵을 더 작게 줄이면서 (압축)

중요한 정보는 유지

연산량 줄이고, 불변성(invariance)도 증가

🧮 종류

종류설명
Max Pooling윈도우 내에서 최댓값만 남김 (가장 흔함)
Average Pooling윈도우 내 평균값을 남김

🔁 반복 구조

이 세 개는 보통 한 블록처럼 계속 반복돼:

[Conv → ReLU → Pool] → [Conv → ReLU → Pool] → ...

✅ 요약

단계 이름 역할

1 Convolution 이미지에서 특징 추출

2 ReLU 비선형성 부여, 학습력 증가

3 Pooling 정보 압축, 위치 불변성 증가

❓ 왜 CNN(Convolutional Neural Network)을 사용하는가?


1️⃣ 공간적 특징 추출에 특화

  • 이미지 내 엣지, 선, 모서리, 질감 등 지역적 패턴(local features)을 자동으로 감지
  • 필터(커널)를 통해 공간 구조를 고려한 특징 추출 가능
  • → 이미지나 영상 처리에 최적화된 구조

2️⃣ 파라미터 효율성 (MLP 대비)

  • 입력 이미지가 224×224×3일 경우, MLP에선 수천만 개 파라미터 필요
  • CNN은 필터를 전체 영역에 공유 (weight sharing)하기 때문에
    • 학습 파라미터 수가 적음
    • 연산 속도 빠름
    • 과적합 위험 낮음

3️⃣ 위치 불변성 (Translation Invariance)

  • 이미지 내 객체의 위치가 조금 달라져도 같은 특징으로 인식 가능
  • Convolution + Pooling 연산 덕분에 위치 변화에 강함
  • 예: 고양이 위치가 바뀌어도 “고양이”로 인식

4️⃣ 계층적 특징 학습 (Hierarchical Feature Learning)

  • 층이 깊어질수록 점점 더 복잡한 특징을 학습함
층 단계학습하는 특징
얕은 층엣지, 선, 색 대비 등 기본 형태
중간 층모양, 질감, 단순 패턴 등
깊은 층얼굴, 사물 등 고수준 개념

5️⃣ 다양한 시각 문제에 적용 가능

CNN은 다양한 컴퓨터 비전 분야에서 뛰어난 성능을 보여줌:

  • 이미지 분류 (Image Classification)
  • 물체 탐지 (Object Detection)
  • 얼굴 인식 (Face Recognition)
  • 자율주행 비전 (Autonomous Driving)
  • 의료 영상 분석 (Medical Imaging)
  • 영상 생성 (Generative Models, e.g. GAN)

6️⃣ 자동 특징 추출 (End-to-End Feature Learning)

  • 전통적인 방식(SIFT, HOG 등)은 사람이 수동으로 특징 설계
  • CNN은 데이터로부터 특징을 자동으로 학습
  • → 유연성 높고, 문제에 따라 확장 가능
  1. Transformer

Positional Encoding

Multi-head Attention

🟣 Feedback network

: 은닉층에 피드백 연결을 가지고 있어 이전 단계의 정보를 기억하고 활용함.

3. RNN (Recurrent Neural Network)

  • 이전 타임스텝의 정보를 기억하며 순차적(Sequential) 데이터 처리 가능
  • 순환 구조(Recurrent Connection) 를 통해 이전 상태(hidden state)를 다음 단계로 전달
  • 시계열(Time-Series), 자연어 처리(NLP) 등 시간 의존성이 있는 데이터에 적합

구성 요소:

  • Hidden State: 과거 정보를 저장하는 내부 상태
  • Recurrent Connection: 현재 입력과 이전 hidden state를 함께 처리

활용 분야:

  • 자연어 처리 (NLP) → 번역기, 챗봇
  • 음성 인식 (Speech Recognition) → Siri, Google Assistant
  • 금융 데이터 예측 → 주가 예측, 트렌드 분석
  • 음악 생성 (AI 작곡)

한계점:

  • Gradient Vanishing(기울기 소실) 문제 → 학습이 어려워짐
  • 긴 시퀀스를 처리하는 데 한계 → 장기 의존성(Long-Term Dependency) 문제 발생

4. LSTM (Long Short-Term Memory) - RNN의 개선 버전

RNN(Recurrent Neural Network)은 학습 과정에서 Gradient Vanishing 문제가 있었고, 이를 해결하기 위해 셀 상태, Gate (Input, Forget, Output) 개념을 도입한 것이 LSTM

  • RNN의 Gradient Vanishing 문제 해결
  • 장기 기억(Long-Term Memory) 유지 가능
  • 게이트(Gate) 메커니즘을 활용하여 중요 정보만 저장하고 불필요한 정보 제거

구성 요소:

  • Forget Gate: 불필요한 정보 제거
  • Input Gate: 새로운 정보를 저장할지 결정
  • Output Gate: 최종 출력을 생성

활용 분야:

  • 장기 의존성이 중요한 NLP → 기계 번역(Translator), 문맥 이해(Chatbot)
  • 음성 인식 → 구글 음성 입력, 자동 자막 생성
  • 시계열 예측 → 기상 예측, 주식 예측

한계점:

  • 연산량이 많고 느림 → 파라미터 수가 많아 학습이 오래 걸림
  • 병렬 연산이 어려움 → Transformer 모델이 등장하면서 LSTM의 활용이 줄어듦

출처: https://salmon1113.tistory.com/67#1. Feedforward Network-1-1

0개의 댓글