본문 바로가기

분류 전체보기

Gaussian Mixture Model(GMM) ※ Gaussian Mixture Model(가우시안 혼합 모델)을 알기전에 먼저 Multivariate Gaussian Distribution(다변량 가우시안 분포)을 먼저 알아야 한다. 1. Gaussian Mixture Model(GMM) 정의 2. GMM을 이용한 분류(Classification) 3. EM 알고리즘을 이용한 GMM 학습 (EM : Expectation - Maximization) 4. 코드 1. Gaussian Mixture Model(GMM) 정의 혹은 식을 다음과 같이 표현하기도 한다. $ p(x) = \Sigma_{k=1}^K{P(z_k)P(x|z)} $ - 멀티모달(Multi-modal) 분포를 설명하기 위해 쓰인다. - K는 가우시안 분포의 갯수(하이퍼 파라미터) - $.. 더보기
[c] 공용체(Union) 사용법(feat. Embedded) 1. 공용체 특징 구조체와는 다르게 '가장 큰 자료형 크기를 기준으로' 모든 멤버가 공간을 공유한다. 2. 사용 예시(in embedded system) typedef union { struct { uint32_t _reserved0: 1; uint32_t SLEEPONEXIT: 1; uint32_t SLEEPDEEP: 1; uint32_t _reserved1: 1; uint32_t SEVONPEND: 1; uint32_t _reserved2: 27; } b; uint32_t w; } SCR_Type; SCR_Type SystemControlRegister; SystemControlRegister.w = SCB->SCR; //SystemControlRegister.b.SLEEPDEEP = 1; SCB->.. 더보기
Hausdorff Distance 1. Hausdorff Distance 뜻 - 컴퓨터 비전 분야에서 주로 쓰이며, '매칭' 문제 해결을 위해 사용됩니다. - X 와 Y가 비어 있지 않은 메트릭 공간(M, d)의 부분 집합(non-empty sets of points X, Y)이라고 하면, Hausdorff 공간 $d_{H}(X, Y)$는 다음과 같이 정의 합니다. - X, Y 집합에 속한 점의 갯수는 다를 수 있습니다. 이산화(discretized)와 경계 $\Omega$를 고려하였을 때(점이 이산적으로 분포함을 가정하면) 공식 1은 아래와 같이 표현할 수 있습니다. ※ 직관적으로 보면, 한쪽 점 집합을 기준으로 다른쪽 집합 상의 점까지의 가장 먼 거리를 구하는 것처럼 보입니다. 그리고 두 거리 중 더 큰 것(max)을 $d_{H}(X.. 더보기
Attention 모델 - 구현편 목차 1. Seq2Seq의 문제점 2. Encoder의 개선 3-1. Decoder의 개선 (1) 3-1-1. 대응 관계를 찾는 방법 3-2. Decoder의 개선 (2) 3-3. Decoder의 개선 (3) 3-4. Time Attention 계층의 구현 4. Attention을 갖춘 Seq2Seq의 구현 5. 평가 1. Seq2Seq의 문제점 짧은 문장이든, 긴 문장이든 Encoder에서 같은 길이의 벡터만 출력한다. 2. Encoder의 개선 Encoder의 출력 길이는 입력 문장의 길이에 따라 바꿔준다. LSTM 계층의 은닉 상태 벡터를 모두 이용한다. 지금까지는 LSTM 계층의 마지막 은닉 상태만을 Decoder에 전달했었다. 3-1. Decoder의 개선 (1) 지금까지와 똑같이 Encoder.. 더보기
BOJ 9205(맥주 마시면서 걸어가기) 풀이(BFS) - 플로이드 와샬 혹은 BFS 문제이다. - 이웃한 점을 기준으로 서로간에 이동이 가능하면, 그래프를 정의해주는 것이 핵심이다. 즉, 아래와 같이 조건을 만족할 경우 그래프를 그려준다. point = [ list(map(int, input().split())) for _ in range(n + 2) ] edges = [[] for _ in range(N + 2)] #adjM = [[0] * (n + 2) for _ in range(n + 2)] for i in range(N + 2): for j in range(N + 2): if i == j: continue if abs(points[i][0] - points[j][0]) + abs(points[i][1] - points[j][1]) 더보기
ARM Product 관련 문서 번역(Cortext-M3) (번역을 시작하게 된 계기) ARM 아키텍쳐는 높은 시장 선점율에도 불구하고, '여러 요소'들로 추상화 되어 있어 이해에 대한 필요성을 느끼기 쉽지 않다. 여러 요소들의 예로는 펌웨어 엔지니어 입장에는 칩 벤더사 SDK가, 어플리케이션 엔지니어 입장에는 리눅스와 같은 OS가 될 수 있다. 그럼에도 불구하고 ARM 아키텍쳐를 익히는 것은 앞으로 사용 할 Soc SDK의 Learning Curve를 줄여준다는 점에서 의미가 있다고 생각한다. (적어도 ARM 아키텍처를 계속 사용하는 한) 목차 Chapter 1 Introduction Chapter 2 The Cortex-M3 Processor Chapter 3 The Cortex-M3 Instruction Set Chapter 4 Cortex-M3 Perip.. 더보기
Pytorch with examples ※ 아래 글은 Pytorch 홈페이지의 pytorch_with_examples를 번역 및 요약한 것입니다. 1. Numpy vs Pytorch 사인함수(sin)를 numpy 와 pytorch를 이용해 Linefitting 하면서 두 프레임 워크를 비교해 본다. 먼저 LineFitting을 위해서 모델링을 먼저 한다. 본 예제에서는 3차원 다항식으로 sin 함수를 Linefitting 을 시도한다. $ y = dx^3 + cx^2 + bx + d $ 2. Numpy 아래는 Numpy로 sin 함수 Linefitting 하기 위한 코드와 결과이다. 아래 그림을 보면, 3차원으로 다항식 가정을 하였고, 추정치가 실제 sin 함수와는 다소 차이를 보인다. 하지만, 계산 그래프를 통해서 계수(coefficient.. 더보기
변하는 것과 변하지 않는 것 변하는 것 : 기술에 의한 결과물 변하지 않는 것 : 고객을 위하는 마음 더보기