목록AI/Deep Learning (49)
우노

오토인코더란? 오토인코더(Autoencoder)는 위 그림과 같이, 단순히 입력을 출력으로 복사하는 신경망이다. 어떻게 보면 간단한 신경망처럼 보이지만, 네트워크에 여러가지 방법으로 제약을 줌으로써, 어려운 신경망으로 만든다. 예를들어, 위 그림처럼 hidden layer의 뉴런 수를 input layer(입력층) 보다 작게해서 데이터를 압축(차원을 축소)한다거나, 입력 데이터에 노이즈(noise)를 추가한 후 원본 입력을 복원할 수 있도록 네트워크를 학습시키는 등 다양한 오토인코더가 있다. 이러한 제약들은 오토인코더가 단순히 입력을 바로 출력으로 복사하지 못하도록 방지하며, 데이터를 효율적으로 표현(representation)하는 방법을 학습하도록 제어한다. Undercomplete Autoencode..

One-Hot Vector 기존의 자연어처리 분야에서는, 단어를 One-Hot Vector 로 표현했습니다. One-Hot Vector란, 예를 들어 사전에 총 10000개의 단어가 있고, Man이라는 단어가 사전의 5391번째 index에 존재한다면 Man이라는 단어를, 5391번째 index만 1이고 나머지는 0인 10000차원 Vector로 표현하는 것입니다. 이 방법은 단순하다는 장점이 있지만, 단어를 단순히 index에 따른 Vector로 표현하기 때문에, 여러 단어 간 유사성을 평가할 수 없을 뿐만 아니라, 사전의 단어 개수가 증가하는 경우, One-Hot Vector의 크기가 지나치게 커진다는 단점을 가지고 있습니다. 따라서, 단어의 유사성을 파악할 수 있고, 저차원을 가지는 Vector를 ..

NLP에서 단어를 표현하는 방법으로는 One-Hot Vector와 Word Embedding이 있다. One-Hot Vector와 Word Embedding에 대해서 알아보자. One-Hot Vector One-Hot Vector는 단어를 사전 개수 만큼의 차원을 가지는 Vector로 표현하는 것이다. 예를 들어, 사전에 총 10000개의 단어가 있고, Man이라는 단어가 사전의 5391번째 index에 존재한다면 Man이라는 단어를, 5391번째 index만 1이고 나머지는 0인 10000차원 Vector로 표현하는 것이다. 단점 여러 단어의 유사성을 표현해줄 수 있는 방법이 없다. 예를 들어, 위 그림처럼 Man과 Woman은 단순히 사전의 index에 따른 One-hot Vector로 표현되기 때문..

Naive Neural Network "Yesterday, Harry Potter met Hermione Granger"라는 문장을 입력 받았을 때, 문장의 각 단어가 사람 이름이라면 1, 아니라면 0을 매핑하는 Naive한 개체명 인식 신경망을 만든다고 가정해보자. 입력 문장의 각 단어는 Voca(단어사전)의 index를 통해 사전 개수 만큼의 차원을 가지는 one-hot vector로 매핑될 것이며, 단어는 총 9개이므로, 9개의 one-hot vector가 구성될 것이다. 따라서, 해당 단어가 사람 이름이라면, 해당 one-hot vector의 y값은 0으로 매핑 해당 단어가 사람 이름이 아니라면, 해당 one-hot vector의 y값은 1로 매핑되며 학습이 진행될 것이다. 하지만 이러한 방법은 ..

Sequence Model Sequence Model이란, 연속적인 입력(Sequential Input)으로부터 연속적인 출력(Sequential Output)을 생성하는 모델입니다. 예를 들어, 챗봇(Chatbot)과 기계 번역(Machine Translation)이 대표적인 예인데, 챗봇(Chatbot)은 입력 시퀀스와 출력 시퀀스를 질문과 대답으로 구성한것이며 기계 번역(Machine Translation)은 입력 시퀀스와 출력 시퀀스를 입력 문장과 번역 문장으로 구성한 것입니다. Sequence Data 여러 Sequence Model은 아래와 같은 Sequence Data들을 다룹니다. 위 그림을 통해, 다양한 종류의 Sequence Model들이 존재하며, 각 모델들은 여러가지 유형의 Sequ..

