목록전체 글 (94)
Gaegul's devlog
연결 리스트는 가장 대표적인 선형 알고리즘. 효율적으로 풀기 위해서 첫번째 방법은 deque를 이용하여 최적화 시킬 수 있다. 동적 배열로 구성된 리스트는 맨 앞 아이템을 가져오기에 적합한 자료형이 아니다. 왜냐하면 첫번째 값을 꺼내오면 모든 값이 한 칸씩 shifting되며, 시간 복잡도도 O(n) 가 발생한다. 파이썬의 deque는 이중 연결 리스트 구조로 양쪽 방향 모두 추출하는 데 시간 복잡도 O(1)에서 실행된다. 두번째 방법은 런너를 이용하는 것이다. 순서에 따라 2개의 런너, 빠른 런너와 느린 런너를 각각 출발 시키면, 빠른 런너가 끝에 다다를 때 느린 런너는 중간 지점에 도달하게 된다. 그럼 느린 런너는 중간까지 이동하면서 역순으로 연결 리스트 rev를 만들어 나간다. 이제 중간에 도달한 ..
Gated Convolution ? Gating y,x 와 Feature y,x 는 각각 다른 weights에 대한 convolution 연산 결과이다. O y,x 는 ReLU 나 LeakyReLu 와 같은 activation 함수와 sigmoid 함수 결과를 element-wise product(내적곱)을 한다. 다시 말하지면, 일반적인 convolution 연산을 하듯 Feature y,x 를 추출하고 해당 이미지에서 soft mask인 Gating y,x를 얻는다. 그 다음, Gating y,x에 시그모이드 함수를 취해 gating을 0(invalid) 또는 1 (valid)사이로 만든다. 다음 Feature y,x는 LeakyReLU 와 같은 original activation function 을..
이번 논문은 Video Inpainting에 관한 논문이다. Video Inpainting 논문 중에 가장 잘 알려진 논문 중에 하나라고 할 수 있다. 영상의 누락된 영역을 채우는 것을 목표로 하는 Video Inpainting 은 영상 콘텐츠의 정확한 공간적, 시간적 일관성을 보존하기 어려워 여전히 어려운 문제로 남아있다. 본 논문에서는 새로운 flow를 guide하는 inpainting 방법을 제안한다. 각 프레임의 RGB 픽셀을 직접 채우는 대신 비디오 인패인팅을 픽셀 propagation 문제로 생각하기 때문에 새롭게 설계된 Deep Flow Completion 네트워크를 사용하여 비디오 프레임 전반에 걸쳐 공간적이고 시간적으로 Deep Flow Completion 네트워크는 flow field를..
Domain Adaptation using Stochastic Neighborhood Embedding _CVPR 2019 Domain Adaptation? 도메인이 다르지만 관련이 있는 새로운 영역(distribution)에 기존 영역의 정보를 적응시키는 것. 본 논문의 목표는 source domain(pretrained)의 정보를 target domain에 적응시켜 성능을 높일 수 있는 확률을 올려 주는 것이다. 사실 source 에 adaptation 되있는 모델은 새로운 source 데이터를 가지고 결과를 도출할 때 원하는 결과를 기대하기 어렵다. 이것은 domain-shift 때문인데, 피처들이 그들의 공간에 변형을 갖게 됨으로써 classifier boundary는 redrawn된다. 다른 도..
문제. 두수의 합 [2, 7, 11, 15] 가 input으로 들어갔을 때 sum = 9가 되는 두 숫자의 인덱스를 리턴하여라. 풀이 1. 브루트 포스로 계산 모든 경우의 수를 다 확인하는 방법. 매우 비효율적. for i in range(len(nums)): for j in range(i+1, len(nums)): if nums[i] + num[j] == target: return [i,j] 풀이 2. in을 이용한 탐색 모든 조합을 비교하지 않고 정답, 즉 타겟에서 첫 번째 값을 뺀 값 target - n이 존재하는지 탐색. for i, n in enumerate(nums): complement = target - n if complement in nums[i+1]: return [nums.index..