일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Faster R-CNN
- 논문분석
- SVM hard margin
- cs231n lecture5
- pytorch
- TCP
- yolov3
- RCNN
- Object Detection
- SVM margin
- darknet
- Deep Learning
- 데이터 전처리
- Computer Vision
- 서포트벡터머신이란
- svdd
- support vector machine 리뷰
- fast r-cnn
- SVM 이란
- DeepLearning
- cnn 역사
- libtorch
- CNN
- pytorch project
- CS231n
- computervision
- pytorch c++
- EfficientNet
- self-supervision
- yolo
- Today
- Total
목록study/cs231n (11)
아롱이 탐험대
드디어 cs231n의 마지막 chapter인 lecture13: segmentation and attention이다. lecture12는 각종 딥러닝 framework를 다루는 내용이라 스킵하겠다. 이번 시간에는 segmentation에 대해서 알아보자 기본적으로 segmentation은 크게 2가지 방식이 있다. 첫번째는 semantic segmentation이고 두 번째는 instance segmentation이다. semantic은 전통적인 방식을 가지고 있다. 기본적으로 one label per pixel이다. 모든 pixel은 class label을 가진다. 그래서 맨 왼쪽 소 그림처럼 각각의 object를 구분하지 못한다. 또한 class의 수는 fix 되어 있고 해당 class의 속하지 않으..
이번 강의에서는 Covolution nueral network가 실전에서는 어떻게 사용이 되는지 알아보자 시작하기 앞서 lecture10은 cnn이 아닌 rnn에 대한 내용을 담고 있기 때문에 pass 하겠다. 오늘 배울 내용들이다. 크게 3가지 chapter로 구성이 되는데 첫 번 재는 data, 두 번째는 convolution, 마지막으로는 hardware 측면에서 알아보겠다. 자 그럼 Data Augmentation에 대해 알아보자 일반적인 CNN에서는 모델에 image와 label이 들어가고, forward, backward path를 통해 loss를 구하고 줄인다. Data augmentation에서는 아래와 같이 image의 원본을 변형하는 과정이 쓰인다. Data augmentation은 이..
Lecture 9에서는 cnn을 보다 더 시각적인 자료와 함께 이해하는 시간이다. 우선 CNN이 무엇을 하는지 알아보는 방법은 여러 가지지만 우선은 Activation map을 보며 이해해보자. 우선 오른쪽에 있는 alex net에 존재하는 pool 5 layer에서 임의의 뉴런을 취한 후 train을 돌린다. 해당 layer에서 추출한 임의의 뉴런들 중 어떤 뉴런이 가장 활발하게 활성화되는지 실험을 하는 과정이다. 실험의 결과는 왼쪽의 그림과 같이 특정 객체가 있는 local에서 뉴런들이 활발히 activation 되는 것을 볼 수 있다. 2번째 방법은 kernel을 visualize하는 방법이다. 이는 garber filter를 이용한 결과이다. garber filter는 edge와 같은 featur..
이전까지는 cnn의 동작원리에 대해 알아보았고, 오늘부터는 cnn의 많은 종류 중 하나인 Spatial Localization and Detection에 대해 알아보자. 참고로 이번 챕터에서는 몇 개의 논문이 나오는데 이는 cs231n 분석에서 생략하고 논문 리뷰 카테고리에 있는 논문 리뷰를 링크를 줄 테니 참고 바란다. CNN을 크게 보면 4가지 종류가 있다. 전체적으로 본다면 오른쪽으로 갈수록 컴퓨터 입장으로써 더 어렵다고 생각하면 된다. 우선 맨 왼쪽에 위치한 classification부터 보자. classification은 단순히 사진을 input으로 받으면 cnn이 이에 해당하는 label을 붙어준다. 두 번째인 classification+localization은 앞서 설명한 classifica..
지난 시간에 이어서 본격적으로 Convolutional Neural Networks에 대해 알아보자 CNN에서 합성곱 연산을 어떤 방식으로 하는지 보자. 우선 CNN에 들어오는 image의 size를 32*32*3이라고 가정하자. 여기서 32는 각각 weight와 height를 의미하고 3은 depth를 의미한다. 처음에 들어올 때는 RGB라고 생각해도 무관하다. 그리고 해당 Image를 filter라는 것을 통해 합성곱 연산을 해준다. 연산 과정은 뒤에서 설명하겠다. 위 예시에서는 5*5*3 size의 filter가 존재한다. 여기서 주의해야 할 점은 filter의 depth와 image의 depth는 같아야 한다. 위처럼 image와 filter를 통해 합성곱 연산 후 bias값을 더해주는 구조이다...
지난 시간에 이어 Neuroal network의 학습 과정에 대해서 더욱 자세히 알아보자. 앞부분은 지난 수업의 복습이니 생략하겠다. 만약 기억이 안 나면 이전 포스팅을 보고 오길 바란다. 파라미터 업데이트에 관해 알아보자 뉴런 네트워크에서 training을 거치는 과정은 이런 과정으로 진행되고 마지막 줄과 같이 learning rate와 dx를 곱해 parameter update가 진행된다. 이러한 방법을 SGD 또는 경사 하강법이라고 부른다. 하지만 SGD는 갱신 속도가 매우 느려서 실제에서는 사용되지 않는다. 우리가 빨간색 행성에서 가운데에 위치한 행성으로 간다고 가정하자. SGD에서는 수직으로는 경사가 급하고, 수평으로는 얕다 따라서 가운데로 움직이는 벡터는 수직으로는 빠르게, 수평으로는 느리게 ..
activation function에 이어 data preprocessing에 대해 알아보자 데이터의 전처리 과정은 우선 각각에 대해 평균을 빼줌으로써 zoro-centered 시키는 과정을 통해 정규화를 진행한다. 하지만 image에서는 zero-centered 과정은 필요하지 않다. 그 이유는 각각의 pixel은 0~255까지의 범위이기 때문이다. PCA와 Whitening이라는 주성분 분석은 데이터의 차원을 줄이고자 진행한다. 하지만 이미지에서는 이것 또한 쓰지 않는다. image에서는 전체 img에서 평균이 되는 img를 빼주거나 아니면 channel별로 mean값을 빼주는 방법이 있다. 이 두 가지 방법 중 후자인 channel의 mean을 빼주는 방식이 더욱 간편하다. 다음은 매우 중요한 we..
지난 시간에 이어서 lecture 5를 살펴보자 우선 수업을 시작하기 전 실전에서 train을 어떻게 하는지에 대해 설명을 하였다. CNN을 train하려면 가장 필요한 건 막대한 데이터이다. 하지만 이 데이터들을 구하기도 힘들도 구했다 해도 train과 test 하는데 오랜 시간과 비용이 필요하다. 따라서 tensor flow, pytorch 같은 deep learning 모듈에서는 기본적인 finetuning 된 학습된 파라미터를 제공한다. (github이나 다른 사이트에서도 찾기 쉽다.) 따라서 우리가 가진 데이터는 너무 적은데, 우선 image net이라는 open data 웹사이트에 접속하여 image net data를 기반으로 학습을 시킨다. 그 후 우리가 가지고 있는 소량의 데이터로 fine..