선형 대수학(linear algebra) : (데이터의) 공간을 분석하는 학문 (e.g. 3차원)
행렬(Matrix) → 숫자를 네모나게 모은 것. Vector(데이터)들의 묶음
Matrix를 쌓으면? 행렬을 묶은걸 또 쌓으면?
Matrix → Vector를 변환하는 역할
코드예시
원본 데이터(공간)를 선형 또는 비선형으로 변환하여
목적에 부합하는 잠재공간에 대응시킬 수 있는 parameter들을 찾는 과정
잠재공간 (Latent space) : Z
• 목적에 맞게 변형된 공간
• 데이터를 잘 표현할 수 있게 재구성된 공간
• 데이터의 잠재된 의미가 드러난 공간
딥러닝은 곧 차원 축소(변환)이다.
딥러닝 모델의 개념:
딥러닝(MLP)은 사실 비선형적인 boundary를 찾는 것이 아닌
데이터를 구기고 돌리고 늘려서 선형적인 boundary에 맞추는 것이다.
•데이터를 잘 표현할 수 있는 구성된 공간을 latent space(z)라고 함 → Representation Learning (T-sne, U-MAP, autoencoder)
• Observation Space에서 latent Space로 치환하는 과정을 Embedding이라고도 함
•잠재 공간(latent space)은 실제 관찰 공간(observation space)보다 작을 수 있음
참고:https://www.baeldung.com/cs/dl-latent-space
참고: https://argmax.ai/blog/vhp-vae/
Automatic Chemical Design Using a Data-Driven Continuous Representation of Molecules
참고 : https://www.kaggle.com/code/robinteuwens/anomaly-detection-with-auto-encoders/notebook
(2018) Deep One-Class Classification, Lukas Ruff et al
참고: Time Lens: Event-based Video Frame Interpolation
https://argmax.ai/blog/vhp-vae/
• MNIST classification하기 위해서는 최종적으로 몇 차원이 필요한가? class 별 데이터 수는?
• CIFAR100 classification하기 위해서는 몇 차원이 필요한가? class 별 데이터 수는?
• 회사 직원 얼굴 인식을 하기 위해서는 몇 차원이 필요한가? class 별 데이터 수는
우리가 모델을 구축하고 데이터 수집부터 기획해야하는 입장이라면?
척도(metric) :
◦ 학습을 통해 목표를 얼마나 잘 / 못 달성했는지를 나타내는 값 (MSE, CE, Accuracy, AUROC)
◦ 특정 기준 혹은 데이터와 데이터의 차이 또는 거리
학습 데이터들을 대조함으로써 latent space상에서 같은 범주(positive pair)의 데이터는 가깝게 당기고(pull)
서로 다른 범주는(negative pair)끼리는 서로 밀어내도록(push) 학습
생김의 유사도만 보고 판단하는것
참고: https://zzaebok.github.io/machine_learning/FSL/
Keras Code Examples
https://keras.io/examples/vision/siamese_contrastive/
Pytorch metric learning package
https://kevinmusgrave.github.io/pytorch-metric-learning/losses/
10개의 class를 3차원에 embedding!
class가 늘어나면 유동적으로 적절하게 embedding space의 차원을 설정할 수 있다.
너무 작으면 class간 충분한 angle이 주어지지 않는다.
너무 크면 차원의 저주로 인해 많은 데이터가 필요해진다.
Inference 과정
개념
• 절대적인 축이 아닌 데이터간의 유사함을 기준으로 임의의 차원의 latent space에 embedding하는 방법
장점
• 많은 class, 적은 데이터에도 상대적으로 높은 성능을 낸다. (meta-learning)
단점
• dataloader의 구성이 어렵다.
• 쌍을 구축하는 경우에 따라 학습데이터가 기하급수적으로 늘어난다. pair-wise : n^2, triplet : n^3
• batch의 영향을 많이 받기 때문에 batch를 크게 잡아야 할 때가 많다.
Self-supervised learning (자기 지도 학습) :
• 내가 나를 스스로 가르친다. 내가 나의 label이 된다.
• Augmentated data는 모두 동일한 이미지(positive set)로 고려한다. 나머지는 negative set
• 대상을 설명할 수 있는 metadata를 같이 학습함 (e.g. Wikipedia)
• 내가 보지 못한 것들도 분류하거나 생성할 수 있음
참고:https://www.v7labs.com/blog/zero-shot-learning-guide
흑백을 컬러로 가능
퍼즐로 만들고 빈공간 채우기도 가능
고해상도로 만들기 가능
글자로만 원하는 이미지 창조 가능
숫자는 파라미터의 갯수