LeeHyunjoo

[DL] Forward, Loss, Backward

cnn의 feature map과 conv filter를 정리하면서, filter의 weight가 사람이 직접 정하는 값이 아니라 학습을 통해 형성된다는 점을 확인했다.이번 글에서는 cnn의 weight 업데이터 과정을 보기 전에, 딥러닝 모델 전반에 공통으로 적용되는 학습 흐름을 먼저 정리한다. 딥러닝 모델은 예측값을 만들고, 틀린 정도를 계산하고, 그 오차가 줄어드는 방향으로 weight를 바꾸는 과정을 반복하면서 학습된다. 모델의 학습은 크게 forward > loss > backward > update 흐름으로 진행된다. 순전파는 현재 weight로 입력 데이터를 계산해 예측값을 만드는 과정이고, loss는 그 예측이 정답과 얼마나 다른지 나타내는 값이다. 역전파는 loss를 기준으로 각 weig..

[CV] Filter를 거친 Feature Map의 의미

보통 학습에 사용되는 이미지들이 컬러이고 컬러 이미지는 3 채널을 갖는데 conv layer 을 지나면서 채널이 늘어나는 거에 대해 왜 늘리는지, 그럼 채널이 많아진다는 것은 정보가 쪼개지는건데 색 정보 외에 다른 정보를 담게 되는건지 의문이 들었다. CNN 구조를 보다 보면 입력 이미지의 3채널이 Conv Layer를 지난 뒤, 채널 수가 64, 128, 256개처럼 늘어나는 경우가 많다.import torchimport torch.nn as nnmodel = nn.Sequential( nn.Conv2d(3, 64, kernel_size=3, padding=1), nn.BatchNorm2d(64), nn.ReLU(), nn.MaxPool2d(kernel_size=2, stride=2), ..

[CV] CNN 구성 요소 : Activation, Pooling, BatchNorm, Conv Block

CNN은 이미지를 여러 단계의 feature map으로 바꾸면서 특징을 학습하는 구조다. 이 과정에서 Conv는 이미지의 작은 영역들의 패턴을 뽑는 역할을 한다.여기서 쓰이는 구성 요소들이 있는ㄷ Pooling이나 Strided Convolution은 feature map의 공간 크기를 줄이고, BatchNorm은 학습 과정에서 값의 분포를 안정화한다. 이번 글에서는 CNN을 구성하는 주요 요소인 Activation, Pooling, BatchNorm, Conv Block이 각각 어떤 역할을 하는지 정리한다. CNN의 전체 흐름 큰 관점에서 CNN은 두 부분으로 나눌 수 있다.구간역할Feature ExtractorConv Block을 반복해 feature map 생성Classifierfeature ma..

[CV] Convolution 연산

지난 글에서는 이미지가 어떻게 텐서로 표현되는지 알아봤다. 텐서 형태로 변환된 이미지를 모델은 Convolution(합성곱)이라는 연산으로 처리한다. 합성곱은 이미지에서 특징을 뽑아내는 연산이다. CNN이라는 이름도 여기서 나왔고, 분류와 검출을 비롯해 이미지를 입력받는 대부분의 모델이 합성곱을 사용한다. 이번 글에서는 합성곱에 대해 알아보자 세부로 들어가기 전에 합성곱의 큰 흐름과 핵심 용어를 먼저 정리한다. 아래는 padding과 stride가 없는 기본 형태다. 입력 이미지(Tensor) │ filter를 한 칸씩 이동시키며 ▼각 위치에서 (겹친 영역 × filter) 값을 모두 더함 │ 모든 위치에 반복 ▼feature map 한 장 ── filter가 여러 개면 ──▶ ..

[CV] 딥러닝에서 Tensor란?

지난 글에서는 이미지가 픽셀 격자로 표현되고, 각 픽셀 값이 밝기나 색의 강도를 나타낸다는 것을 살펴봤다. 그런데 딥러닝 모델은 이미지 파일을 그대로 입력받지 않는다. 이미지는 먼저 숫자 배열로 바뀌고, 모델이 계산할 수 있는 형태로 입력된다.딥러닝에서는 이 숫자 배열을 Tensor라고 부른다.Tensor는 이미지에만 쓰는 개념이 아니다. 이미지, 텍스트, 오디오, 모델의 가중치, 중간 계산 결과까지 딥러닝의 거의 모든 데이터가 Tensor로 표현된다. 그래서 이번 글에서는 Tensor의 일반적인 개념에 대해 이해하고 shape, axis, dtype, 값의 범위, batch 차원으로 해석할 수 있는 것을 목표로 한다. Tensor란?Tensor는 한마디로 숫자로 이루어진 다차원 배열이다. 차원 수에 ..

[CV] Pixel, Channel로 이미지 구조 이해하기

앞으로 비전 모델을 공부하기 전에 이 모든 것의 기초가 되는 이미지에 대해서부터 이해해 보자. 이번 글에서는 이미지가 컴퓨터 안에서 어떻게 표현되는지 정리해 본다. Pixel : 이미지를 표현하는 기본 단위이미지는 작은 격자 형태의 픽셀들로 표현된다. 이때 격자 한 칸이 하나의 픽셀이 된다. 가로 1920개, 세로 1080개의 픽셀로 이루어진 이미지를 1920 × 1080 해상도라고 부른다. 왼쪽이 원본 이미지, 오른쪽이 빨간 박스 영역을 확대한 그림이다. 부드러워 보이던 태양의 곡선이 사실은 작은 정사각형들로 이루어진 것을 확인할 수 있고, 각각의 작은 사각형이 픽셀 하나가 된다. 각 픽셀은 그 위치의 색 정보를 나타내는 숫자로 이루어져 있다. 이때 숫자는 그레이스케일 이미지는 밝기를, 컬러 이..

[AWS] AWS Certified Machine Learning – Specialty 취득 후기

AWS Certified Machine Learning – Specialty 취득 과정 남겨본다. 자격증 준비하게 된 계기는 AWS Certified Cloud Practitioner 취득 이후로 관련 공부 좀 더 깊이 있게 해보고 싶었고, 데이터사이언티스트 직무를 준비하면서 MLOps 역량이 요구되는 곳들도 있어 이 부분에 대해서도 보완하고 싶어 준비하게 됐다. [시험 개요]항목내용응시 비용300 USD = 394575 KRW50% discount voucher 적용 시 = 197287 KRW시험 시간180분 (3시간)문항 수 및 형식65문항, 객관식(Multiple Choice) 및 다중 응답(Multiple Response) 혼합합격 기준1,000점 만점 중 750점 이상 (Scaled Score..

[AWS] SageMaker Studio사용해 모델 배포하기

SageMaker를 통해 모델을 배포해보기 전 배포 단계에서는 어떤 과정들이 포함되는 지와 알아야 할 개념들에 대해 정리해보자.배포 단계에서는 1)추론 요구 사항을 식별하고, 해당 요구 사항에 따라 적절한 2)엔드포인트 유형을 선택하며, 3)엔드포인트를 구성하고 생성하는 과정들이 포함된다. 1) 추론 요구 사항 식별이 단계에서는 몇가지 질문을 통해 모델이 실제 환경에서 어떤 방식으로 활용될지를 파악한다. 이 과정에서 추론 요구사항을 정확하게 파악해야 비용도 절감하고 성능도 높일 수 있다. 예측 요청의 빈도와 패턴먼저, 예측 요청이 얼마나 자주 발생할지에 대해 파악해야 한다. 하루에도 수천 건의 요청이 들어오는 실시간 서비스인지, 아니면 하루에 한두 번 정도 예측을 수행하는 간헐적인 작업인지에 따라 배포 ..

[AWS] Amazon SageMaker 사용해 모델 튜닝 및 하이퍼파라미터 최적화하기

앞선 실습에서는 SageMaker를 이용해 기본 설정으로 모델을 학습하고 리포트를 분석해 보았다. 하지만 모델 성능은 하이퍼파라미터에 크게 좌우되기 때문에, 이를 효과적으로 조정하는 과정이 필요하다. 작은 데이터셋이나 간단한 실험은 로컬 코드에서 직접 빠르게 시도할 수 있지만, 데이터 규모와 시도 횟수가 커지고 결과를 다시 확인·재현해야 하는 단계부터는 한계가 생긴다.이때 SageMaker 하이퍼파라미터 튜닝 기능을 활용하면 여러 대의 인스턴스에서 동시에 실험을 실행하고, 모든 결과를 자동으로 기록하며, 성능이 좋지 않은 시도는 일찍 멈춰 비용을 절감한다. 이를 통해 최적의 설정을 더 안정적이고 효율적으로 찾을 수 있다. 이번 글에서는 이러한 SageMaker의 튜닝 기능을 사용해 모델 성능을 개선하는 ..