분류 전체보기 27

[딥러닝 컴퓨터비전]불균형 데이터셋에 대한 샘플링 전략 적용법 (Pytorch)

안녕하세요, 오늘은 [논문리뷰]를 진행하며 알아본 불균형 데이터셋에서의 샘플링 전략 적용을 위한 코드 구현법에 대해서 알아보겠습니다.  [논문 리뷰] Decoupling representation and classifier for long-tailed recognition(롱테일 인식을 위한 특징 추출기1. Introduction ImageNet과 같은 거대한 데이터셋들을 주로 활용하면서, 딥 CNN신경망과 함께 이미지 분류 모델은 엄청난 속도로 발전해왔습니다. 이러한 데이터셋들은 모델 훈련시 준수한 성능을 낼deep-learning00.tistory.com  해당 논문에서는 데이터셋  클래스간 불균형을 극복하기 위해 리샘플링 전략을 사용했습니다.   가공 전의 데이터셋은 클래스마다 샘플의 숫자가 다르기..

딥러닝 CV&LLM 2024.05.06

[논문 리뷰] Dynamic Curriculum Learning for Imbalanced Data Classification

1.Introduction저번 포스팅에서와 같이 long tail 데이터셋에서의 예측 성능을 높이기 위한 기법을 제시된 논문입니다. 차이점은 이 논문에서는 ImageNet과 같은 데이터셋과는 달리 CelebA 데이터셋을 중심으로 설명하고 있습니다.(RAP와 CIFAR-100 데이터셋으로 실험한 결과도 제공합니다.) CelebA 데이터셋은 여러 유명인들의 얼굴 이미지인데, 총 202,599개의 얼굴 이미지로 구성되며 10,177명 가량의 사람들(명당 20장 정도)이 데이터셋을 이루고 있습니다. 주목할 점은 각 사진마다 40개의 특성 정보들(Smiling, Male, Young, Big nose,...)이 있고, 1또는 0으로 라벨링 되어있다는 것입니다. 따라서 이 데이터셋은 각 사람에 대한 샘플 수는 균형..

논문 리뷰 2024.04.10

[논문 리뷰] Decoupling representation and classifier for long-tailed recognition(롱테일 인식을 위한 특징 추출기와 분류기 디커플링)

1. Introduction ImageNet과 같은 거대한 데이터셋들을 주로 활용하면서, 딥 CNN신경망과 함께 이미지 분류 모델은 엄청난 속도로 발전해왔습니다. 이러한 데이터셋들은 모델 훈련시 준수한 성능을 낼 수 있게 하기 위해 각 클래스마다 샘플(이미지) 개수들이 균형을 이루고 있는데요, 하지만 항상 이렇게 균형잡힌 데이터셋을 활용하여 모델을 훈련시킬 수 있는 것은 아닙니다. 인터넷상에 충분한 양의 이미지 자료가 퍼져 있지 않은 물체를 학습시킬 때를 그 예로 들 수 있겠죠. long-tail 데이터셋이란 그림과 같이 샘플 수가 많은 클래스와 샘플 수가 적은 클래스간의 샘플 수 불균형이 큰 데이터셋을 뜻합니다. 논문에서는 클래스넘버가 클수록 샘플 수가 많은 클래스입니다. 샘플 수를 기준으로 내림차순 ..

논문 리뷰 2024.04.09

[딥러닝 컴퓨터비전] Faster R-CNN(two-stage object detection)

이번 포스팅에서는 two-stage detection을 수행하는 faster R-CNN에 대해서 알아보도록 하겠습니다. two-stage object detection이란, 물체가 있다고 생각되는 구역에 바운딩 박스를 만드는 Region proposal부와, 해당 구역의 물체를 분류(classify)하는 과정이 나누어져 실행되는 방식입니다.  Faster R-CNN은 RPN(Region Proposal Network)이라고 하는 영역 감지 네트워크를 사용하는데, 이를 설명하기 전에 Faster R-CNN이 진화해온 과정을 먼저 이야기해볼 생각입니다. 모델은 R-CNN > Fast R-CNN > Faster R-CNN 순서로 발전해왔는데, 각 단계에서의 한계점과 개선점을 짚어보는 방식으로 이번 포스팅을 적..

딥러닝 CV&LLM 2024.03.27

[딥러닝 컴퓨터비전] YOLO(one-stage object detection)

저번 포스팅에서 딥러닝 이미지 분류기에 대해 알아보았습니다. 하지만 딥러닝 이미지 분류기는 인풋 이미지 안의 객체를 분류만 할 뿐, 이미지의 어느 부분에 어떤 객체가 있는지까지는 알려주지 않습니다. 아래의 이미지처럼 이미지의 어느부분에 어떠한 객체가 있는지를 알아내는 모델을 객체 탐지(object detection) 모델이라고부릅니다. 물체가 있을것 같은 구역을 감지(Region proposal)하고, 분류(classify)하는 과정이 나누어져 있는 모델을 two-stage object detection이라고 하고, 두 과정이 동시에 이루어지는 모델을 one-stage object detection이라고 합니다. 이번 포스팅에서는 one-stage detection 모델이 어떻게 위 사진과 같은 아웃풋 ..

딥러닝 CV&LLM 2024.03.27

[딥러닝 컴퓨터비전] 컴퓨터의 이미지 표현법과 합성곱 신경망(CNN)을 활용한 이미지 분류기

(딥러닝에 대한 사전지식이 없으신 분들은 딥러닝 기초이론 편을 마치고 오시면 좋을것 같습니다!) 이번 포스팅에서는 컴퓨터가 이미지를 해석하는 방법과 합성곱 연산에 대해 알아보겠습니다.위 사진을 볼까요? 저는 이 사진을 보라색 장식의 모자를 쓴 여자정도로 표현할 수 있을 것 같은데요, 컴퓨터는 과연 이 사진을 어떻게 해석할 까요?  딥러닝 프레임워크 pytorch를 이용한 이미지 표현입니다. 512 x 512 의 RGB이미지가 각각 세 장이 겹쳐 있는 형태라고 볼 수 있겠네요.  컴퓨터는 각각의 RGB 이미지에 한 픽셀당 0~255의 정수값을 부여하여 해당 픽셀의 밝기를 조절하고, 이렇게 표현된 이미지 파일이 우리에게 보여지게 됩니다. 이제 위와 같은 컴퓨터의 이미지 해석법을 활용하여 이미지를 넣어주었을 ..

딥러닝 CV&LLM 2024.03.26

[딥러닝 기초이론6] 과적합(overfitting)과 로컬 미니멈(local minimum)

이번 포스팅에서는인공지능의 고질적 문제 세가지에 대해 다뤄보겠다. 세가지 문제점들은 다음과 같다. 1. 과적합(overfitting) 2. 로컬 미니멈(local minimum) 3. 사라지는 기울기(vanishing gradient) 과적합 문제는 다음과 같다. 그림과 같이 두개의 군집을 분류하는 기준선을 만드는 모델을 예시로 들면, 1번(파란 실선)은 일반적이지 않은 데이터까지 과도하게 학습하여 예측 성능에 영향을 미칠 수가 있다. 학습하지 못했던 새로운 데이터가 입력으로 들어왔을 때 잘못된 판단을 할 가능성이 높은 모델이다. 2번(주황 점선)은 적절하게 학습된 모델이라고 볼 수 있다. 일반적이지 않은 데이터가 예측모델에 반영되어있지 않음을 볼 수 있다. 3번(초록 실선)은 학습이 충분히 진행되지 않..

[딥러닝 기초이론5] 다중 분류(Multi-class classification)

이번 포스팅에서는 다중 분류, 즉 분해야 할 클래스의 개수가 3개 이상일 때의 예측 모델을 만드는 법에 대해 말해보겠다. 이전 포스팅을 떠올려보면, 마지막 출력층의 활성함수를 시그모이드 함수로 설정 + BCE 손실함수를 채택함으로써 이진 분류를 수행하는 모델을 만들었었다. 당시에 '피곤하다'는 1의 클래스를 부여하고, '피곤하지 않다'는 0의 클래스를 부여하여 이진 분류를 수행하였다. 그렇다면 분류할 클래스가 3개(사과,배,귤)인 예측 모델을 만들고 싶다면 어떻게 해야할까? 사과, 배, 귤을 각각 0,1,2 로 맵핑하면 될까? 그렇지 않다. 사과일 확률이 0.4, 배일 확률이 0.1, 귤일 확률이 0.5인 데이터가 들어왔을 때를 예로 들면, 0과 2사이인 1에 가까운 값이 최종 출력되어 해당 객체를 배라..

[딥러닝 기초이론4-1] 데이터의 특성 증가와 활성함수

지금까지는 데이터의 한가지 요소(수면 시간)를 보고 원하는 데이터(피로도)를 예측하는 모델을 만들었다. 하지만 고려해야 할 요소가 한가지가 아니라면 어떻게 해야할까? 고려사항이 추가된 문제를 선형회귀의 관점에서 살펴보겠다. 수면시간(h) 1 3 5 7 9 기온(°C) 30 29 28 24 25 피로도(%) 100 75 60 25 15 이 표를 보면, 기온이라는 요소가 추가되었다. 이제 이 데이터셋을 사용하여 수면시간과 기온 두가지 요소를 고려하여 피로도를 예측하는 모델을 만들어보려고 한다. 이 경우 그림과 같이 추가적으로 기온이 변수로 들어가서 선형연산에 포함된다. 행렬연산식을 보면 위와 같다. 이는 수면시간과 기온을 고려하여 피로도를 측정하는 예측 모델로, 3차원 공간 상에 그림과 같이 나타낼 수 있다..

[딥러닝 기초이론4] 로지스틱 회귀 (logistic regression)

지금까지 선형 회귀 분석을 통해 주어진 학습 데이터를 잘 대표하는 직선의 방정식을 찾고, 이를 이용해서 새로운 입력값에 대한 결과를 예측해보았다. 하지만 이번에는 조금 다른 문제를 다뤄보겠다. 주어진 입력에 대해서 예측이 그렇다 or 아니다 두가지 중 하나로 결정되는 문제이다. 수면시간에 따른 피로도를 예측하는 대신, 수면시간에 따라서 피곤하다 or 피곤하지 않다로 분류되는 경우이다. 수면시간(h) 1 3 5 7 9 피로도(%) 100 75 60 25 15 피곤한지 여부 O O O X X 1,3,5 시간 수면 후 피곤하다, 7,9시간 수면 후 피곤하지 않다는 데이터를 가지고 이진분류를 수행하는 예측 모델을 만들어보겠다. 피곤하다를 1로 맵핑하고 피곤하지 않다를 0으로 맵핑해서 좌표평면위에 표현하면 다음과..