본문 바로가기

데이터 과학

다변량 가우시안 분포(Multivariate Gaussian Distribution) 1. Multivariate Gaussian Distribution 2. Multivariate Gaussian Distribution 특징 3. Multivariate Gaussian Distribution의 활용 4. 코드 1. Multivariate Gaussian Distribution - 일차원의 정규 분포를 다차원으로 확장 시킨 개념 - 평균값을 중심으로 군집화 되어 있는 '상관 관계있는' 랜덤 변수 집합을 설명하는데 자주 사용된다. - $N(\mu, \Sigma)$ - $\mu \in R^k$ : 위치 - $\Sigma \in R^{k \times k} $ : 공분산 정리하자면, K차원의 랜덤벡터 $ X = (X_1, ... , X_k)^T $ 의 다변량 정규 분포는 다음과 같이 표현할 수 .. 더보기
공분산(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): .. 더보기
Trouble Shooting Pycharm에서 경로를 못 찾을 경우 - 가상환경에서 OpenCV를 설치하였으나, 경로 읽어오지 못할 경우 - e.g. C:\Users\jhon\anaconda3\envs\torch\Library\bin - Console > Python Console > 환경 변수에 직접 추가해 주면 된다. - 파이참 2020버전에서는 문제가 발생하진 않지만, 다른 컴퓨터 2018버전에서는 이런 문제가 발생한다. RuntimeError: freeze_support() Error 해결 방법 aigong.tistory.com/136 torch.load(model)에러 모델 저장시에 torch.save(model) 로 모델 아키텍쳐 전체를 저장하는 것이 아니라, 가중치 만을 저장하는 것을 권장한다. torch.save(mo.. 더보기
Torch 데이터셋 & 데이터 로더 + Transforms 목차 TORCH.UTILS.DATA.DATASET TORCH.UTILS.DATA.DATALOADER TORCHVISION.TRANSFORMS ※ 파이토치를 이용한 딥러닝 구현 흐름 TORCH.UTILS.DATA.DATASET Pytorch는 Dataset 클래스를 상속 받아 Custom Dataset 클래스를 만들게 한다. class Dataset(object): """An abstract class representing a Dataset. All other datasets should subclass it. All subclasses should override ``__len__``, that provides the size of the dataset, and ``__getitem__``, suppo.. 더보기
Torch 연산 torch.flatten(input, start_dim=0, end_dim=-1) → Tensor >>> t = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) >>> torch.flatten(t) tensor([1, 2, 3, 4, 5, 6, 7, 8]) >>> torch.flatten(t, start_dim=1) tensor([[1, 2, 3, 4], [5, 6, 7, 8]]) (계속 정리...) 더보기