Neural Style Transfer Neural Style Transfer란, 두 이미지(Content Image & Style Image)가 주어졌을 때 Content Image의 형태는 유지하면서 Style Image와 유사한, 새로운 Image를 Generated 하는 것을 의미합니다. 위 그림에서는, 건축물을 Content Image로 주고, 화가의 작품을 Style Image로 주어, 건축물의 형태와 배치는 유지되면서 화풍만 유사한 새로운 Image가 생성된 것을 볼 수 있습니다. CNN 모델의 어느 Layer에서 특징(feature)를 추출할 것인가? Neural Style Transfer은 CNN 모델을 통해 동작하며, Content Representation과 Style Represen..

One Shot Learning One Shot Learning이란, 이미지 인식 분야에서 많이 사용되며 각 Class 에 따른 하나의 Training 이미지만으로, 이미지를 인식하고 분류하는 모델을 만드는 것을 말합니다. 보통의 얼굴 인식 시스템은 사용자의 사진이 한 장만 존재할 수도 있기 때문입니다. 하지만, 각 Class 에 따른 Training 이미지 수가 적다면, 이미지를 인식하고 분류하는 모델을 만드는 것은 어렵습니다. 물론 augmentation 과 같은 방법으로 샘플 수를 늘려서 해결할 수 있지만, 이 경우, 새로운 이미지가 데이터 베이스에 추가되었을 때, 모델을 새로 학습해야한다는 문제가 생깁니다. 즉, 실시간 시스템에 적합하지 않습니다. 따라서, 이러한 문제를 해결하기 위해, "입력 이..

Object Detection에는 여러가지 Algorithm이 존재합니다. Sliding Windows Detection YOLO Detection 하나하나 다뤄보겠습니다. Sliding Windows Detection 자동차 감지 알고리즘을 만들고 싶다고 가정해봅시다. 그렇다면, Sliding Windows Detection은 다음과 같은 순서로 진행됩니다. 1) 우선 X와 y로 Training Set를 만듭니다. 이 때, X는 자동차만 표현하도록 딱 맞게 자른 이미지입니다. 2) Training Set이 다 만들어졌다면, Training Set의 X를 Input으로 주는 ConvNet을 학습시킵니다. ConvNet은 y를 출력하며, y는 자동차인지 아닌지를 0 또는 1로 나타냅니다. 3) ConvNe..

Landmark Detecting 이미지가 주어졌을 때, 이미지 내 객체의 위치를 Bounding Box(bx, by, bh, bw)로 출력하는 방법을 Object Localization 이라고 합니다. 또한, 이미지가 주어졌을 때, 이미지 내 객체의 주요 지점을 X, Y 좌표로 출력하는 방법도 있습니다. 이를 Landmark Detecting이라고 합니다. Target Label y 예시 1 얼굴로부터 감정을 인식하고 싶다고 가정해봅시다. 또한, 이미지가 주어졌을 때, 눈의 가장자리, 코의 가장자리, 입의 가장자리, 턱의 가장자리 등 얼굴을 인식할 수 있는 64개의 지점, 즉 64개의 Landmark가 있다고 가정해봅시다. 이 때, 각각의 Landmark는 X, Y 좌표를 가질 것입니다. 첫 번째 La..

Object Detection을 구성하기 위해서는, 먼저 Object Localization을 알아야 합니다. 따라서, Object Localization이 무엇을 의미하는지부터 알아보도록 하겠습니다. Object Localization 위와 같이 이미지가 주어졌을 때, 이미지를 car라고 분류하는 것을 'Image classification'이라고 합니다. 이 때, car가 이미지 속 어디에 있는지까지 알아내는 것을 'Classification with localization'이라고 하며 localization을 사용해, 이미지에서 하나의 객체가 아닌 여러 객체를 인식하는 것을 'Detection'이라고 합니다. Classification with locali..