본문 바로가기

데이터 과학/딥러닝(Deep Learning)

Triplet Loss 구현 Triplet Loss 구현은 아래 2가지로 구성된다. - Pair Wise Distance 계산 + Batch All Strategy 구하는 전략 - Pair Wise Distance 계산 + Batch Hard Strategy 구하는 전략 Pair Wise Distance 계산 - 임베딩 된 것 간의 거리 계산. 임베딩의 차원을 (B, 1) / (1, B)로 늘려 행렬 곱을 하면, 동일 임베딩 간의 제곱 값을 구할 수 있게 된다. tf.diag_part 참고. - Squared 옵션을 사용하지 않는다면, '0' 값을 가진 원소를 Epsilon을 더한 후 Sqrt 연산을 진행한다. def _pairwise_distances(embeddings, squared=False): """Compute the 2.. 더보기
CenterLoss의 구현 CenterLoss는 랜덤으로 정의한 각 클래스 중심으로 부터 샘플이 멀수록 패널티를 주어 클래스간 분리성과 클래스 내의 분산을 줄이는 방법으로 학습되도록 돕는다(Seperable Inter-Class differences and Minimizing Intra-Class variations) Center Loss의 식을 구성하는 각 원소는 아래와 같은 차원을 지닌다. x : (Batch_Size(32), feat_dim(2)) c_yi : (num_classes(10), feat_dim(2)) 의 사이즈를 지닌다. 각 원소의 사이즈가 위와 같을 때 아래의 빨간 박스 부분을 어떻게 코드로 구현하는지 살펴본다. 위의 식을 풀어 쓰면 아래와 같다 (1) 먼저 $x_i$(32 x 2)를 제곱한다 --> 열 방향.. 더보기
LSTM Autoencoder 설명 ※ 아래 글은 https://machinelearningmastery.com/lstm-autoencoders/ 해당 링크를 요약한 것입니다. Introduction Encoder-Decoder LSTM Models Early Application of LSTM Autoencoder Code Introduction - LSTM Autoencoder는 Encoder-Decoder LSTM 구조를 사용하는 Sequence 데이터를 위한 Autoencoder로 볼 수 있다(Learn compressed representation of sequence data, e.g. video, text, audio and time series sequence date) - 학습시에 Encoder 부분은 Sequence 데이.. 더보기
공분산(Covariance) 정리 공분산 행렬 개념 공분산 행렬 특징 공분산 행렬 개념 - 분산이 데이터(X) 자체의 퍼짐(Distribution) 정도를 나타내는 척도라면, - 공분산은 데이터 끼리(X, Y) 비교하여 Trend를 나타낸다. 따라서, 상대적인 지표이다. - 그 자체 값으로는 해석하기 난해하며 상관관계(Correlation), 주성분분석(PCA), 가우시안 혼합 모델(GMM) 계산에 쓰인다. ※ 분산(Variance) : $ E(X^2) - {E(X)}^2 $ 공분산 행렬 특징 Cov[Ax] = $ ACov[x]A^T $ 유도) $$ \begin{align}{\rm Cov}[A x] & = \mathbb{E}[(Ax - \mathbb{E}[Ax])(Ax - \mathbb{E}[Ax])^T] \\ & = \mathbb{E}.. 더보기
PCA(주성분 분석) 정리 목차 사전 지식 PCA 의미 계산 방법 정리 PCA 단점 사전 지식 공분산 - x와 y의 공분산은 모든 데이터에 대해 (x데이터 - x의 평균) * (y데이터 - y의 평균)의 평균을 뜻한다. - 각 확률 변수(X, Y)의 평균으로 부터 거리를 곱한 값의 기댓 값 - 공분산 행렬은 i번째 좌표 성분과, j번째 좌표 성분의 공분산 값을 행렬의 원소 (i, j)로 하는 행렬이다. e.g. 2차원 데이터 (x1, y1) ... (xn, yn)에 대한 공분산 행렬 계산 ※ 주 성분은 '데이터 공분산 행렬'의 고유값 분해(PCA) 혹은 '데이터 행렬'의 SVD(특이값 분해) 로 계산될 수 있다. ※ 특징 : $ Cov[Ax] = ACov[x]A^T $ PCA의 의미 - 데이터 분석(주성분 분석), 데이터 압축(차.. 더보기
Autoencoder 설명 출처 : 오코인코더의 모든 것(발표자 : 이활석) 영상 : www.youtube.com/watch?v=o_peo6U7IRM PDF : www.slideshare.net/NaverEngineering/ss-96581209?from_action=save Autoencoder 1. 배경 지식 1-1 DNN의 학습 1-2 Manifold 학습 2. Autoencoder Autoencoder - 데이터 집합의 표현(Representation)을 학습하는 것이다. - '비선형 차원 축소'와 같은 의미 - 관련 키워드 - Unsupervised Learning - 비 지도 학습, 즉 정답 데이터가 없다. - Manifold Learning - 차원 축소 역할 - Generative Model Learning - 학습.. 더보기
Sigmoid 함수 vs Softmax 함수 계단함수 Sigmoid 함수 Softmax 함수 계단함수, Sigmoid 함수 "퍼셉트론에서는 활성화 함수로 계단 함수를 이용한다"라고 할수 있다. 반면, 신경망에서는 활성함수로 시그모이드 함수를 이용하여 신호로 변환하고, 그 변환된 신호를 다음 뉴런에 전달한다. # 계단 함수 def step_function(x): y = x > 0 return y.astype(np.int) # 시그모이드 함수 def sigmoid_function(x): return 1 / (1 + np.exp(-x)) 계단함수와 시그모이드 함수 공통점 - 비 선형 함수 ※ 신경망에서 층을 깊에 쌓은 것에 대한 혜택을 받고 싶다면, 활성함수로 반드시 비선형 함수를 사용해야 한다. Relu 함수 # Relu 함수 def relu(x): .. 더보기
Transformer 설명 ※ 아래는 여러 블로그를 참고하여 만든 것입니다. 사전 지식) Attention 모델 ----------------- 기본 ----------------- 1) Transformer의 내부 2) Encoder의 내부 2-1) 구조 2-2) 역할 2-3) Self Attention 네트워크 3) Decoder의 내부 4) 전체 네트워크 구조 ----------------- 심화 ----------------- 5) Transformer 심화 5-1 ~ 6) Self-Attention 첫번째 ~ 여섯번째 단계 6) Multi-head Self Attention layers (MSA) 7) Positioning Encoding 방법 8) Decoder 상세 9) 마지막 단계 10) 학습 데이터 예시 Trans.. 더보기