독학/[책] 딥러닝 실습

[혼공학습단 14기 혼만딥🧠] 혼자 만들면서 공부하는 딥러닝 week1

최연재 2025. 7. 1. 14:10

📝 기본 숙제

Ch.01(01-1, 01-2) 구글 코랩에 텐서플로/케라스 설치하고, LeNet 모델 구조 그림으로 그려보기

 

📘 추가 숙제

convolutional, Pooling, Dense 레이어의 기능 각각 설명하기(p.49)

- 합성곱층 (convolutional layer)

  • 이미지의 작은 부분을 스캔하여 중요한 특성을 추출

- 풀링층 (pooling layer)

  • 합성곱층에서 추출된 특성맵을 축소해 처리 속도를 높이고, 모델이 더 중요한 패턴에 집중하도록 만듦

- 밀집층 (dense layer)

  • 이전 층에서 추출된 특성을 바탕으로 최종 결과를 도출

 

🗂️ 내용 정리

Chap01-1 딥러닝 개발 환경 구축하기

1. 코랩으로 실습 준비하기

코랩 세팅하기

2. 텐서플로와 케라스

2.1 텐서플로

- 신경망 모델을 만들 수 있는 전문 라이브러리

- 핵심 연산은 C++과 CUDA로 구현되어 있지만, 고수준 API는 파이썬으로 제공

 

2.2. 케라스

- GPU 연산을 수행하는 다른 라이브러리를 백엔드로 사용하는 멀티 백엔드 정책을 유지

 

Chap01-2 합성공 신경망(CNN; Convolutional neural network) 모델 이해하기

1. 최초의 CNN 모델 - LeNet

- 합성곱 신경망의 초기 형태

 

💥인공 신경망 (ANN ; Artificial Neural Network)

  • 입력층, 은닉층, 출력층을 거쳐 데이터를 처리
    • 입력층 : 신경망이 처리해야 할 원본 데이터를 전달하는 역할
    • 은닉층 : 입력층과 출력층 사이에 있는 모든 층
    • 출력층 : 최종 결과를 내는 곳
  • 비교적 간단한 텍스트 분류 및 금융 데이터 예측에 사용

- 이미지를 다룰 때의 인공 신경망이 가진 문제를 해결하기 위해 설계

- 국부적 특성을 추출하는 합성곱층과 풀링층을 통해 이미지의 중요 패턴을 자동으로 학습

- 밀집층에서 최종 분류 작업을 수행

- 합성곱층 (convolutional layer)

  • 이미지의 작은 부분을 스캔하여 중요한 특성을 추출하는 층
  • 합성곱 계산을 통해 압축적으로 얻은 출력을 특성 맵이라 부름

- 풀링층 (pooling layer)

  • 합성곱층에서 추출된 특성맵을 축소해 처리 속도를 높이고, 모델이 더 중요한 패턴에 집중하도록 만드는 층
  • 이미지의 크기를 줄이면서도 중요한 정보는 유지

- 밀집층 (dense layer)

  • 이전 층에서 추출된 특성을 바탕으로 최종 결과를 도출하는 층
  • 밀집층의 출력층에서는 추출된 이미지의 패턴을 바탕으로 분류 작업을 수행
  • 각각의 입력 값이 모든 뉴런에 연결되기 때문에 완전 연결층(fully connected layer)이라고 함

 

2. 합성곱층 - Conv2D

2.1 패딩과 스트라이드

- 패딩 (padding)

  • 이미지의 가장자리에 빈 공간을 추가해 이미지 가장자리 부분의 픽셀이 충분히 처리될 수 있도록 함.
  • 세임 패딩 (same padding)
    • 입력과 특성 맵의 크기를 동일하게 만들기 우해 입력 주위에 적절한 개수의 패딩을 추가하는 방식
    • 입력 크기 ==  만들어진 특성 맵의 크기
  • 밸리드 패딩(valid padding)
    • 패딩 없이 순수한 입력 배열에 대해서만 합성곱을 수행해 특성 맵을 만드는 방식
    • 입력 크기 > 만들어진 특성 맵의 크기

- 스트라이드 (stride)

  • 필터가 이미지 위를 이동하는 속도

 

2.2 Conv2D 클래스

- 2차원 합성곱을 수행하는 층

- 합성곱층 만들기

  • 합성곱 연산은 특성 맵의 깊이가 깊어지면서 모델이 점점 더 복잡한 정보와 세부적인 패턴을 이해하게 만들고, 이미지의 가로/세로 크기를 점점 작게(공간 방향의 차원 감소) 만들어 중요한 특성만을 남기는 과정

 

 

2.3 풀링층과 밀집층 - AveragePooling2D, Dense

(1) 풀링

- 입력된 텐서의 높이와 너비를 줄이면서 픽셀 값을 압축하는 기능을 수행

- 풀링 윈도(pooling window)라고 부르는 사각 영역이 입력 텐서 위를 지나가면서 평균값을 계산하거나 최댓값을 선택

- 풀링은 합성곱과 달리 스트라이드의 크기가 항상 풀링 크기가 같음

- 평균 풀링

  • AveragePooling2D 이용
  • 이미지에 작은 영역을 설정하고 그 안에서 모든 값의 평균값(전체적인 특성)을 출력

- 최대 풀링

  • MaxPooling2D 이용
  • 이미지에 작은 영역을 설정하고 그 안에서 가장 큰 값(가장 강한 특성)을 출력

 

(2) 밀집층

- 입력층과 가중치의 dot product 수행

- y = x · W + b

  • x : 입력층
  • W : 커널
  • b : 절편

💭 느낀 점

지난 학기에 생성형 AI 관련 수업을 들었었는데 그때 학습한 개념들이 나와서 반가웠습니다. 다음 학기에 딥러닝을 수강할 생각이라 <혼자 만들면서 공부하는 딥러닝>을 신청했는데 6주 동안 열심히 공부해 보겠습니다👍