전체 글 11

활성화 함수, 손실 함수, 최적화 기법(Optimizer) 정리

이 글은 A Survey of Convolutional Neural Networks: Analysis, Applications, and Prospects 해당 논문에서 Discussion and Experimental Analysis 부분을 보고 작성되었습니다. A. Activation function1 ) Discussion of Activation Function CNN은 복잡한 특징을 표현하기 위해 다양한 활성화 함수를 사용한다.활성화 함수는 두 신경망 사이에서 출력을 변환시켜 다음 뉴런으로 전달한다.활성화 함수의 구조는 다음 그림과 같다.위 그림에서 x_i는 입력을 나타내고 n개의 입력이 뉴런 j에 입력된다.w_ij는 입력 x_i와 뉴런 j 사이의 가중치 값을 나타내고, b_j는 편향이다.y_j는..

카테고리 없음 2025.04.15

CNN의 여러 혁신들 2

이 글은 A Survey of Convolutional Neural Networks: Analysis, Applications, and Prospects 해당 논문에서 Classic CNN Models 부분을 보고 작성되었습니다. 저번 글에 이어 CNN의 여러 혁신들에 대해서 작성하겠습니다.DCGAN생성적 적대 신경망(GAN, Generative Adversarial Network)은 생성 모델 G와 판별 모델 D가 있다. 생성 모델 G는 랜덤 노이즈 z를 받아 G(z)라는 샘플을 생성하며, 이는 G가 학습한 데이터 분포를 따른다. 판별 모델 D는 입력된 샘플이 실제 데이터 x인지, 아니면 G가 생성한 가짜 데이터 G(z)인지 판별한다. 두 모델은 적대적 관계로 자신이 승리하기 위해 더 좋은 모델로 발전..

카테고리 없음 2025.04.09

CNN의 여러 혁신들 1

이 글은 A Survey of Convolutional Neural Networks: Analysis, Applications, and Prospects 해당 논문에서 Classic CNN Models 부분을 보고 작성되었습니다.LeNet-5CNN의 기초가 되는 모델이다. 최초로 Convolution Neural Network(CNN) 개념을 실질적으로 도입하고 성공한 사례이다.subsampling(pooling), 가중치 공유 등 CNN의 기본 개념에 나오는 기술들을 사용했다. 하지만 SVM과 부스팅알고리즘을 뛰어넘지 못해 관심을 못 받은 비운의 CNN 모델이다AlexNetLeNet을 기반으로 만든 CNN 모델이다. 더 깊고 넓은 신경망을 적용했다.더 깊고 넓은 신경망을 사용하니 gradient van..

카테고리 없음 2025.04.01

Fine-Tuning

Fine-Tuning이란 무엇일까?Fine-Tuning을 한국어로 직역하면 "미세 조정"이다. Fine-Tuning은 "미세 조정"이라는 뜻과 같게 이미 학습된 모델을 주어진 요구사항에 맞춰 추가 학습을 시키는 것이다. 왜 Fine-Tuning을 사용하는가?나와 같은 학생들은 거대한 모델을 만들 수 있는 컴퓨팅 파워(GPU 서버)가 없다. 하지만 Fine-Tuning을 사용한다면 이미 만들어진 거대 모델(YOLO, ResNet 등)들을 자신의 필요에 맞춰 사용할 수 있는 것이다. 이 외의 Fine-Tuning의 장점을 설명하자면데이터 부족 문제 해결데이터가 적어도 기존 모델의 지식을 활용할 수 있음 학습 시간과 비용 절감처음부터 학습하는 것보다 훨씬 적은 시간과 비용이 듦더 나은 성능기존의 지식을 활용해..

카테고리 없음 2025.03.24

Batch Normalization (배치 정규화) 정리

딥러닝을 공부하다 보면 Batch Normalizatoin이라는 기술을 접해봤을 것이다. 이 글은 Batch Normalization이 왜 등장했고 어떻게 작동 되는지 설명할 것이다.Covariate ShiftConvariate Shift는 공변량 변화라 불리며, train data set과 validation data set의 데이터 분포가 다르게 나타나는 것을 의미한다. Convariate shift는 validation data set을 추론할 때 성능에 영향을 미칠 수 있으며 제대로 된 성능평가가 불가능 해진다. Internal Convariate ShiftConvariate Shift 현상이 DeepLearning Model의 매 layer 마다 일어나는 것이 Internal Convariate..

카테고리 없음 2025.03.19

GSM Idea Festival 회고

