본문 바로가기

KHUDA 활동 아카이브/CV 기초

(4)
CNN Visualization (CNN의 블랙박스 현상 해결법) 우리가 만든 CNN 모델은 어떻게 행동하고, 무엇을 보고 클래스를 판별했을까? Embedding Feature Analysis (추출된 특성 분석) (high level layer) Neareast-Neighbor 아래 파란색 박스를 통해(위치도 다르고 자세도 다름) 컨셉을 잘 학습했다는 것을 알 수 있다. 미리 학습된 뉴럴 네트워크 준비 / fc layer 전, 즉 중간 정도에 있는 layer들에 대해 특징 추출하도록 함. db안에 있는 모든 영상들, 이미지들에 대해서!! 그 특징들은 고차원 데이터일 것이다. 잘 훈련된 모델이라면, 같은 class 영상들의 feature들은 서로 가까이 있을 것이다. 이제 그 모델에 질의 영상을 입력하면, 그 영상의 feature은 자신과 같은 class인 영상들의 f..
[CV] Semantic Segmentation 및 object detection [CV] 이전까지는 단순히 사진의 객체를 분류하기만 하는 모델을 만들었지만, 이제 픽셀 단위로 객체를 구분해보고자 한다. CV에서는 이를 Semantic segmentation이라고 한다. 사진의 위에는 Image classification, 아래는 Semantic Segmentation이다. 기존 Image classification 모델에서는 주로 마지막 레이어에서 flattening을 하여 하나의 벡터로 바꿨다. 하지만 이는 이미지의 공간 정보를 고려하지 않는다는 말과 동일하다. semantic segmentation에서 이미지 내의 픽셀에 대한 공간정보는 매우 중요하기 때문에, 이 fully connected layer는 사용하기 힘들다. 그 대신, 1*1 convolutional layer를 사..
[CV] ImageClassification 종류 GoogleNet부터 다룬다. GoogleNet : 깊이가 아닌 너비로 필터를 접근. 대신 계산복잡도가 증가할 수 있기에, 1x1 layer를 적용 전체적인 구조는 다음과 같음 노란색 사각형 쪽은 Auxiliary classifier로, 오차를 중간중간에 꽂아주는 역할을 한다. vanishing gradient 문제를 방지해준다. ResNet : 현재도 많이 사용함 ‘네트워크의 layer 개수(depth)가 모델의 성능을 더 높여준다’를 보여줌 원래 사람들은 layer 개수가 많을수록 오버피팅이 일어난다고 생각했지만, 아래 그림을 보면 56개의 layer가 training erro도 높고 test error도 높은 것을 볼 수 있다. 이는 오버피팅과 관계가 없다. 실제 구조는 다음과 같다. RestNet..
[CV] Data augmentation 및 Transfer learning 딥러닝 분야는 데이터의 다다익선이 분명한 분야이다. 따라서 한정된 실제 데이터를 최대한 많이 늘리는게 중요한데, 이 떄 사용되는게 data augmentation이다. 만약 밝은 사진으로만 저렇게 동물 사진을 학습했다고 하자. 이때 검은색 바탕의 고양이의 사진을 받으면 모델은 잘 추론하지 못할 수 있다. 따라서 원래 데이터의 밝기를 낮추거나, 색깔을 변화시키는 등의 변화로 데이터셋을 늘려 모델을 더 잘 학습시킬 수 있다. 대표적인 augmentation 기법으로는 Crop, shear, brightness, perspective, rotate, affine 이 있다. 밝기 변화 crop affine augmentation할 때에는 어떤거 쓸건지, 얼마나 세게 할건지 두개의 파라미터가 필요하다. 2. pr..