관리 메뉴

애독자's 공부방

[혼만딥] 2주차 _ 혼자 만들면서 공부하는 딥러닝 본문

머신러닝+딥러닝/혼공학습단 14기

[혼만딥] 2주차 _ 혼자 만들면서 공부하는 딥러닝

애독자 2025. 7. 7. 00:39
728x90

혼공단 - 혼만딥, 혼자 만들면서 공부하는 딥러닝

 

 

■ 시작에 앞서..

지난주 금요일(7/4) 오후에 '빅데이터분석기사' 시험의 사전 점수가 발표되었습니다. 지난 회차가 어렵게 출제되어서 그런지, 이번에는 무난한 난이도로 출제되었고 합격할 수 있어 다행이라는 생각이 듭니다. 이제 좀 맘 편히 공부할 수 있을 것 같습니다.

2025.07.06 - [취득/자격증] - 빅데이터분석기사 합격 수기와 준비 방법

 

 

■ 공부한 내용

# 진도 기본 숙제(필수) 추가 숙제(선택)
2주차
(7/7 ~ 7/13)
Chapter 01 Ch.01(01-3) p.73 LeNet-5 모델 성능 확인하기 그래프 실습 따라하기 없음: 하지만, 예측이 틀린 이미지를 골라 "왜 틀렸을까?" 추측해 보기

 

 

 

 

□ Chapter 01 | 합성곱 신경망(CNN)으로 패션 상품 이미지 분류하기
▷ 01-3 | 패션 상품 이미지 분류하기
 1. 렐루 함수(ReLU, Rectified Linear Unit function): 양수는 그대로 통과시키고 음수는 0으로 만드는 활성화 함수로, 합성곱 신경망은 물론이고 자연어 처리 분야의 순환 신경망과 트랜스포머 모델에도 널리 사용. LeNet-5를 비롯한 초기 신경망에서는 렐루 함수가 아닌 시그모이드 함수(sigmoid function)를 주로 사용했지만, 기울기 소실 문제를 개선하기 위해 최근에는 렐루 함수와 렐루 함수의 다양한 변종 함수들이 폭넓게 적용되는 중.

  • 활성화 함수(activation function): 뉴런의 출력 값을 변형. 비선형(non-linear) 변환을 수행하기 때문에 모델이 복잡한 문제를 잘 해결할 수 있도록 지원.
  • 기울기 소실(gradient vanishing): 신경망은 경사 하강법(gradient descent)을 사용해 훈련하기 때문에 기울기가 완만하면 오차에 대한 조정이 더뎌지는 문제

 2. LeNet-5: 두 개의 합성곱층과 세 개의 분류층(classification layer)이라고도 불리는 밀집층을 사용하며, 신경망을 배울 때 사용하는 가장 기본적인 데이터셋인 패션 MNIST를 사용해 훈련.

  • None: 첫 번째 차원의 크기가 결정되지 않았다는 의미. 이를 샘플 차원 혹은 배치(batch) 차원이라고 부르는데, 신경망에 전달되는 샘플의 개수는 모델을 훈력하거나 모델을 사용해 예측을 만들 때 결정되므로 그 크기를 미리 결정할 수 없음.
  • Conv3D: 케라스에서 제공하는 합성곱층으로, 배치 차원을 제외하고 하나의 샘플이 3차원으로 구성되어 있을 것이라 가정. filters 매개변수로 합성곱층에서 사용할 필터의 개수를 지정하고, kernel_size 매개변수에서 필터의 높이와 너비를 파이썬 튜블로 지정. kernel_size 매개변수에 정수 하나를 입력하면 높이와 너비가 동일한 것으로 간주하며, 스트라이드를 지정하는 striders 매개변수의 기본값은 (1,1).
  • MNIST(Mixed National Institute of Standards and Technology): 딥러닝 모델이 숫자를 얼마나 정확하게 인식하는지 모델을 훈련하고 테스트하는 데 사용되며, 각각의 이미지가 28×28 픽셀로 구성
    • load_data(): 훈련 세트(train set)와 테스트 세트(test set)를 나누어 제공하며, 테스트 세트는 모델을 마지막에 평가하기 위해 훈련에 사용하지 않기에 훈련 세트를 검증할 별도의 검증 세트(validation set)가 필요.
    • compile(): 손실 함수(loss function)를 비롯해 훈련에 필요한 요소를 지정하는데, 분류 문제에 따라 손실 함수를 다르게 지정
      • 다중 분류 문제에서 타깃 값이 원-핫 인코딩 된 경우: 'categorical_crossentropy'로 지정
      • 이진 분류: 'binary_crossentropy'로 지정

 

 

 

■ 기본 숙제

 ▷ Ch.01(01-3) p.73 LeNet-5 모델 성능 확인하기 그래프 실습 따라하기

  - 책 내용을 꼼꼼히 읽어보면서 '따라 하며 배우는 코딩' 부분을 잘 입력하였습니다. 모델을 만들고, 훈련 시킨 후에 성능까지 확인해 보는 내용입니다.

 

 

 

 

■ 추가 숙제(선택)

 ▷ 없음: 하지만, 예측이 틀린 이미지를 골라 "왜 틀렸을까?" 추측해 보기

  - 위와 같이 성능을 확인해 봤는데, 예측이 틀린 이미지를 골라서 표시하는 부분은 책에 없었습니다. 하지만 당황하지 않고, 조금 고민해 본 후에 생성형 AI의 도움을 받아 코드를 작성했습니다.

 

  - LeNet이 패션에 문외한인 저보다 잘 맞출 것이기에 뭔가 이유가 있을 거로 생각하며, 예측이 틀린 이미지를 10개 정도 골라서 추측해 봤습니다. 드레스나 코트 같은 부분은 제가 봐도 티셔츠나 드레스 착각할 수 있을 것 같은 내용이라 수긍이 되었습니다. 사람에 따라 다를 수 있겠지만 86%(0.8595) 정도의 예측률이면 우리 LeNet이가 매우 잘 해냈다고 생각합니다.

 

728x90