목적조금 많이 늦었지만 1학년 1년을 바쳐 만든 아이디어 페스티벌 프로젝트를 회고하고 새 학년 마음을 다잡기 위해 작성해봅니다... 글 특성상 아이디어 페스티벌이라는 단어가 많이 나올 것이기 때문에 아페라고 줄여서 말하도록 하겠습니다. 팀 구성아페를 시작하기 전에 이제 막 전공을 정하고 개발을 시작한 친구들과 프로젝트를 구상하고 팀을 구성해야 했다. 심지어 전공을 정하지 못한 친구뿐만 아니라 웹 · 앱 개발과 관련 없는 전공 예를 들면 클라우드, 사이버 보안, AI, 로보틱스 등을 전공으로 정한 친구들과도 팀 구성을 해야 했다. 나는 안타깝게도 전공이 AI였다."AI는 웹 · 앱과 같이 프로젝트 할 수 있지 않냐"라고 할 수 있지만 1학기도 제대로 AI를 공부하지 못한 나는 무전공과 다를 바가 없었다. ..

카테고리 없음 2025.03.11

AI 개발 파일 구조 정리

AI 개발을 하면서 성능개선과 유지보수를 잘 하려면 파일 구조를 정형화하고 구조화 시켜야 한다.이 글에서는 내가 사용하는 파일 구조와 이 파일 구조의 장점을 알려주겠다. 내 파일 구조를 먼저 보여주겠다  나는 AI를 학습 시킬 때 주로 4개의 파일로 나눠 코드를 짠다. 파일 하나하나씩 그 역할을 설명하고 예시 코드를 첨부하겠다. 예시 코드는 간단한 MNIST 분류 모델이다.I . dataloader.py이 파일은 데이터를 다운로드하거나 불러오고 데이터 전처리와 데이터 셋 분리 및 PyTorch의 dataloader 객체로 변환하는 역할을 한다. 예시 코드)from torchvision.datasets import MNISTfrom torchvision.transforms import v2from torc..

카테고리 없음 2025.02.25

Docker가 AI 개발 및 배포에 왜 필요할까?

먼저 Docker가 무인지 알아보자.Docker란?다들 개발을 하다보면 내 컴퓨터에서는 잘 작동하는 코드가 다른 사람 컴퓨터에서는 잘 작동하지 않는 경험을 해봤을 것이다.이 문제는 개발자마다 개발 환경과 운영 환경이 다르기 때문에 발생하는 현상인데이 문제를 해결 해주는 기술이 Docker이다.Docker는 환경이 저장 되어있는 이미지를 가지고 컨테이너(가상 환경)를 생성하여 이 컨테이너 안에서 코드를 실행하기 때문에 일관된 실행을 보장한다.AI 개발에서 Docker의 필요성환경 차이 해결AI 모델을 학습하거나 배포할 때, 여러 패키지와 라이브러리들이 필요하다. 예를 들어 PyTorch, Pandas, omegaconf 등 이러한 라이브러리들이 정확한 버전으로 설치되어야만 하고 Python 버전 또한 버전..

카테고리 없음 2025.02.18

왜 TensorFlow 대신 PyTorch를 사용할까?

AI를 공부하거나 프로젝트를 진행할 때 가장 많이 사용하는 프레임워크는 TensorFlow와 PyTorch다.  TensorFlow는 Google이 개발한 대표적인 딥러닝 라이브러리로, 산업과 기업 환경에서 많이 사용된다. 반면, PyTorch는 Meta(Facebook)가 만든 프레임워크로, 연구와 실험에 최적화되어 있어 최근 연구자들과 학생들 사이에서 인기가 많다. 예전에는 TensorFlow가 AI 개발과 연구에 주로 사용되었지만 최근 논문이나 다른 AI 개발자들을 보면 대부분 PyTorch를 사용하고 있다는 것을 알 수 있다. 이 글에서는 왜 PyTorch가 TensorFlow 보다 인기가 많은지 이유를 알아보려고 한다. 1. 자동 미분 기능 (Autograd)이 기능은 딥러닝을 할 때 가장 중요..

카테고리 없음 2025.02.11

다양한 경사하강법(gradient descent) 기법(Optimizer) 정리

저번 글에서는 경사하강법의 가장 원초적인 방법과 수식에 대해서 알아보았다.하지만원초적인 경사하강법에서는 local minima 문제가 있다는 것을 알게 되었고이 local minima 문제를 해결하기 위해 다양한 경사하강법 기법이 등장하게 되었다. 위 사진은 다양한 경사하강법 기법에 대해서 간단히 정리한 것이다.이 글에서는 우리가 많이 사용할 SGD와 Adam을 설명할 것이고Adam의 이해를 위한 Momentum, Adagrad, RMSProp 또한 설명할 것이다. SGD는 전체 데이터 셋을 보고 방향을 정하는 GD와 다르게 전체 데이터의 일부 mini-batch 데이터를 보고 방향을 정하는 기법이다.작은 데이터에 대해서 처리하기 때문에 처리 속도가 빠르며 부정확한 방향으로 갈 수 있지만 이러한 부정확한..

카테고리 없음 2025.02.04