본문 바로가기

부스트캠프 AI Tech

(42)
[Week6] CV - Image Classification Ⅱ [Day3] 1. Problems with deeper layers Alexnet -> VGGNet Deeper networks learn more powerful features, because of Larger receptive fields cf. receptive field : CNN에서 각 단계의 입력 이미지에 대해 하나의 필터가 커퍼할 수 있는 이미지 일부 More capacity and non-linearity But, getting deeper and deeper always works better? Deeper networks are harder to optimize Gradient vanishing / exploding Computationally complex Degradation problem (..
[Week6] CV - Image Classification Ⅰ[Day1] *What is computer vision? Machine Learning -> Deep Learning 패러다임 변화 Feature extraction을 자동적으로 수행하여 사람이 미처 보지 못한 특징들을 알아낼 수 있음 *Fundamental image tasks Deep Learning 기반의 task들 Data augmentation and Knowledge distillation Multi-modal learning (vision + {text, sound, 3D, etc.}) Conditional generative model Neural network analysis by visualization *What is classification classifier 세상의 모든 데이터를 가지고 있..
[Week4] Image classification - Class imbalance *Class imbalance Class imbalance : 어떤 데이터에서 각 클래스(주로 범주형 변수)가 갖고 있는 데이터의 양에 차이가 큰 경우 class imbalance는 어떤 문제를 발생시킬까? 데이터가 적은 소수의 클래스의 의견에 귀를 기울이지 못하면 일반적인 경우를 예측하는데에 한계가 있음 따라서 overfitting을 막고, generalization gap을 줄이기 위해서는 Class imbalance 문제를 해결 해야함 ex) class imbalance - 4번 클래스는 4000개의 데이터가 있는 반면 8, 11, 14, 17번 클래스는 약 100개에도 못미친다. 따라서 small data에 대한 bias를 가질 수 밖에없고, 일반적인 경우를 예측해내기 힘듦 *여러가지 Soluti..
[Week4] Image classification - Ensemble *Ensemble 여러 실험을 통해 여러 모델로 여러 결과를 만들게 된다 이 모델을 효율적으로 어떻게 성능을 더 끌어올릴 수 있을지? *Ensemble of Deep NN *Ensemble 싱글 모델보다 더 나은 성능을 위해 서로 다른 여러 학습 모델을 사용하는 것 Model Averaging (Voting) Hard voting vs Soft voting Hard voting은 모델마다 하나의 예측 결과를 나타내지만 Soft voting은 모든 클래스의 확률을 보여주기 때문에 결과가 달라질 수 있음 Cross Validation 훈련 셋과 검증 셋을 분리는 하되, 검증 셋을 학습에 활용하는 방법 Stratified K-Fold Cross Validation 적당한 K를 정해서 각각의 모델이 bias를 ..
[Data viz(3)] Seaborn *Seaborn Seaborn은 Matplotlib 기반 통계 시각화 라이브러리 통계 정보 : 구성, 분포, 관계 등 Matplotlib 기반이라 Matplotlib으로 커스텀 가능 쉬운 문법과 깔끔한 디자인이 특징 디테일한 커스텀보다는 새로운 방법론을 위주로 앞서 공부한 이론과의 연결 pip install seaborn==0.11 import seaborn as sns 다양한 API 시각화 목적과 방법에 따라 API 분류 Categorical API Distribution API Relational API Regression API Multiples API Theme API *Seaborn 기초 countplot - seaborn의 categorical API의 대표적인 시각화로 이산적으로 막대 그래프..
[Week3] PyTorch 활용하기 [Day4] *Multi-GPU 활용 오늘날의 딥러닝은 엄청난 데이터와의 싸움... *Model parallel 다중 GPU에서 학습을 분산하는 두 가지 방법(모델 나누기 / 데이터를 나누기) 모델을 나누는 것은 생각보다 예전부터 썻음 (alexnet) 모델의 병목, 파이프라인의 어려움 등으로 인해 모델 병렬화는 고난이도 과제 위 코드보다는 병렬적으로 파이프라인을 구축하는것이 좋다 *Data parallel 데이터를 나눠 GPU에 할당후 결과의 평균을 취하는 방법 minibatch 수식과 유사한데 한번에 여러 GPU에서 수행 PyTorch에서는 두가지 방식을 제공(DataParallel , DistributedDataParallel) DataParallel - 단순히 데이터를 분배한후 평균을 취함 -> GPU 사용 ..
[Week3] PyTorch 구조 학습 [Day2 ~ Day3] *AutoGrad & Optimizer *torch.nn.Module 딥러닝을 구성하는 Layer의 base class Input, Output, Forward, Backward 정의 학습의 대상이 되는 parameter(tensor) 정의 *nn.Parameter Tensor 객체의 상속 객체 nn.Module 내에 attribute가 될 때는 required_grad=True로 지정되어 학습 대상이 되는 Tensor 우리가 직접 지정할 일은 잘 없음 - 대부분의 layer에는 weights 값들이 지정되어 있음 *Backward Layer에 있는 Parameter들의 미분을 수행 Forward의 결과값 (model의 output=예측치)과 실제값간의 차이(loss)에 대해 미분을 수행 해당 값으로 P..
[Week3] PyTorch Basics [Day1] *PyTorch의 특징 (tensorflow와 다른점) Computational Graph 연산의 과정을 그래프로 표현 Define and Run : 그래프를 먼저 정의 -> 실행시점에 데이터 feed Define by Run (Dynamic Computational Graph) : 실행을 하면서 그래프를 생성하는 방식 *Why PyTorch Define by Run의 장점 : 즉시 확인 가능 -> pythonic code GPU support, Good API and community 사용하기 편한 장점이 가장 큼 TF는 production과 scalability의 장점 Numpy + AutoGrad + Function Numpy 구조를 가지는 Tensor 객체로 array 표현 자동미분을 지원하여 D..