대외활동/DSC CV Study 12

week6 - Semantic Segmentation

Semantic Segmentation을 굳이 해석하자면, semantic = '의미의', segmentation = '분할' 의미가 있는 분할? 컴퓨터 비전에서 다뤄지는 문제들 Classification Localization/Detection Segmentation Semantic Image Segmentation의 목적 이미지 상의 모든 픽셀을 class로 분류하는 것 픽셀에 대한 예측을 하는 것이기 때문에 Dense prediction이라고도 한다. 그러나 같은 class의 instance를 구분하지는 않는다. 예를 들어, 아래 사진에서 사람은 모두 같은 사람으로 구분하고 사람1, 사람2, 사람3 ... 해서 사람5까지 구분을 못한다는 뜻이다. 사람 1, 사람2, 사람3 이렇게 Instance(개..

week5 - Object Detection

Object detection 여러 가지 물체에 대한 Classification과 물체의 위치 정보를 파악하는 Localization을 모두 처리하는 것 Multi-Labeled Classification + Bounding Box Regression (Localization) GoogLeNet, ResNet, VGGNet 과 같은 모델들로 이미지 분류(인식) 문제 해결 Detector 처리 방식 속도 예시 1-Stage Detector Classification와 Localization를 동시에 해결 빠름 YOLO, SSD 2-Stage Detector Classification와 Localization를 순차적으로 해결 정확도가 높음 Fast R-CNN, Faster R-CNN와 같은 R-CNN 계열..

week3 - Intel Image Classification

14,000장 정도의 이미지를 6가지 클래스로 분류하는 작업 캐글 Kernel에 올라온 자료 중 하나 정리해보기 1. 필요 함수 정의 def get_image() 이미지를 가져와서 라벨에 따라 숫자를 부여하는 ex) 'sea' 라벨을 가지고 있으면 4로 저장 def get_classlabel() 역으로 class_code를 받아 어떤 클래스인지 알려주는 함수 ex) 4라는 숫자가 들어왔을 때 'sea'로 반환 2. Images와 Labels를 배열 형태로 바꾸기 3. Image와 Label Shape 확인해보기 150 x 150 사이즈의 컬러 이미지 14034장으로 확인 4. 이미지 출력해서 확인해보기 임의의 이미지와 해당하는 라벨 출력하기 mountain, forest, glacier 등 다양한 클래스..

week3 - CNN(Convolutional Neural Network)

Fully-Connected Layer 완전연결층 Affine - ReLU - Affine - ReLU - Affine - Softmax CNN(Convolutional Neural Network) 완전 연결 신경망에서는 Affine층 뒤에 활성화함수 ReLU로 마지막 Layer 부분에는 활성화함수 소프트맥스로 최종 결과를 출력합니다. 반면, CNN은 Conv층과 Pooling층이 추가되었습니다. 마지막에는 Affine - ReLU와 Affie - Sofrmax 조합이 그대로 사용됩니다. Fully Connected Layer는 1차원(배열) 형태로 한정되는데, 한 장의 컬러사진은 3차원 데이터입니다. Fully Connected로 학습시킬 경우, 3차원의 이미지를 1차원으로 평면화 시켜야하는데 이 과정..

week2 - Optimization 최적화 기법

딥러닝은 깊은 신경망 계층을 말합니다. 입력층과 출력층 사이에 여러 개의 은닉층으로 이루어진 신경망입니다. 층이 깊어질수록 모듈과 함수에 따른 하이퍼파라미터(hyper-parameter)도 비례하여 많아집니다. 이 하이퍼파라미터를 결정하여 모델이 정확하게 결과를 뱉어낼 수 있도록 하는 것이 학습의 핵심입니다. 그러기 위해서는 Loss Function을 정의하여야 합니다. 그리고 Loss Function을 Optimize 해야합니다. 다음 그림에 설명이 잘 되어있듯이, 모델은 Loss Function(틀린 정도)을 가지고 있습니다. 고등학교 때 수학시간에 배웠던 기억을 되살려봅니다. 미분하여 그 점에서의 미분 값이 (+) 값이 나오면 증가 (-) 값이 나오면 감소 마찬가지로 결국 loss function도..

week2 - Backpropagation 오차역전파법

오차역전파법 신경망 학습에서, 신경망의 가중치(weight)에 대한 손실 함수의 기울기를 구하기 위해 미분을 사용했습니다. 미분 계산은 단순하고 구현하기 쉽지만, 시간이 오래걸리는 단점이 있습니다. 초기 가중치에서의 손실 함수를 계산하고 그것을 미분하여 다음 가중치 계산에 사용하는데, 뉴런이 많아져 각 노드의 매개변수(가중치, 편향)가 많아지면 그 모든 매개변수를 임의로 대입하며 학습시키면 시간도 매우 오래걸리고 계산량도 많아 비효율적입니다. 이것을 효율적으로 하기 위한 것이 오차역전파 알고리즘입니다. 학습이란 각 뉴런의 파라미터에 의해 계산된 최종 출력을 토대로 손실함수를 구하고, 그 손실함수를 최소화하는 방향으로 각 뉴런의 매개변수(가중치, 편향)를 변화시켜나가는 것입니다. 학습이 완료되었다는 것은,..

week1 - Tensorflow로 MNIST 이미지 분류하기

Digit MNIST 이미지 분류하기 일단 필요한 모듈을 임포트한다. keras에서 제공되는 기본 데이터셋 중 mnist 손글씨 0~9까지 분류해보려고 한다. mnist 데이터를 로드하면 4개의 반환값이 나온다. 각각 X train, Y train, X validation, Y validation이다. X는 데이터 0~9까지 이미지를 뜻하고 Y는 그 이미지에 대한 정답이다. shape을 출력한 것을 보면 28x28 사이즈의 이미지가 60,000장 있다는 것을 알 수 있다. X_train의 이미지들을 학습시키기 위해 reshape 해준다. 28x28 사이즈의 정사각형 이미지를 784 사이즈 즉, 한줄로 쭉 바꾸어 준 것이다. 또 astype으로 float64로 자료형을 바꾸어주고 255로 나누어 norma..

week1 - 활성화 함수

활성화 함수 이전 포스팅에서 퍼셉트론의 계산식을 다음과 같이 나타냈습니다. x1*w1+x2*w2+x3*w3 +b 0 이면 y=1 이것을 조금 더 간단히 표현하면, t=x1*w1+x2*w2+x3*w3 +b y=h(t) h(x) = 0 (x0) 즉, t 값이 0이하이면 y는 0이 되고, t 값이 0 초과이면 y는 1이 되는 것 입니다. 여기서 h(x)와 같은 함수를 활성화 함수(Activation Function)라고 합니다. 이해를 위해 여러가지 그림으로 확인하면, y=x1*w11+x2*w12+x3*w13 f는 activation function z는 output 활성화 함수의 종류 가장 기본이 되는 계단함수 0 또는 1의 값을 출력 과거에 많이 사용된 Sigmoid Function 0 ~ 1 사이의 실수..