본문 바로가기

컴퓨터이야기

(78)
Wasserstein Distance Wasserstein Distance은 두 확률분포간의 거리를 측정하는 지표입니다. Earth Mover's distance, 짧게 EM distance,라고도 부릅니다. 왜냐하면 어떤 확률 분포 모양을 띄는 흙더미를 다른 확률분포 모양을 가지도록 하는데 드는 최소 비용으로 해석할수 있기 때문입니다. 이 때 비용은 옮겨진 흙의 양과 이동한 거리를 곱하여 정량화합니다. 함수 f가 w를 파라미터로 가진 K-Lipschitz continuous functions의 집합, {fw}w ∈ W 에서 추출되었다고 가정해봅시다. 수정된 Wassertein-GAN에서 discriminator는 좋은 fw를 찾기위해 학습이 되고, 손실함수는 pr과 pg 사이의 wasserstein distance를 측정하게 됩니다. 따라..
Lipschitz-continuous function 해석학에서, 립시츠 연속 함수(영어: Lipschitz-continuous function)는 두 점 사이의 거리를 일정 비 이상으로 증가시키지 않는 함수이다. 이름은 독일의 수학자인 루돌프 립시츠의 이름을 땄다. 모든 x1, x2 ∈ ℝ 에 대해서 |f(x1) -f(x2)| ≤ K |x1 - x2| 를 만족하는 실수값 K≥0이 존재할 때, 실수형 함수 f : ℝ → ℝ 가 K-Lipschitz continuous를 만족한다고 합니다. 여기서 K는 f(.)의 Lipschitz 상수라고 부릅니다. 모든 점에서 연속적으로 미분가능한 함수는 Lipschitx continuos합니다. 왜냐하면 미분은 |f(x1) -|f(x2)| / |x1 - x2|이고, 미분가능하다는 것은 이값이 제한되어 있음을 의미하기 때문..
Tensorflow, CUDA, cudnn, GPU 설정하기 간만에 다시 설치하려니 이것저것 꼬여서 힘들다. CUDA 11.0 버전은 왠일인지 다운로드가 안된다. 이건 뭘까... 결국 tensorflow 버전을 2.2.0으로 낮추고 CUDA 10.1 버전을 설치하고 cudnn v7.6.5를 설치하고서야 작동하게 되었다. 휴.... 험난한 과정을 거쳐 겨우 GPU 모드에서 학습을 할 수 있게 되었다. 다시 한번 정리하자면, GPU카드가 지원 가능한 CUDA 버전을 확인하는 일 (무조건 최신 버전을 설치하면 안됨) 1. Tensorflow 설치 버전을 확인하기 2. 해당 Tensorflow가 지원하는 CUDA 버전 설치하기 3. cudnn 모듈을 다운받아 설치하기 * 그런데 nvidia-smi 실행시 CUDA Version: 11.2라고 나와 있어서 이걸 설치해야 하..
통계적 검정 통계적 검정은 자료의 수에 관계없이, 자신이 수집한 자료가 표본이면 검정을 해야 하며, 모집단일 경우에는 검정할 필요가 없다. 모수(parameter) 와 통계량(statistic) 모수란 모집단 분포의 특성을 나타내는 양적 척도를, 통계량이란 표본 분포의 특성을 나타내는 양적 척도를 말한다. 양적 척도는 평균이나 비율과 같이 모집단이나 표본의 자료를 대표하는 값이거나, 분산이나 범위처럼 자료의 퍼진 정도를 나타내는 숫자들을 말한다. 모수는 그리스문자로, 통계량은 알파벳으로 표현한다. 모평균 μ , 표본평균 X (X 바) 가설(Hypothesis) 통계적 추론이란 확률표본으로부터 주어지는 정보를 이용하여, 모집단의 특성에 대한 예상, 주장 또는 추측을 말하며, 크게 추정과 가설검증으로 나뉜다. 가설검정은..
PIP 패키지 설치 위치 pip가 패키지를 설치하는 정확한 디렉토리는 아래와 같다./lib//site-packages 위 경우에는 virtual environment에 설치된 것이 아니기 때문에 기본 파이썬 라이브러리 경로에 설치되는 것이다.
파이썬 // 연산자 연산자 ‘/’와 ‘//’의 차이 /는 나눗셈을 의미하며 결과가 float로 나타납니다. //는 나눗셈을 의미하며 결과가 int로 나타납니다.
파이썬 lambda, map lambda 인자 : 표현식 x = lambda a : a + 10 print(x(5)) x = lambda a, b, c : a + b + c print(x(5, 6, 2)) map(function, iterables) def myfunc(n): return len(n) x = map(myfunc, ('apple', 'banana', 'cherry')) map(lambda x: x ** 2, range(5)) list(map(lambda x: x ** 2, range(5)))
pretext task 사용자가 정의한 새로운 문제를 논문 들에서는 pretext task라고 하낟. Network로 하여금 만든 pretext task를 학습하게 하여 데이터 자체에 대한 이해를 높일 수 있게 하고, 이렇게 network를 pretraining 시킨 뒤 downstream task로 transfer learning을 하는 접근 방법 이 Self-Supervised Learning의 핵심 개념입니다.