일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 디퓨전모델
- 오블완
- ddpm
- multimodal
- cv
- userwidget
- Font Generation
- 폰트생성
- animation retargeting
- motion matching
- Few-shot generation
- BERT
- CNN
- deep learning
- Stat110
- dl
- ue5.4
- UE5
- 모션매칭
- Generative Model
- RNN
- WBP
- Unreal Engine
- 생성모델
- NLP
- GAN
- WinAPI
- 언리얼엔진
- 딥러닝
- Diffusion
- Today
- Total
목록분류 전체보기 (220)
Deeper Learning
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Itc2Y/btq4bB4FT06/lvkt4buccz09KRixWNkfv1/img.png)
XLNet XLNet은 구글 연구팀이 발표한 모델로 당시 SOTA를 여러 자연어 처리 태스크에서 달성하였다. Transformer-XL을 개선한 모델로 eXtra Long Network로 트랜스포머 모델보다 더 긴 문맥을 볼 수 있다. AE방식의 언어모델인 BERT의 장점과 AR방식의 언어 모델인 GPT의 장점을 갖춘 Permutation language modeling을 사용함. BERT에는 몇가지 한계가 존재한다. MASK 토큰이 독립적으로 예측됨 Token 사이의 관계 학습이 불가능하다 ( 서로 독립적이라는 가정하에 있음 ) Embedding length의 제한으로 Segment 간 관계 학습 불가능 예를 들어 New York is the city 라는 시퀀스에서 New York 두 토큰이 [MAS..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/GNi6b/btq2NUDPQE5/wm9sSXyHB7gCNCRqDLbouk/img.png)
BERT BERT는 구글에서 개발한 언어 모델로 2018년 10월 논문 출시 후 다수의 NLP 태스크에서 SOTA를 기록하였다. BERT는 Transformer 기반 모델로 Encoder 부분만을 사용한다. Input은 두 개의 문장을 tokenizer를 사용하여 토큰화 시키고 문장의 시작에 special token인 [CLS]를 추가하고 두 문장 사이와 두 번째 문장의 끝에 [SEP] 토큰을 삽입한다. BERT의 input embedding은 input sentence의 tokenizing 형태인 token embedding, 앞 문장, 뒷 문장을 0 or 1로 나타내는 Segment Embedding, RNN과 달리 poistiion정보가 내포되어있지 않기 때문에 이를 위해 추가한 Position e..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/btzNuJ/btq0tYJiAY1/mKUKg0evzdxO7XfmRUc3Z1/img.png)
Why Floating Point (부동 소수점) 32bit는 총 2^32개의 수의 표현이 가능하다. Fixed-point를 사용할 경우 정수부와 소수부의 bit 수가 고정이 되어 소수부가 모두 0인 정수의 경우 Fractional part의 bit가 모두 0을 나타낸다. 이처럼 사용하지 않는 bit가 많아 비효율적이고 전체 표현가능한 수의 범위 또한 작다. Floating-point를 사용할 경우 Fixed-point 처럼 표현 가능한 수가 연속적이지 않아 근사를 사용한다. 정확도가 Fixed-point 보다 낮고 연산 속도가 느리지만 더 넓은 범위의 수를 표현할 수 있게 된다. IEEE standard 754 IEEE 754는 IEEE에서 개발한 부동소수점을 표현하는 가장 널리 쓰이는 표준이다. +0..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rn44I/btq0kEW5Tb4/4dqt1YPUhya5quhLbxG3a1/img.png)
What is Multimodal Learning? Modality(a particular way of doing or experiencing something)가 다른 데이터를 사용하여 이루어지는 학습이다. 예를 들어, 이미지 데이터와 텍스트 데이터를 input으로 사용하는 image captioning task가 Multimodal Learning에 속한다. Challenge Multimodal Learning이 쉽지 않은 이유는 여러 가지가 있다. Different representations between modalities 이미지, 오디오, 텍스트, 3D 데이터는 그 표현 형식이 서로 달라 단순한 연산이 불가능하다. Unbalance between heterogeneous feature spac..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bdwo4G/btqZ3gii61w/vBuKymNrvtc20BaiPCGk5K/img.png)
2-stage detectors 2-stage detector는 객체가 존재할 가능성이 높은 영역(ROI: Region of Interest)을 추출하고 CNN을 통해 class와 boundig box의 위치를 찾는다. R-CNN, Fast R-CNN, Faster R-CNN 등이 2-stage detector에 속하며, YOLO, SSD 등이 1-stage detector에 속한다. 2-stage detectors인 R-CNN, Fast R-CNN, Faster R-CNN에 대해 매우 간략하게 차이점과 발전과정을 중심으로 작성하고자 한다. (자세한 각 알고리즘에 대한 설명은 후에 따로 작성할 예정) R-CNN Region Proposals with CNN(R-CNN)은 object detection을 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bPOmwE/btqZVlRFRCT/D3F15m3J0waXKr6csQCp10/img.png)
Semantic segmentation Semantic segmentation은 이미지의 픽셀 별로 label을 부여하는 task로 각 instance 별로 구분은 하지 않는다. Fully Convolutional Network (FCN) FCN은 Semantic Segmentation을 수행 가능한 네트워크 구조 중 하나로 Image Classification을 위한 네트워크의 아키텍처에서 Fully Connected Layer를 Fully Connected Layer로 대체한 형태의 아키텍처를 가지는 모델이다. 1x1 convolution layer를 사용하여 activation map의 차원을 조절하며 마지막에는 class 갯수와 동일한 차원의 activation map이 나오게 된다. width와..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bnujTs/btqZSwyi7mK/EUsMU8BTGVCTASbs1u9kq1/img.png)
Knowledge Distillation Knowledge distillation은 2014 NIPS 2014 workshop에서 Geoffrey Hinton, Oriol Vinyals, Jeff Dean이 발표한 논문 "Distilling the Knowledge in a Neural Network"에서 소개된 개념이다. Knowledge distillation은 Pre-trained 된 대용량의 Teacher Network의 정보를 비교적 작은 크기의 Student Network로 전이시키는 것이다. Teacher-Student Network Student 모델은 Teacher Model을 더 적은 parameter를 가지고 모방하도록 학습된다. unlabeled data만을 사용하여 student ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/eybd5j/btqYAtRdMwI/oeZ61ZzGdTUjZkOIZYT6OK/img.png)
Node Embedding 정점 임베딩(Node Embedding)은 주어진 그래프에서 각 정점을 벡터 표현으로 변환하는 것이다. 그래프에서 정점간 유사도를 임베딩 된 벡터 공간에서 보존하는 것을 목표로 임베딩 한다. 인접성/거리/경로/중첩/랜덤워크 기반 접근법으로 similarity를 정의한다. 위의 정점 임베딩 방식은 학습의 결과로 임베딩된 정점의 벡터를 얻게 되는 Transductive(변환식) 방법이다. 변환식 정점 표현 방식은 학습이 진행된 후, 추가 정점에 대한 임베딩을 얻을 수 없으며 정점의 속성(Attribute) 정보를 활용할 수 없으며 모든 정점에 대한 임베딩을 저장할 공간이 필요하다는 문제점이 있다. 변환식 방법의 한계는 학습의 결과로 정점을 임베딩 시키는 인코더를 얻는 귀납식 임베딩..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/MZSgF/btqYveGGkRP/VkN2kDfPvEt227x6McQQ2K/img.png)
Netflix Challenge Netflix에서 2006년~2009년에 진행된 RMSE 0.8563을 목표로 하는 추천 시스템 챌린지 협업 필터링 user-user 협업 필터링은 유사한 취향의 사용자를 찾는것이 핵심이다. 취향의 유사도는 Correlation Coefficient(상관 계수)를 통해 측정한다. 상관계수를 사용하여 상품 s를 구매한 사용자 중 x와 취향이 가장 유사한 k명의 사용자 N(x ;s)를 선정한다. 사용자 x가 구매하지 않은 상품 s에 매길 평점을 예측하는 식은 다음과 같다. 취향이 유사한 사용자와의 유사도를 가중치로 사용한 평점의 가중평균을 계산한다. 이렇게 추정한 평점이 가장 높은 상품을 대상 사용자에게 추천해준다. 협업 필터링은 상품에 대한 부가정보가 없이 사용이 가능하지만..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/PYHeB/btqYuq8i7iy/rpGAgkfSxkAk5Pd66ww3G0/img.png)
Community 군집(Community)은 집합에 속하는 정점 사이에 많은 간선이 존재하지만 집합에 속하는 정점과 그렇지 않은 정점 사이에는 적은 수의 간선이 존재하는 정점들의 집합이다. Community Detection 그래프를 여러 군집으로 잘 나누는 문제를 군집 탐색(Community Detection) 문제라고 한다. Configuration Model(배치 모형) 군집탐색의 metrics은 Modularity(군집성)을 사용한다. 군집성을 계산하는 수식은 다음과 같다. S는 모든 군집 s의 집합 즉, 군집성은 무작위로 연결한 배치 모형과의 비교를 통해 통계적 유의성을 판단한다. -1 이상 1 이하의 값을 가지며 보통 0.3 ~ 0.7 정도의 값을 가질 때 통계적으로 유의미한 군집을 찾아냈다고..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sn2oR/btqYwiBcGE1/ebkpvDYDSSPMsM2Wss2gq1/img.png)
PageRank PargeRank는 구글의 창업자인 Larry Page와 Sergey Brin이 논문을 통해 발표한 이론으로 사용자 키워드와 관련성이 높고 신뢰할 수 있는 웹페이지를 찾기 위한 방법이다. 웹은 Vertex인 웹페이지와 Edge인 하이퍼링크로 구성된 거대한 방향성을 가지는 그래프로 볼 수 있다. 페이지랭크의 핵심아이디어는 투표로 투표를 통해 사용자 키워드와 관련성이 높으며 신뢰할 수 있는 웹페이지를 찾는다. In Degree가 크다는 것은 들어오는 간선이 많다는 것이고 신뢰할 수 있다는 이론이 바탕이 된다. 단지 In Degree로 신뢰도를 평가하면 악용의 소지가 있다. 투표에 가중치를 부여하여 이를 해결한다. PageRank Score 페이지랭크 점수는 웹페이지의 관련성 및 신뢰도의 척도..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ctGICS/btqYmIHNczu/DgqNwzOyEJosUXRDynQ5u1/img.png)
What is Graph? Graph는 Network라고도 불리며, 정점(Vertex=Node) 집합과 간선(Edge=Link) 집합으로 이루어진 수학적 구조다. 그래프는 복잡계를 표현하고 분석하기 위한 언어다. ※복잡계: 완전한 질서나 완전한 무질서를 보이지 않고, 그 사이에 존재하는 계로써, 수많은 요소들로 구성되어 있으며 그들 사이의 비선형 상호작용에 의해 집단 성질이 떠오르는 다체 문제이다. 통신 시스템, 70억 인구로 구성된 사회, 소셜네트워크, 뇌 뉴런 또한 모두 구성 요소 간의 복잡한 상호작용을 특성으로 가지는 복잡계다. 복잡계는 그래프를 통해 효과적으로 표현과 분석이 가능하다. 그래프를 사용한 인공지능 Node Classification(정점 분류): 트위터에서 공유관계를 분석하여 사용자의..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dcrwPj/btqYfWlHNIx/kEZeBDPbe9f9T039fAkRxk/img.png)
Self-Supervised Pre-Training Models 문서 분류, 감성 분석, 질의응답, 문장 유사성 파악, 원문함의 등 과제는 각각 주어진 과제에 알맞은 처리가 완료된 데이터가 필요하다. 미분류 corpus의 경우 매우 많으나 특정 목적을 위해 Labeling, 전처리가 완료된 데이터는 현저히 부족하다. 미분류 corpus를 사용하여 언어 모델을 학습시키고 특정 목적에 맞게 fine-tuning 하는 것으로 이를 어느 정도 해결할 수 있다. 비지도 학습인 미분류 corpus로 학습한 언어모델과 이를 supervised fine-tuning 하는 Self-supervised pre-training을 통해 언어이해(NLU)를 달성하는 것이 GPT의 목적이다. GPT-1 GPT-1은 OpenAI에..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/PZgVF/btqWX4TJoTX/UJzrW6tkqJxSo2G4511Mh1/img.png)
Momentum Momentum 방식은 Gradient Descent에 관성을 적용한 것으로 각 weight의 과거 시점의 정보를 저장하고 이를 활용하여 weight가 업데이트된다. $\gamma$는 momentum term으로 0.9를 기본값으로 대부분 사용한다. 위의 그림처럼 Oscillation이 발생할 경우 Momentum을 사용하면 이동방향이 계속해서 바뀔 경우 업데이트가 덜 되며, 같은 방향으로 업데이트가 계속될 경우 더 빠르게 업데이트되기 때문에 결과적으로 SGD보다 빠르게 global minima에 도달할 수 있다. Adagrad Adagrad(Adaptive Gradient)는 지금까지 각 변수의 누적 변화 정도를 기록하여, 변화가 많았던 변수는 step size를 작게 하고 변화가 없었..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/JbM9A/btqWUpqbX0C/ziaHi5F4vikLiVqpvfJIk0/img.png)
Autoencoder 오토 인코더는 위와 같이 input을 다시 재구성하는 구조로 hidden layer의 차원 수를 줄이거나, noise를 추가하는 등 제약을 통해 input이 그대로 output으로 복사되는 것을 막으며 데이터를 효율적으로 표현하는 방법을 학습한다. 차원 축소, feature extraction처럼 Autoencoder를 사용할 수 있는데 Encoder는 결국 input을 다시 재구성할 수 있는 가장 효율적인 feature를 추출해내는 과정과 유사하기 때문이다. Sparse Autoencoder hidden layer의 차원이 input의 차원보다 같거나 많으면 압축된 중요한 특성을 추출하지 못하고 원본을 그대로 복사하는 방향으로 학습이 이루어질 수 있다. 이를 방지하기 위해 Spar..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/GTjWQ/btqWU8OJW9o/TnLygJXx20KQFGLIKJpZ41/img.png)
Gradient Descent 경사하강법은 미분을 통해 얻은 Gradient Vector를 빼서 Weight를 업데이트하여 cost function을 줄이는 알고리즘이다. Loss fucntion의 기울기를 미분을 통해 구하고 경사의 절댓값이 낮은 쪽으로 계속 이동시켜 극값에 이를 때까지 반복시킨다. Formula $f(x)$: 최소값을 만드는 것이 목표인 Loss function $x_{i}$: i번째 업데이트된 weights $x_{0}$: x의 초기값 $\eta$: Learning Rate 위의 과정을 반복하여 $f(x)$의 값이 정해진 값 보다 작아질 때까지 이를 반복한다. #gradient: grad function #eps: epsilon var = init grad = gradient(var..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dXbqSo/btqWU7nF8Rq/sqc34ouT5HkfK5633OJG8K/img.png)
SQL SQL(Structured Query Language)는 관계형 데이터베이스 시스템(RDBMS)에서 데이터를 삽입, 수정, 삭제하기 위해 설계된 프로그래밍 언어이다. SQL DB에는 MySQL, Oracle DB, Maria DB 등이 있다. SQL DB에서 데이터는 스키마에 따라 DB 테이블에 저장된다. 데이터는 중복되지 않으며 무결성, 일관성을 유지하며 관계를 통해 연결된 여러 테이블에 저장된다. 각 column은 int, string 등 자료형이 지정되어 있으며 특정 조건을 추가하여 이에 맞는 데이터 만을 받아들인다. Schema 스키마는 데이터베이스 구조와 제약조건에 대해 기술한 것으로 DB내에서 데이터의 구조를 나타낸다. 외부 스키마 사용자가 필요로 하는 데이터베이스의 논리적 구조 =서브..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b44kF8/btqWx65NbCo/sOj15BkeYd0yrwnYjYgXPK/img.jpg)
멀티프로그래밍 환경에서 공유자원의 안정적인 사용을 위해서는 여러 프로세스가 동시에 접근하는데 제한을 두어야 한다. 이를 위하여 Semaphore와 Mutex가 고안되었다. Semaphore 예를 들어 프로세스 A는 변수 x를 1 증가시키고 프로세스 B 역시 변수 x를 1 증가시킨다고 하자. x=1 -> A가 x를 load -> B가 x를 load -> A가 x++ -> B가 x++ 위와같은 과정을 거치면 x는 3이 아닌 2가 된다. 이는 동시에 두 프로세스가 한 공유자원을 변경하며 생긴 문제로 이를 Semaphore를 사용하여 해결이 가능하다. 임계 영역(critical section)은 공유자원에 접근할 수 있는 영역으로 Semaphore를 통해 보호한다. P는 S를 1만큼 감소시키는 함수이며, V는 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/AJGGq/btqWNdIpdgw/9fVWgpkaZcAwXkvNKKayc0/img.png)
Virtual Memory 가상 메모리가 없다면 프로세스를 실행하기 위해서는 전체 프로세스가 실제 메모리에 존재하여야 한다. 가상 메모리를 사용하여 가상 메모리 주소를 할당하면 현재 필요한 프로세스의 부분만 메모리에 적재하여 실행이 가능하기 때문에 실제 RAM보다 메모리 영역을 크게 사용하는 것이 가능하다. 가상 메모리는 Logical Memory와 Physical Memory를 분리하여 RAM의 용량을 초과하는 프로세스를 실행 가능하도록 한다. 가상메모리의 프로그램이 실행될 경우 MMU(Memoery Management Unit)에 의해 실제 물리적인 메모리의 주소 값으로 매핑된다. Paging & Segmentation Paging(페이징)은 고정된 크기로 메모리를 나누어 할당하는 방식으로 Physi..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bUgfwA/btqWsIKOr2h/2j0icvyOq1TaVfKHSPGl6k/img.png)
Dynamic Programming (동적 계획법) DP는 하나의 문제를 여러 개의 작은 하위 문제로 나누어 풀고 이를 결합하여 최종적인 문제에 도달하는 것이다. 각 하위 문제의 결과를 계산하고 기록하여 같은 하위 문제가 등장하였을 경우 기록된 결과를 사용하여 간단하게 문제를 해결할 수 있다. 위 방법을 통하여 계산량을 줄일 수 있으며 이는 하위 문제가 기하급수적으로 많은 경우 유용하다. Top-down: 큰 문제를 작은 문제로 나누고 재귀호출을 통해 해결한다. Bottom-up: 작은 문제부터 최적해를 쌓아가면서 마지막 궁극적인 최적해에 도달한다. (for loop) Greedy Algorithm DP는 항상 최적해를 구해내지만 모든 경우를 고려한다는 단점이 있다. 그리디 알고리즘은 현 상황에서 최적의..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bKy6fW/btqVnXnwqKr/DleOPNwNnXCTpr5CAclqVK/img.png)
조건부 확률 사건 B가 일어난 상황에서 사건 A가 발생할 확률 베이즈 통계학은 조건부 확률을 사용한 통계학 베이즈 정리 사전 확률로부터 사후 확률을 구할 수 있다. 베이즈 정리는 불확실성 하에서 의사결정문제를 수학적으로 다룰 때 중요하게 이용된다. 전통적인 확률이 연역적 추론에 기반을 두고 있다면 베이즈 정리는 확률임에도 귀납적, 경험적인 추론을 사용한다. A는 관측을 통해 값을 알아낼 수 있는 대상이며, B는 불확실성 하의 계산 대상이라고 하면 B의 확률은 $P(B)$에서 $P(B|A)$로 변화하고, 베이즈 정리로 이 변화를 계산할 수 있다. 새로운 데이터가 들어왔을 때 앞서 계산한 사후 확률을 사전 확률로 사용하여 정보의 갱신을 통해 새로운 데이터의 정보를 반영한 갱신된 사후 확률을 구할 수 있다. ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/XPZXS/btqSxBOOBeV/wHD1LAYnolJy7BBounIv0K/img.png)
Attention seq2seq 모델에서 RNN, LSTM, GRU 모두 초기시점의 정보가 희석되고 Decoder로 전달되는 Encoder의 마지막 hidden state (+ cell state) 하나에 모든 Encoder의 input의 정보를 담기가 어려워 정보 손실이 일어난다. 이를 해결하기 위해 seq2seq 모델에서 Decoder에서 output 각각의 계산이 모두 Encoder의 hidden state를 참고하여 이루어지는 Attention Mechanism이 제시되었다. 기계번역의 예시에서 Encoder가 특정 단어를 input으로 받아 도출한 output은 상응하는 단어를 번역하는 Decoder가 예측을 하는데 필요한 input과 유사할 것이라는 가정하에 만들어진 Attention Mech..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bdmB7d/btqUYF9GGUU/7i74mPC1tFCVQHhElsOwo0/img.gif)
Monte Carlo Method 난수를 이용하여 함수의 값을 확률적으로 계산하는 알고리즘 이다. 확률분포를 모를 때 주어진 데이터를 사용하여 기대값을 계산하기 위해 몬테카를로 샘플링 방법이 사용된다. 독립추출이 보장된다면 대수의 법칙에 의하여 모평균으로의 수렴이 보장된다. Examples 정사각형에 내부의 사분면에서 Monte Carlo 방법을 사용해서 pi의 값을 추정할 수 있다. 정사각형 위에 x, y 좌표가 각각 0~1 범위의 균일분포를 따르도록 점을 찍는다. 사분면 내부의 점의 개수를 세어 전체 점 개수와 비교하여 비율을 계산하여 4를 곱하여 pi의 근사치를 계산할 수 있다. 위와 같은 수식의 값도 Monte Carlo 방법을 사용하여 추정할 수 있다. 구간의 길이가 -1 ~ 1로 2가 되기 때..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bl5ltW/btqROfFWga2/vH0VaRmMD426cO2GTH7Kx1/img.png)
텍스트 유사도 측정 자연어 처리에서 텍스트 유사도 문제는 Document의 유사도를 측정할 수 있는 모델을 만들어 해결이 가능하다. 두 질문이 유사한 질문일 경우 1, 아닐 경우 0으로 labeling 된 Quora Question Pairs 데이터셋을 CNN, MaLSTM 2가지 모델을 사용하여 텍스트 유사도를 측정해보겠다. Preprocessing 위와 같이 train 데이터는 2개의 질문인 question1, question2와 label인 is_duplicate로 이루어져 있다. Corpus의 특성상 ?와 : 같은 특수문자가 많아 정규표현식을 사용하여 영문을 제외한 특수문자나 숫자를 공백으로 대체한다. DataFrame에서 question1과 question2를 각각 list로 추출하여 할당하고 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/H2h9H/btqRt5Ymrbb/BqfYAOEUkBna2vrMUsLpJk/img.png)
DCGAN GAN(Generative Adversarial Networks)은 Generator와 Discriminator 2개의 모델을 사용하여 실제 데이터와 비슷한 데이터를 생성하는 생성 모델이다. Random 한 Noise vector를 input으로 사용하는 Generator는 실제 데이터와 같은 shape의 데이터를 output으로 한다. Discriminator는 실제 데이터와, Generator가 생성한 데이터를 구별해내는 모델로 Binary Classification 모델이다. DCGAN은 Dense Net이 아닌 Convolutional NN를 사용하는 모델이다. DCGAN structure Generator는 위와 같은 구조로 위의 예시는 100d의 noise vector는 Transp..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c8iQpT/btqRlH3NWFT/b7oFbMfOtfKeIcLC45kKR1/img.gif)
Why BLEU? 기계번역의 결과의 품질을 평가하기 위한 지표로 품질은 인간이 번역한 결과와 모델의 번역의 일치하는 정도와 같다. X: Le chat est sur le tapis Y1: The cat is on the mat Y2: There is a cat on the mat pred1: the the the the the the the pred2: Cat on the mat pred3: The cat the cat on the mat 위의 예시에서 보면 output의 길이가 다르고 pred1처럼 반복적인 단어의 sequence가 output일 경우 기존의 metrics의 사용이 힘들다. BLEU Bigrams BLEU를 먼저 예시로 들겠다. pred3: The cat the cat on the ma..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/H9J3X/btqQ8NKsCjN/0K5S7x9iYipbvAC2a4nDLK/img.png)
Why Beam Search? 기계번역, 이미지 캡션 생성 등 $\hat{y}$가 둘 이상의 연속적인 Sequence가 되는 Decoder 형태의 모델에서 예측된 값은 다음 예측을 위한 input 값으로 피딩 된다. 위의 예시에서 Greedy Search를 사용하면 빠른 속도로 예측 과정이 완료되나 하나의 예측만을 고려하기 때문에 minor 한 변화에 영향을 받지 않아 최적의 예측을 하지 못활 확률이 Beam Seach보다 높다. 따라서 여러가지 예측을 하는 Beam Search를 사용한다. Beam Search vocab size가 10000인 예시에서 Encoder 부분을 지나고 처음으로 예측이 이루어지는 부분에서 구해야 하는 값은 $\underset{y}{argmax}P(y^{}|x)$이다. ($y..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bflBPb/btqPqmnFawF/9nGUsjKQFvpsSo2rPyMxg1/img.png)
Glove Glove(Global Vectors for Word Representation)은 워드 임베딩을 구현하는 방법론으로 count와 prediction 2가지 방법을 모두 사용하는 알고리즘이다. CBOW와 Skip-gram을 활용한 언어 모델에서는 Corpus 전체의 통계적 정보를 활용하지 않는다. Word2Vec 임베딩으로는 local context가 유일한 단어를 임베딩 하는데 필요한 정보가 되기 때문에 문법적 영향으로 주변 단어가 동일한 단어군은 비슷한 벡터 공간에 매핑된다. 뜻이 다르더라도 주변 단어가 비슷한 경우는 작은 단위의 Corpus에 자주 나타나며 이렇게 임베딩 된 단어 벡터는 특정 과제를 수행할 때 문제가 있을 수 있다. 이러한 문제점은 local window와 함께 전역적인 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/TFQb9/btqPfTyjLmx/rKb5xl4qzDfd2pws958C01/img.png)
Word Embedding Vocabulary를 사용하여 One-hot encoding을 통해 비정형 텍스트 데이터를 수치형 데이터로 전환하여 input으로 사용이 가능하다. 하지만 오직 index하나로 단어의 정보를 표현하고 특정 단어의 index를 제외하고 모두 0으로 이루어진 one-hot vector를 사용하여 생기는 데이터의 Sparsity는 통계적 모델의 성공적인 학습을 방해한다. 특정 단어의 학습이 그 단어와 유사한 단어의 학습과 전혀 다른 과정이 되기 때문에 단어 간의 유사성의 학습이 쉽지 않다. 따라서 Word Embedding이 필요하다. Vocabulary의 size가 100,000 일 때 100,000 차원의 one-hot vector가 만들어진다. 하지만 Word Embedding..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rRn6f/btqPaVbah2h/9iv6FtoSbV6ZTkF7AegWn1/img.png)
Why Inception score GAN은 생성된 결과물의 performance의 측정이 어렵다. Generator와 Discriminator의 loss만을 보고 생성된 결과물의 performance를 측정하는 것은 정확하지 않다. 완벽한 가상의 Discriminator를 속일 수 있는 Generator가 존재한다면 측정이 가능하지만 현실적으로 불가능하다. Generated output에 대한 performance를 측정하기 위한 metrics가 필요하고 이를 위해 고안된 여러 가지 방법 중 하나가 Inception Score. Inception Score (IS) Inception score(이하 IS)는 pre-trained된 inception v3 모델을 사용하기 때문에 붙여진 이름이다. Imag..