반응형

AI 18

ResNet: Deep Residual for Image Recognition

해당 포스트는 상당 부분 blog1, blog2 를 인용하였음을 밝힙니다. 정리 (원인) 레이어 망이 깊어져서 -> vanishing/exploding gradients 문제 발생 -> weight convergence 가 뒤따라옴 -> SDG같은 옵티마이져를 써서 다소 해결을 함 -> 그래도 training error 발생 (결론) 이런 문제를 degradation problem 이라고 함 degradation problem을 한마디로 정리하자면, 레이어가 깊어져서 최적화된 웨이트 값을 못찾는 현상이라고 할 수 있다. -> (해결) residual net을 쓰니 해결 됨 -> (발전) bottleneck block 이용하면 연산량을 줄일 수 있음 등장 배경 Degradation Problem Deep ..

AI/논문 읽기 2021.08.08

Batch Normalization, Drop out

weight parameter를 학습하는 일련의 과정은 다음과 같다. Mini-batch SGD를 예를 들어봤을 때, 1. 샘플 데이터를 추출한다. 2. forward prop으로 weight parameter에 대한 loss를 구한다. 3. backward prop으로 gradient를 구한다. 4. gradient를 사용하여 weight parameter를 업데이트한다. 5. 최적의 weight parameter를 도출한다. 추가로 최적의 가중치를 찾기위한 여러가지 방법이 있다. 1번의 과정에서 데이터를 zero centered 되도록 전처리(pixel normalize) 2번의 과정에서 weight initialization 혹은 batch normalization으로 weight를 정규화 3번의 ..

AI/개념 2021.06.08

[CS231n] 2강 정리

0. 목표 1) Image Classification 이란? 2) Classification Algorithm 에 대해서 알아보자 3) Hyperparameters 의 의미 4) Linear Classification 의 간략한 개념설명 1. 강의 정리 Image Classification에 대해서 먼저 Image Classification에 대해 배운다. Image Classification 이란 입력 이미지가 들어왔을 때, 이미 정해져 있는 Categories에서 이미지가 어떤 Category에 속할지 고르는 문제 그렇다면 Computer 입장에서 Image Classification이 어려운 이유는 무엇일까? 사람은 입력 이미지를 사진처럼 보지만, 컴퓨터는 픽셀을 의미하는 숫자 집합으로 보기 때문에..

AI/개념 2021.06.08

Overfitting과 Underfitting

Overfitting은 그림에서 맨 오른쪽과 같은 상태. Train 과정에 치우치게 과하게 학습되어 새로운 데이터가 들어왔을 때 잘 분류를 못하는 상태이다. 가운데가 optimize하다고 한다면, 왼쪽은 지나치게 단순화되어 있는 Underfitting 상태이다. 학습이 덜되어있는 상태라고 볼 수 있다. Overfitting 방지하는 방법 모델의 capacity 낮추기: 모델이 학습데이터에 비해 과하게 복잡할때 발생 ex. resnet18 로 충분히 학습가능한 binary cls문제를 resnet50 이상으로 사용하면 오히려 학습 loss가 증가할 수 있다. 모델이 방해가 될만한 요소들 심기 dropout 적용하기. dropout은 training을 할 때, 일부 뉴런을 끄고 학습하는 것을 말한다. 학습 ..

AI/개념 2021.06.07

Pytorch로 Fashion MNIST 구현하기

파이토치 사용법을 익히기 위해 간단한 이미지 분류 과정을 학습해보았다. 파이토치에 내장되어 있는 Fashion MNIST 데이터를 사용하여 학습을 진행했다. 학습에 사용한 패키지들 import torch import torchvision from torchvision import models import torchvision.datasets as dsets import torchvision.transforms as transforms from torch.utils.data import Dataset, DataLoader import torch.nn.init import torch.optim as optim import torch.nn.functional as F import torch.nn as nn i..

