일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 모션매칭
- Unreal Engine
- 언리얼엔진
- ue5.4
- Diffusion
- Font Generation
- GAN
- userwidget
- cv
- Generative Model
- UE5
- animation retargeting
- Stat110
- WinAPI
- WBP
- BERT
- 폰트생성
- motion matching
- ddpm
- 디퓨전모델
- Few-shot generation
- 딥러닝
- multimodal
- 오블완
- CNN
- 생성모델
- RNN
- deep learning
- dl
- NLP
- Today
- Total
목록AI (107)
Deeper Learning
텍스트 유사도 측정 자연어 처리에서 텍스트 유사도 문제는 Document의 유사도를 측정할 수 있는 모델을 만들어 해결이 가능하다. 두 질문이 유사한 질문일 경우 1, 아닐 경우 0으로 labeling 된 Quora Question Pairs 데이터셋을 CNN, MaLSTM 2가지 모델을 사용하여 텍스트 유사도를 측정해보겠다. Preprocessing 위와 같이 train 데이터는 2개의 질문인 question1, question2와 label인 is_duplicate로 이루어져 있다. Corpus의 특성상 ?와 : 같은 특수문자가 많아 정규표현식을 사용하여 영문을 제외한 특수문자나 숫자를 공백으로 대체한다. DataFrame에서 question1과 question2를 각각 list로 추출하여 할당하고 ..
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..
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..
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..
Glove Glove(Global Vectors for Word Representation)은 워드 임베딩을 구현하는 방법론으로 count와 prediction 2가지 방법을 모두 사용하는 알고리즘이다. CBOW와 Skip-gram을 활용한 언어 모델에서는 Corpus 전체의 통계적 정보를 활용하지 않는다. Word2Vec 임베딩으로는 local context가 유일한 단어를 임베딩 하는데 필요한 정보가 되기 때문에 문법적 영향으로 주변 단어가 동일한 단어군은 비슷한 벡터 공간에 매핑된다. 뜻이 다르더라도 주변 단어가 비슷한 경우는 작은 단위의 Corpus에 자주 나타나며 이렇게 임베딩 된 단어 벡터는 특정 과제를 수행할 때 문제가 있을 수 있다. 이러한 문제점은 local window와 함께 전역적인 ..
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..
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..
Feature Extraction Neural Net은 "Black box"라고 불립니다. 중간과정에서 정확히 무슨 일이 일어나는지 표현이 힘들기 때문입니다. 간단하게 이에 대한 insight는 Feature Extraction으로 얻을 수 있습니다. CNN을 예시로 들어 설명하겠습니다. 만약 사람의 얼굴 인식이 가능한 학습이 완료된 모델이 Deep CNN이있다고 생각하면 여러 은닉층은 각각 다른 특징에 대해 다른 가중치를 부여합니다. 위 그림과 같이 은닉층의 unit을 최대로 활성화 시키는 input을 시각화하면 다음과 같이 특징을 추출해내는 Feature Extraction의 역할을 하는 것을 알 수 있습니다. 얕은 은닉층에서는 선이나 모양등 간단한 low-level의 feature를 주로 감지합니다..
LSTM GRU와 비슷하게 기초 RNN에 Gate를 추가한 구조의 모델 Forget Gate, Update Gate, Output Gate를 사용합니다. Structure Forget Gate는 previous cell state (memory)인 $c^{}$를 얼마나 "Forget" 할 것인지 결정합니다. $\tilde{c}^{}$는 현재 시점의 정보를 담고 있습니다. Update Gate는 현재 시점의 정보를 담고 있는 $\tilde{c}^{}$의 특정 부분을 최종 $c^{}로 전달하기 위한 mask 역할을 합니다. Output Gate는 현시점에서 output을 정하기 위한 Gate입니다. Forward Propagation 위에서 설명한 Gate들을 사용하여 Forward Propagation이 ..
Why GRU? 기본 RNN을 구조를 사용할 경우 Deep Neural Network의 고질적인 문제인 Gradient vanishing과 Exploding gradient가 발생한다. 이를 해결하기 위한 기존 RNN와 다른 구조의 RNN이 필요하다. Structure GRU는 2개의 Gate(r: reset, z: update)를 사용하여 계산이 이루어진다. 위의 더 자세한 그림을 통해 보면 현재 시점의 input x와 전 시점의 hidden unit의 activations인 h가 하나의 Cell에 input으로 입력되는 것은 Basic RNN과 같다. 하지만 2개의 Gate와 tanh activation function이 추가로 GRU에서 사용된다. Weight관련 표기는 $W_{rc}$는 c와의 내..
Language Model 통계적 언어모델은 단어 시퀀스에 확률을 각각 할당하는 모델이다. input에 따라 같은 단어 or 문자에 부여되는 확률이 다르기 때문에 보편적인 결과를 위해서는 광범위한 데이터의 수집이 필요하다. 언어모델을 모델링 하는 방법은 여러가지가 있지만 앞에 주어진 단어를 기준으로 다음 단어를 예측하는 언어모델에 대해 서술하겠다. Modeling RNN모델을 사용하여 언어모델을 만드는 학습과정은 다음과 같다. input x = 'Failure is an option here' $x^{}$은 Sequence의 첫 input으로 zero vector 또는 문장의 시작을 알리는 token을 삽입한다. input x는 원래 input에서 문장의 마지막인 EOS를 제외하고 $x^{}$를 이어붙인..
Vocabulary Recurrent Neural Network(이하 RNN)은 주로 비정형 문자 데이터를 다루는데 사용된다. 딥러닝 신경망 알고리즘의 적용을 위해 비정형 데이터는 수치형 데이터로 전환되어야 한다. Lorem ipsum dolor sit amet. consectetur adipiscing elit. 위와 같은 문장 2개가 데이터로 주어졌을 때 이를 수치형 데이터로 변환하기 위해 간단한 Vocab을 만들면 다음과 같다. 첫 번째 문장에 Vocabulary를 사용하여 One-hot encoding을 적용한다. 각 행은 단어를 나타내고 각 열은 vocab의 단어의 출현 여부를 1 또는 0으로 나타낸다. 이와 같이 수치로 변환한 텍스트 데이터를 input으로 모델을 학습시킬 수 있다. Seque..
Fréchet inception distance GAN의 모델의 학습이 어려운 이유 중 하나는 완벽한 평가지표가 없기 때문이다. Generator와 Discriminator의 Loss는 실질적으로 유의미한 정보를 담고 있지 않기 때문이다. Fréchet inception distance은 GAN으로 생성된 output과 real data를 비교할 수 있는 지표로 사용된다. 생성된 이미지들과 실제 이미지의 분포를 비교하여 이를 평가지표로 선정한다. Intuitive definition Imagine a person traversing a finite curved path while walking their dog on a leash, with the dog traversing a separate finit..
Neural Style Transfer 이미지 C와 content가 비슷하고 이미지 S와 style이 비슷한 이미지 G를 만드는 알고리즘 Cost function의 정의는 다음과 같다. hyperparameter $\alpha$와 $\beta$에 의해 content loss, style loss에 weight가 적용된 Cost function Content Cost Function $a^{(C)}$ = input C가 hidden layer를 통과한 activations (1, n_h, n_w, n_c) $a^{(G)}$ = input G가 hidden layer를 통과한 activations (1, n_h, n_w, n_c) (n_h,n_w,n_c) = hidden layer의 output shape ..
install.package('packagename') - 패키지 설치 library(packagename) - import read.csv(Path) - csv 파일 불러오기 write.csv(file,path) - csv 파일 쓰기 head, tail로 상단(하단) 파일 보기 pandas와 마찬가지로 조건문을 기준으로 indexing 가능 x = runif(n, min, max) n개의 최소 min 최대 max까지 연속형 균일분포에서 난수 추출 colnames(data) = columns name 반환
import numpy as np import pandas as pd from sklearn.datasets import fetch_california_housing x,y = fetch_california_housing(return_X_y=True) k=fetch_california_housing() k.feature_names print(x.shape) print(y.shape) np.random.seed(1127) shuffle_ind = np.random.permutation(x.shape[0]) x=x[shuffle_ind,:] y=y[shuffle_ind] x_train = x[:int(x.shape[0]*0.8),:] y_train = y[:int(x.shape[0]*0.8)] x_test ..
Face Regonition의 문제점1. 각 label(사람)에 대한 많은 data(사진) 부족2. 기존 softmax와 일직선형 Network 구조를 사용할 경우 정확도가 낮다3. 새로운 label이 추가될 시 처음부터 training이 필요 => 두 이미지의 distance를 측정하도록 학습된 Network를 사용 $d(\alpha ,\beta ) \leq \tau $ -> 같은 이미지로 판별 Siamese Network구조가 같은 2개의 Network를 형성하여 last layer의 output을 비교Ex) A(64x64x3) -> NN -> 128d output = f(A) , B(64x64x3) -> NN -> 128d output = f(B)같은 네트워크를 통해 임베딩 하는 개념 $d..