전체 글

0. 활성화함수 활성화함수는 이전에도 여러 번 말했듯이 모델에 비선형성을 부여하기 위해 사용된다. 선형함수의 layer들로만 구성할 경우 아무리 많이 쌓아도 결국 선형함수 하나로 표현되기 때문에 이는 레이어를 깊게 쌓는 의미가 없다. 따라서 적절한 선형함수를 적용해줘야 한다. 이번 글에서는 아주 간단하게 각 활성화 함수들의 특징에 대하여 알아보고자 한다. 1. Sigmoid $$ \sigma(x) = \frac{1}{1+e^{-x}} $$ 입력값과 상관없이 출력값이 반드시 0~1 사이 연속적이고 모든 값에 대하여 미분 가능 -> 출력값이 0 혹은 1에 가까울수록 미분값이 0에 가까워지는 gradient vanishing 문제 -> 이로 인해 잘 쓰이지 않음 -> 분류 문제에서 마지막 출력층에 사용됨 함숫..
0. EfficientNet 이번에는 EfficentNet에 대하여 리뷰를 해볼 것이다. 너무나도 유명한 네트워크이며 b0부터 지금 b7까지 다양한 버전이 존재하고 성능이 뛰어나다. 우선 이 논문의 Introduction에서 바로 성능비교를 한 이미지가 나오는데 이것만 봐도 솔깃하다. 동일 파라미터 수를 가진 모델들 대비 성능이 매우 뛰어난 것을 볼 수 있다. . 1. 배경 이 모델이 나오기 이전 VGG net에서 모델이 깊게 쌓을 때 모델의 성능이 올라가는 것을 밝혀내고 , ResNet에서 residual connection을 이용해서 엄청나게 깊게 쌓을 수 있도록 발전시켰었다. 이렇게 모델 깊이나 너비가 크고 입력 이미지의 스케일이 커질수록 성능이 잘 나오는 것은 이미 알려진 사실이었지만 그렇게 될수..
0. VGGNet VGGNet은 앞서 올린 AlexNet보다 2년 뒤에 나온 모델로 layer의 개수가 많이 증가하고 성능 또한 매우 향상된 것을 볼 수 있다. VGGNet은 네트워크의 깊이가 깊어질수록 성능의 변화에 대한 것을 분석해 보자고 하였다. 따라서 컨볼루션 필터 사이즈를 가장 작은 3x3으로 고정을 하고 레이어의 깊이를 깊게 만들어 비교하였다. 아래가 해당 연구에서 실행해본 구조들이며 현재에는 일반적으로 16개의 layer을 쌓은 것과 19의 layer을 이용한 VGGNet을 사용한다. 1. 커널 사이즈 우선 앞서 말했듯이 VGGNet은 컨볼루션 레이어의 필터 크기를 모두 3x3으로 고정하였는데 이것에 대하여 알아보자. 기존의 AlexNet 같은 경우에는 초반에 size=11, size=5 등..
0. AlexNet 이번에 소개할 모델은 AlexNet이다. AlexNet은 2012년 ImageNet 대회의 우승을 차지한 CNN구조의 모델이다. AlexNet은 크게 Convolution, Pooling, Normalization layer로 구성되어 총 8개의 layer 구조이며 최종적으로 1000개의 class로 분류한다. 위의 모델 구조를 조금 더 쉽게 볼 수 있는 layer 구조로 살펴보자. 주의할 점은 위의 모델 구조는 논문에 있는 모델 구조인데, input size가 아닌 224가 아니라 227이라고 저자가 밝혔다. 우선 AlexNet의 큰 특징들을 말해보고, 각각에 대하여 알아보자 1. ReLU 2. Reducing Overfitting -> Data Augmentation + DropO..
1. Backbone 컴퓨터 비전에서 Backbone이란 이미지에서 중요한 Feature을 잘 추출할 수 있도록 훈련된 모델로서, 주어진 비전 태스크를 잘 수행할 수 있는 압축된 Visual Feature을 산출하는 목적을 가진 모델이다. 여기서 말하는 Visual Feature이란 단어 그대로 어떠한 이미지의 특정 정보를 나타내는 단어이다. 이러한 Backbone 모델은 여러 layer로 구성되어 있는데, 다양한 visual을 feature을 추출하기 위해 각기 다른 level의 레이어 구조를 이용하기도 한다. 2. Decoder 앞서 말했듯이 backbone 모델은 이러한 visual feature을 추출하는 것이 목적이기 때문에 이것만으로는 우리가 원하는 task를 수행할 수 없다. 이때 `Deco..
0. Contour Detection contour은 윤곽이라는 뜻을 나타내며, Contour Detection은 이미지에서 객체의 contour을 추출하는 작업을 의미한다. 이러한 고전 컴퓨터비전의 Contour Detection은 일반적으로 딥러닝 모델 학습을 위한 데이터 가공시에 활용하는 편이다. 딥러닝을 이용하여 task를 수행하기 위해서는 다량의 데이터가 필요한데 이러한 데이터를 딥러닝을 이용하여 생성하다보면 딥러닝의 취약점을 가진 이미지들이 생성되기 떄문에 관계없는 방법으로 생성한 데이터를 이용하여 학습한다. Contour Detection은 아래의 과정을 거쳐서 진행되는데 각각의 과정에 대하여 알아보도록 하자. `Edge Detection` -> `Dilation`->`Contour Dete..
0. Morphological Transform Morphological Transform이란 고전적인 컴퓨터 비전 기술로, 이미지에 기반한 연산으로 일반적으로 흑백이미지에 수행한다. 입력으로 원본이미지와 커널(특정연산을 수행)을 넣는다. 커널의 종류로는 Erosion,Dilation,Opening,Closing,Morphological gradient, Top hat 등이 있다. 이 Morphological Transform은 단순하고 쉽게 사용할 수 있으며, 이미지 전처리 영역에서 유용하게 사용된다. 우선 이미지를 불러오고 OpenCV 라이브러리를 이용하여 간단한 코드도 알아보도록 하자. import cv2 as cv import numpy as np img = cv.imread('j.png', cv..
창빵맨
Let's be Developers