전체 글
-
Dynamic Programming(1)알고리즘 2020. 6. 19. 01:13
다이나믹 프로그래밍의 가장 큰 컨셉은 "subproblem의 결과를 저장해서 사용한다" 그래서, 2가지가 가장 중요한 포인트라고 생각하는데, 1. subproblem을 어떻게 만들것인가? (90%) 2. 이걸 어떤 형식으로 저장하고, 사용할 것인가? (10%) subproblem을 어떻게 만들것인가를 아는 순간 2번은 자연스럽게 나올것이라고 생각된다. 다이나믹 프로그래밍을 다루는(?) 2방식이 있는데, 첫번째는 "Bottom to Top" 으로 일단 inital부터 내가 구하는 값까지의 데이터를 다 저장한 뒤, 꺼내쓰는 방법 두번째는 "Top to Bottom(memoized)"으로 재귀를 통해 값들을 채워나가는 방법 아마 두번째가 더 많이 쓰이는 것 같기는 한데, 처음 다이나믹 프로그래밍을 다룰때 빠른..
-
[논문리뷰]Unsupervised Out-of-Distribution Detection by Maximum Classifier Discrepancy논문리뷰 2020. 6. 13. 01:44
1. Introduction 기존 OOD 방법론 논문 : - ID/ OOD 라벨링이 되어있는 데이터로 모델 학습 - ID 데이터에 대한 clf 모델 학습 및 OOD 탐지. 본 논문 : - ID데이터에 대한 clf 모델 생성 --> ID/OOD데이터에 대한 라벨링 없이 clf 모델을 unsupervised learn을 통해 finetuning 2. 모델 3. 학습 STEP A 데이터를 통한 CLF 모델 FCL에 2개의 Linear Layer(Decision boundary)를 형성 Loss Function : Cross Entropy STEP B ID/OOD를 혼합한 라벨링 되지않은 데이터를 이용해 2개의 Linear Layer의 거리차이가 크도록 모델 학습 및 클래스 라벨링되어있는 ID 데이터로 모델 ..
-
[Pytorch] multiple forward process머신러닝 2020. 6. 12. 01:36
데이터를 학습하는 과정에서 같은 모델에서 학습을 하지만, 다른 인풋데이터를 동시에 사용하는 경우가 종종있다. (나는 지금 Unsupervised Out-of-Distribution Detection by Maximum Classifier Discrepancy(2019)를 재현하고 있는데, 이 모델에서도 label이 있는 데이터와 label이 없는 데이터를 같이 모델에서 학습한다.) 이러한 상황에서 내가 모델을 구현한 방법은 model.train() for i, sup_data in enumerate(dataloaders['sup_train']): unsup_data = dataloaders['unsup_train'][i % len(dataloaders['unsup_train'])] sup_inputs =..
-
dijkstra 알고리즘알고리즘 2020. 6. 11. 02:03
from collections import defaultdict #defaultdict = key가 없으면 value가 null로 생성시킴 #그래프 생성 class graph: def __init__(self): self.edges=defaultdict(list) self.weight={} def add(self,from_node,to_node,weight): self.edges[from_node].append(to_node) self.weight[(from_node,to_node)]=weight self.weight[(to_node,from_node)]=weight def dijsktra(graph,start,end): st_path={start:(start,0)} cur_node=start visit..
-
CV 이미지 전처리 -Image thresholding (ft.tesseract)머신러닝 2020. 6. 10. 01:45
1. OCR로 읽을 데이터 - 크기 30*10 인 아주 미니미한 친구.. 2. 크기를 늘려주자 image.resize((image.size[0]*10,image.size[1]*10)) 3. 그레이스케일로 변환 전처리 전, 대비를 확실히주기위해 그레이 스케일로 변환을 먼저 시켯당. 4. 데이터 전처리 사실 내가 처리할 이미지는 영상 캡쳐 데이터여서 전처리하는게 어렵지 않았다. 흑과 백의 대비를 최대한 뚜렷하게가 목표!! 나는 여기서 BINARY / BINARY_INV 를 사용하기로 결정! - 방법 1 배경은 까맣게 + 숫자는 하얗게 cv2.threshold(src, thresh, maxval, type) #thresh : 흑/백이 전환되는 임계값 #임계값을 넘었을때 적용할 value np.mean(imag..
-
꾸준함이 목표글 2020. 6. 8. 12:05
TIL : Today I learn 노는거 좋아하고, 즉흥적인 나에게 꾸준함이란 꽤 어려운 문제였다. 그래도 그나마 같이 공부하는 친구들이 있으면, 공부하다가 뛰쳐나가고 싶은 마음을 친구들에게 의지하며 억눌렀는데.. 코로나19로 바뀌어버린 요놈의 세상에서는 그것도 쉽지 않다. 그래서 이렇게 된 김에 세상에서 요구하는 '자기주도적인' 꾸준함을 길러보고자... 했는데 1일 1커밋을 마음속으로 도전한게 한 10번쯤.. 첫날만 열심히하고 매일 무너져 내렷다. 그래서 가상의 친구가 필요했다. (사이버 친구..) 어딘가 올리면, 아무도 안봐도 그래도 좀 열심히하지 않을까하여.. 시작!