중간고사가 끝나고, SOLUX 30기는 어느덧 5차 세미나를 맞이하게 되었습니다!
이번 5차 세미나에서는 딥러닝의 기본 개념을 이해하고, CNN을 활용해 이미지 분류 모델을 구현해보는 시간을 가졌는데요
어떤 흥미로운 내용들로 이루어졌는지 자세히 알아보러 가볼까요? ✨
주제

기간
10월 27일 (월) ~ 11월 2일 (일)
세미나 소개
뉴런즈팀에서 진행해 주신 이번 세미나에서는
딥러닝의 핵심 이론과 CNN 구조를 학습하고, Fashion-MNIST 데이터를 활용한 이미지 분류 모델을 실습해보았습니다.
내용
1. 손실함수와 경사하강법
1) 손실함수

딥러닝 모델은 주어진 데이터를 학습하여 정답에 가까운 예측을 하는 것을 목표로 합니다.
이때 모델이 얼마나 잘 예측하고 있는지를 수치로 평가해주는 지표가 바로 손실함수(Loss Function) 입니다.
손실함수는 모델의 예측값과 실제 정답 값의 차이를 계산하여, 모델이 잘못 예측할수록 큰 값을 반환하게 됩니다.
즉, 손실값이 작아질수록 모델이 정답에 가까워지고 있다는 뜻이며, 결국 우리의 목표는 손실함수를 최소화하는 것입니다. 💡
2) 경사하강법


경사하강법(Gradient Descent) 은 손실함수를 최소화하기 위해 가중치(w)를 반복적으로 업데이트하는 최적화 알고리즘입니다.
손실함수의 기울기를 계산해 손실이 줄어드는 방향으로 조금씩 이동하며, 결국 기울기(Gradient)가 0이 되는 지점에서
최소값에 도달하게 됩니다.
이 과정에서 중요한 요소 중 하나가 바로 학습률(Learning Rate) 입니다.
학습률은 한 번의 업데이트마다 얼마나 크게 이동할지를 결정하는 값으로,
너무 크면 최소값을 지나치고, 너무 작으면 학습 속도가 느려지며 연산량이 증가하는 문제가 발생합니다.
따라서 적절한 학습률을 찾는 것이 모델 학습의 핵심이라 할 수 있습니다! 📈
3) 하이퍼파라미터


하이퍼파라미터는 모델이 스스로 학습하는 값이 아니라,
사용자가 직접 설정해야 하는 값들로 대표적으로 학습률, 배치 크기, 에폭 수 등이 있습니다.
- 학습률: 모델 파라미터를 한 번 업데이트 할 때 얼마나 크게 이동할지를 정하는 값
- 배치 크기: 한 번의 업데이트에 사용하는 데이터 샘플 개수
- 에폭 수: 전체 데이터를 몇 번 반복해서 학습할지 정하는 값
적절한 하이퍼파라미터를 설정하는 것은 모델의 학습 성능을 크게 좌우하는 중요한 과정입니다.
2. CNN
1) CNN의 구조와 핵심 개념


CNN(Convolutional Neural Network) 은 이미지처럼 공간적 구조를 가진 데이터를 처리하기 위한 신경망입니다.
이미지를 그대로 입력받아 특징을 자동으로 추출하고, 그 특징을 바탕으로 분류나 예측을 수행합니다.
CNN의 가장 큰 특징은 합성곱(Convolution)과 풀링(Pooling) 연산입니다.
합성곱 연산은 이미지의 일부 영역을 필터로 훑으며 가장자리나 패턴 같은 시각적 특징을 감지하고,
풀링은 이렇게 얻은 특징 맵의 크기를 줄여 필요한 정보만 남기고 연산량을 줄이는 역할을 합니다.
이 두 과정을 거치면서 CNN은 입력 이미지를 점점 더 추상적인 형태로 표현하게 되며,
사람이 직접 특징을 설계하지 않아도 스스로 의미 있는 패턴을 학습할 수 있습니다. 🔥
2) CNN 학습

CNN은 합성곱층과 풀링층을 거치며 이미지의 주요 특징을 추출하고, 이를 완전연결층으로 전달해
최종적으로 이미지를 분류하거나 예측합니다.
초기 층에서는 선이나 모서리, 색상 대비와 같은 기본적인 시각적 패턴을 학습하고,
깊은 층으로 갈수록 여러 특징이 결합되어 사물의 형태나 구조처럼 복잡한 특성을 인식하게 됩니다.
이 과정에서 손실함수와 경사하강법을 통해 가중치를 지속적으로 조정하며,
모델은 점점 더 정확한 예측을 할 수 있도록 학습이 이루어집니다.
3. 이미지 분류 모델 실습


세미나의 마지막에서는 지금까지 배운 내용을 바탕으로,
Fashion-MNIST 데이터셋을 활용한 CNN 이미지 분류 모델을 직접 구현해보았습니다.
Fashion-MNIST 는 티셔츠, 신발, 가방 등 10가지 패션 아이템 이미지로 구성된 데이터셋으로 CNN 학습에 매우 적합합니다.
실습에서는 sklearn의 fetch_openml() 함수를 이용해 데이터를 불러오고 전처리를 수행한 뒤,
Conv2D와 MaxPooling으로 특징을 추출하고, Flatten과 Dense 층을 거쳐 클래스로 분류하는 CNN 모델을 구현했습니다.
👟👗🧥
마지막으로 모델을 학습시키고 정확도를 확인하며, CNN이 실제로 이미지를 구분하는 과정을 몸소 체험해 보았습니다!
과제
- CNN 모델 바꿔보기


이번 과제에서 부원분들은 실습 영상 속 코드를 따라가며 빈칸을 채우고 실행해본 뒤,
Conv2D와 Pooling 층을 추가하거나 Dropout을 적용하는 등 다양한 방식으로 모델 구조를 바꾸어보는 과제를 수행하였습니다.
이번 과제를 통해 CNN의 구조와 학습 원리를 보다 깊이 있게 이해할 수 있었으며,
모델 성능 개선에 필요한 하이퍼파라미터 조정의 중요성을 체감할 수 있었습니다. 🌟
이번 세미나를 통해 많은 내용을 배우고 실습해본 부원 여러분, 수고 많으셨습니다!
남은 2학기 프로젝트에서도 지금의 열정을 이어가며 멋진 결과를 만들어가길 응원하겠습니다. 🚀
'❤ 30기 > 30기 세미나' 카테고리의 다른 글
| [30기 4차 세미나] 선형대수학 기초 다지기 (0) | 2025.10.07 |
|---|---|
| [30기 3차 세미나] REST API 톺아보기 : Firebase와 POSTMAN (0) | 2025.07.20 |
| [30기 2차 세미나] (2) Git Bash 세미나 (0) | 2025.05.25 |
| [30기 2차 세미나] (1) Git Desktop 세미나 (0) | 2025.05.25 |
| [30기 1차 세미나] (5) 디자인 시스템 가이드 세미나 (0) | 2025.04.28 |