목록전체 글 (768)
우노
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/8uV6g/btqXD4LdvXI/EyvKI8LJOAjapA7EcpASMk/img.png)
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로 표현되기 때문..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/djzQRA/btqXrDOM88u/rz0278KecpiK6NLIfcaqqK/img.png)
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로 매핑되며 학습이 진행될 것이다. 하지만 이러한 방법은 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bUR6wI/btqW8GrRK8o/1NAQ49lYsg8wWvVsKAIjm1/img.png)
Sequence Model Sequence Model이란, 연속적인 입력(Sequential Input)으로부터 연속적인 출력(Sequential Output)을 생성하는 모델입니다. 예를 들어, 챗봇(Chatbot)과 기계 번역(Machine Translation)이 대표적인 예인데, 챗봇(Chatbot)은 입력 시퀀스와 출력 시퀀스를 질문과 대답으로 구성한것이며 기계 번역(Machine Translation)은 입력 시퀀스와 출력 시퀀스를 입력 문장과 번역 문장으로 구성한 것입니다. Sequence Data 여러 Sequence Model은 아래와 같은 Sequence Data들을 다룹니다. 위 그림을 통해, 다양한 종류의 Sequence Model들이 존재하며, 각 모델들은 여러가지 유형의 Sequ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bh4iLj/btqWXbw5skj/sO3IeXJiIa92z9rwKA6M40/img.png)
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..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/wD5hA/btqWUqBSNue/jtekzuH9UpPB1KMgaMDhSK/img.png)
One Shot Learning One Shot Learning이란, 이미지 인식 분야에서 많이 사용되며 각 Class 에 따른 하나의 Training 이미지만으로, 이미지를 인식하고 분류하는 모델을 만드는 것을 말합니다. 보통의 얼굴 인식 시스템은 사용자의 사진이 한 장만 존재할 수도 있기 때문입니다. 하지만, 각 Class 에 따른 Training 이미지 수가 적다면, 이미지를 인식하고 분류하는 모델을 만드는 것은 어렵습니다. 물론 augmentation 과 같은 방법으로 샘플 수를 늘려서 해결할 수 있지만, 이 경우, 새로운 이미지가 데이터 베이스에 추가되었을 때, 모델을 새로 학습해야한다는 문제가 생깁니다. 즉, 실시간 시스템에 적합하지 않습니다. 따라서, 이러한 문제를 해결하기 위해, "입력 이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/tUGQu/btqWTXF0Axj/KRgzYKafasICXdV7xmYVvK/img.png)
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..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bWC5GF/btqWGKzVF3R/Vrqu3Bz1eCyirC9Fi65hk0/img.png)
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..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/wr2HN/btqWdanbS93/yAH4EH7T5yOpdETkQ18VM0/img.png)
Object Detection을 구성하기 위해서는, 먼저 Object Localization을 알아야 합니다. 따라서, Object Localization이 무엇을 의미하는지부터 알아보도록 하겠습니다. Object Localization 위와 같이 이미지가 주어졌을 때, 이미지를 car라고 분류하는 것을 'Image classification'이라고 합니다. 이 때, car가 이미지 속 어디에 있는지까지 알아내는 것을 'Classification with localization'이라고 하며 localization을 사용해, 이미지에서 하나의 객체가 아닌 여러 객체를 인식하는 것을 'Detection'이라고 합니다. Classification with locali..
오류 RStudio를 사용해 데이터를 출력하는 경우, 출력 항목이 매우 길다면 다음 경고가 발생한다. [ reached getOption("max.print") -- omitted 800 entries ] 해결 방법 options 명령을 통해 출력 제한을 늘리면 된다. options(max.print=1000000)
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/5VLlZ/btqVIbStisH/Q2IARgXgnxoVDbonkOx5u1/img.png)
CNN의 Layer 유형은 다음과 같습니다. Convolution Layer Pooling Layer Fully Connected Layer 해당 포스트에서는 Convolution Layer와 Pooling Layer 중심으로 다뤄보겠습니다. Convolution Layer 컨볼루션이란, 원본 이미지에서 특징을 추출하는 수학적 연산을 의미하며 (n, n) 이미지에 (f, f) 크기의 필터를 적용해 특징을 추출하게 됩니다. 아래 그림에서, 녹색 (5, 5) 행렬은 원본 이미지, 노란색 (3, 3) 행렬은 필터입니다. 필터는 원본 이미지 위를 이동하며, 이미지 픽셀 값과 필터 픽셀 값의 내적의 합을 출력으로 나타내게 됩니다. 딥러닝에서는, 이미지에서 원하는 특징을 감지할 수 있도록 필터의 값을 학습하게 됩니..