본문 바로가기

전체 글

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의 의미 - 데이터 분석(주성분 분석), 데이터 압축(차.. 더보기
경로 유틸리티 os.path.abspath(path) - 파일의 절대 경로를 반환한다. os.path.abspath('tmp') >>> 'C:\\Python30\\tmp' ※ os.path.abspath(path) = os.path.dirname(path) + os.path.basename(path) os.path.isdir(path) - 입력 받은 경로가 디렉토리 라면 1을 반환 os.path.exists(checkpoint_dir) - 해당 디렉토리 path가 있는지 확인한다. 예시) 폴더가 존재하지 않을 경우 생성한다. if not os.path.exist(checkpoint_dir): os.makedirs(checkpoint_dit) os.path.basename(path) - 입력받은 경로의 기본 이름(bas.. 더보기
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 - 학습.. 더보기
서식 지정자 및 출력 포맷 서식 지정자 형식 : %[플래그][폭][.정밀도][길이] // 정수 printf("%u\n", 10); // 10: 부호 없는 10진 정수 printf("%d\n", -20); // -20: 부호 있는 10진 정수 printf("%i\n", -20); // -20: 부호 있는 10진 정수 printf("%o\n", 071); // 71: 부호 없는 8진 정수 printf("%x\n", 0xF1); // f1: 부호 없는 16진 정수(소문자) printf("%X\n", 0xF1); // F1: 부호 없는 16진 정수(대문자) // long, long long 정수 printf("%lu\n", ULONG_MAX); // 4294967295: 부호 없는 long printf("%ld\n", LONG_MAX);.. 더보기
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]]) (계속 정리...) 더보기