AI/활용 2021.03.03

Torchvision 패키지

Torchvision이 무엇인가요? Torchvision은 데이터 셋, 아키텍처 모델, 이미지 변환 기능으로 구성되어 있는 패키지이다. torchvision.datasets MNIST Fashion-MNIST KMNIST EMNIST FakeData COCO LSUN ImageFolder DatasetFolder Imagenet-12 CIFAR STL10 SVHN PhotoTour SBU Flickr VOC Cityscapes torchvision.models Alexnet VGG ResNet SqueezeNet DenseNet Inception v3 GoogLeNet torchvision.transforms Transforms on PIL Image Transforms on torch.*Tensor C..

AI/개념 2021.03.03

Learning Rate, Training Epoch, Batch Size의 의미

머신러닝 모델이 적합한 결과를 내기 위해서는 여러번의 최적화 과정을 거친다. 다루어야 할 데이터가 많기도 하고, 메모리가 부족하기도 하기 때문에 한번의 계산으로 최적화된 값을 찾는 것은 어렵다. 따라서 최적화(optimization)를 할 때는 일반적으로 여러번의 학습과정을 거친다. 또한, 한번의 학습 과정도 사용하는 데이터를 세분화하여 진행한다. 이때 Training Epoch, Batch Size, Iteration 그리고 Learning Rate라는 개념이 필요하다. Training Epoch 한번의 epoch은 인공신경망에서 전체 데이터 셋에 대해 forward pass/backward pass 과정을 거친 것을 말한다. 이 말인 즉슨, 전체 데이터셋에 대해 한 번 학습을 완료한 상태를 뜻한다. ..

AI/개념 2021.03.03

종 분류 알고리즘: DenseNet, GAP에 대하여

왜 다른거 안쓰고 Densenet121을 썼나요? 피쳐 맵이 그대로 보존되고, 적은 수의 파라미터를 요구한다는 장점이 있다고 생각하여 DenseNet을 사용했다. 어떻게 레이어를 수정했나요? pretrain된 densenet121 model에 추가로 6개의 레이어를 넣었다. # keras pretrain densenet121 model def create_model(weights): inp = Input((224, 224, 3)) backbone = DenseNet121(input_tensor=inp, weights= weights, include_top=False) x = backbone.output # fc layer x = GlobalAveragePooling2D()(x) x = Dense(1024..

PyTorch 모델을 C++ 에 빌드 및 컴파일하기

PyTorch 모델을 Python에서부터 C++로 변환하여 빌드 및 컴파일 해보려한다. 맥 환경에서 비주얼 스튜디오를 사용할 수 없기 때문에, VSCode를 사용했다. C++을 빌드하기 위해 해당 블로그를 참고하여 g++로 진행했다. **CLion으로 C++ 빌드하는 것이 VSCode보다 간편하다고 한다! LibTorch 다운로드 pytorch.org/ LibTorch부터 다운로드해서 로컬에서 사용할 수 있게 세팅해야 한다. MacOS에서는 CUDA가 지원되지 않아 아래처럼 나와있다. MacOS Binaries dont support CUDA, install from source if CUDA is needed Libtorch를 다운받은 후, 아래 주소를 참고하여 차근차근 따라해보았다. tutorials..

AI/활용 2021.01.24

Face Landmark 생성

https://github.com/jinnyjinny/DogFaceClassification/blob/master/landmark.ipynb jinnyjinny/DogFaceClassification feature - face landmark/ color pixel/ breed. Contribute to jinnyjinny/DogFaceClassification development by creating an account on GitHub. github.com 모든 강아지 이미지가 담긴 폴더에 대한 좌표값을 생성하고자 코드를 짰으나, 차후에 새로운 강아지의 좌표값을 데이터베이스에 업로드 할 것을 생각하고 개별 폴더마다 데이터의 좌표값을 생성하는 것으로 코드를 고쳐보았다.

반응형