BoostCamp

2021.09.06 - [Week 6] Day 1. Level 2

배기니어 2021. 9. 7. 03:07

공부한 내용

1. Computer Vision

 1.1. Overview

  1.1.1. Why is visual perception important?

   1) AI

    • AI : 사람의 지능을 컴퓨터 시스템으로 구현한 것

    • 사람의 지능은 시각, 소리 등 지각능력 뿐만 아니라 이해의 영역까지 포함

    • 넓은 영역인 사람의 지능을 구현하기 위해 reference를 인간으로 설정

   2) Multi-modal perception

    • 사람이 유아기 시절부터 세상을 학습하는 방식에서 시작

    • 오감을 활용한 지각능력 -> 세상과 상호작용, 관찰 -> 인과 관계, 사고능력

    • 지각능력 획득이 첫 step이자 가장 중요한 단계

   3) Perception to system

    • 시스템에서의 지각능력은 input과 output data에 관한 것

    • AI의 입출력은 사람이 이해할 수 있는 형태가 좋다.

    • social perception 등 multi-modal perception 이용해서 더 유용한 정보 취득

    • perception이 불완전하다면 사고능력도 불완전 -> 지각능력 구현이 가장 선행되어야 하고 중요함

    • CV에서는 시각 지각능력이 가장 중요

 

  1.1.2. What is computer vision?

   1) Visual recognition process

    • visual world -> sensing device -> interpreting device -> interpretation

    • Human : scene -> eyes -> brain -> interpretation

    • Computer : scene -> camera(image) -> GPUs & algorithm -> representation(자료구조)

   2) Computer Graphics & Computer Vision

    • Computer Graphics

     - 이미지를 분석한 정보를 다시 이용하여 이미지 or 3D scene 재구성

     - rendering techniques

    • Computer Vision

     - computer graphics와 하는 일이 반대

     - inverse rendering

   3) Computer Vision

    • Computer Vision

     - machine visual perception을 만드는 것

     - input : visual data(images or videos)

    • Class of visual perception

     - 시각 지각능력 종류

     - color, motion, 3D, semantic-level, social(emotion), visuomotor(시각 운동성), etc.

    • CV는 사람의 지각능력을 어떤식으로 알고리즘으로 구현할 지에 대한 연구도 포함

   4) Imperfect visual perception

    • 사람의 시각 능력도 불완전한 부분이 존재

    • e.g. Thatcher illusion

    • 눈과 시각 담당하는 뇌 부분에서 똑바로 서있는 얼굴을 많이 학습, 뒤집힌 얼굴은 덜 학습 -> bias된 학습

    • 시각능력 구현 시 사람의 인지 구조 모방한 시각능력 구현

    • 사람의 시각능력 장단점을 이해하고 불완전성을 보완할 방법을 모색할 필요가 있다.

   5) Implement

    • Machine Learning

     - 전문가가 data feature extraction 방법론 설계

    • Deep Learning

     - 전문가가 feature extraction 설계하지 않음

     - 사람이 feature extraction할 경우, 중요한 정보 간과할 확률 높다.

     - feature를 발견해도, extraction 방법에 따라 성능이 달라질 수 있다.

     - deep learning은 input에서 바로 output을 생산하는 end-to-end 학습

     - 편리하고 높은 성능

     - 사람보다 gradient descent가 feature extraction과 classification 잘한다.

   6) CVPR (Computer Vision and Pattern Recognition)

    • hot한 분야

    • deep learning 도입으로 어려운 연구 과제 해결

 

  1.1.3. What you willl learn in this course

   1) Fundametal image tasks

    • Semantic Segmentation

    • Object Detection & Segmentation

    • Panoptic segmentation

   2) 실전에서 활용할 수 있는 techniques

   3) Multi-modal learning

    • 시각정보를 더 돋보이게 하는 시각정보 중심의 다른 감각 데이터들 융합

   4) Conditional Generative Model

    • control가능한 generative model

   5) Visualization

    • debugging, 이해하기 위한 visualization tools

 

 1.2. Image classification

  1.2.1. What is classification

   1) Classifier

    • image와 class를 분류하는 mapping

  1.2.2. An ideal approach for image recognition

   1) kNN (k Nearest Neighbors)

    • input : query data -> query data 근방의 k개 data를 찾아 많은 label 정보를 기반으로 output return

    • 세상의 모든 data가 다 있다면 가장 비슷한 결과를 찾으면 된다.

    • classification 문제를 nearest neighbor search 문제로 변환 가능

    • 많은 data -> 시간, 메모리 증가

    • kNN 사용하려면 image 간 유사도 먼저 정의 필요

 

  1.2.3. CNN (Convolution Neural Network)

   1) CNN

    • 많은 데이터를 제한된 복잡도의 시스템에 압축해서 녹여낸 neural network

    • e.g. single fc layer

     - 모든 pixel을 서로 다른 가중치로 weighted sum -> non-linear activation function -> classification score

     - image classification 성능 좋지 않음.

    • Visualization of single fc layer networks

     - weight matrix를 영상 구조에 맞게 reshape(templete 생성) -> visualization -> 평균 image처럼 보임

    • Problems of single fc layer networks

     - 단순한 구조로 인해 평균 image 외에는 표현 불가

     - test time에서 data가 train시의 영상과 다르게 잘려있거나 scale 맞지 않아 물체의 위치가 맞지 않는다면 완전히 다른 결과

     - CNN 등장 배경

    • CNN은 locally connected neural networks

     - fc layer는 하나의 feature를 extract하기 위해 모든 pixel 고려

     - CNN은 영상의 공간적인 특성 고려해서 국부적인 영역들만 connection 고려하여 feature extraction

     - feature extraction 위해 필요한 parameter 수 감소

     - sliding window처럼 filter를 공유하며 전 영역에서 feature extraction -> feature map 형태

     - parameter 재활용 -> 적은 parameter, 효과적 feature extraction, over fitting 방지

     - image에서 물체의 위치가 바뀌더라도 feature 적절하게 extract -> 영상에 적합한 network 구조

    • Backbone

     - cv task에서 CNN을 backbone으로 많이 사용

     - design pattern : target task의 head를 적합하게 디자인해서 사용

 

 1.3. CNN architectures for image classification

  1.3.1. Brief History

   • AlexNet - VGGNet - GoogLeNet - ResNet - Beyond ResNet ...

 

  1.3.2. AlexNet

   1) LeNet-5

    • 간단한 구조

     - convolution layer 2개, fc layer 2개

    • 글자 단위 인식

     - 우편 번호 인식에 성공적

   2) AlexNet

    • LeNet-5와 유사한 구조

    • Deep architecture

     - 7 hidden layers, parameter 증가

    • ImageNet으로 학습

    • ReLu 사용

    • dropout 적용

   3) Overall architecture

    • 개발 당시 GPU memory 부족한 문제로 network를 반으로 나누어 학습

    • 연산속도 고려하여 일부 layer에서만 cross communication

    • fc layer의 2048 dimension-> 2048*2 = 4096 dimension (because of two streams)

    • LRN은 편의상 제외

    • Convolution layer, Pooling layer, FC layer로 이루어진 구조

   4) Feature map -> Linear layer

    • max pooling된 activation map이 linear layer의 input으로 변환

    • feature map : 3D tensor

    • linear layer : matrix operation

    • 3D -> 2D or 1D 구조로 변경 필요(vectorization)

    • 방법 1. average pooling

     - activation tensor의 공간정보 압축

     - 채널 축의 정보만 남겨둔 vector로 변환

    • 방법 2. flatten

     - activation map을 순서대로 쌓음

    • average pooling과 flatten은 vectorization하는 것은 같지만, dimension에 차이가 있다.

    • 논문에서는 flattening 사용

   5) LRN (Local Response Normalization)

    • deprecated

    • activation map에서 명암을 normalization하는 역할

    • 명암이 국지적으로 normalization된 효과

    • 현재는 batch normalization을 더 많이 사용

   6) 11x11 convolution filter

    • deprecated

    • large filter size

    • 큰 receptive field size를 위해 큰 coverage filter 사용

   7) Receptive field

    • activation에서 하나의 element가 나왔을 때, element를 나오게 한 dependent한 input pixel의 영역

    • input space에서 dependency가 있는 영역

    • 하나의 값을 결정하기 위해 어느 정도의 영역을 참조했는지 나타내는 지표

    • receptive field size : (P+K-1) x (P+K-1)

     - P : pooling layer kernel size

     - K : convolution layer kernel size

 

  1.3.3. VGGNet

   1) Overall architecture

    • deeper architecture

    • VGG16 : 16 layers, VGG19 : 19 layers

   2) simpler architecture

    • 3x3 convolution later

    • 2x2 pooling layer

   3) Performance

    • better performance

    • better generalization

    • deep, but simple architecture -> better performance, better generalization

   4) Input

    • same with AlexNet

    • train data의 평균 rgb 값을 각 채널에서 뺀다 -> normalization

   5) Key design

    • 3x3 convolution filter with stride 1

    • 2x2 max pooling operations

    • 작은 kernel size의 convolution layer도 stack을 많이 쌓으면 큰 receptive field size를 얻을 수 있다.

    • 이미지의 많은 부분 고려 가능

    • 적은 parameter

    • deep한 구조로 복잡한 function 관계 학습 가능

    • 3 FC layers

    • ReLU

    • No local response normalization

 

MeetUp

1. 자기소개

2. Ground rule

 - 수업 내용 정리 후 발표

 - 과제, 수업 내용 질문

 - notion으로 회의록 정리

 - 4시 30분 시작

 - 랜덤으로 요일 별 moderator 정하기

3. 강의 발표

4. 과제 질문