우리 팀의 연구 주제는 멀티모달 모델인 CLIP 중에서도 FAS(Face anti-spoofing) 데이터셋에 대해 finetuning된 FLIP을 경량화하는 것을 목표로 한다. FLIP 경량화를 위해 FAS Dataset이 필요한데, 우리는 FLIP 논문에 나온 데이터셋들 중에서도 MCIO 데이터셋을 먼저 활용하기로 하였다. MCIO는 MSU-MFSD(M), CASIA-MFSD(C), Replay-attack(I), OULU-NPU(O) 네 개의 데이터셋을 의미하며 추가적으로 CelebA-Spoof 데이터셋도 활용했다고 한다. 해당 데이터셋들의 정보와 전처리 방법은 FLIP 코드 중 dataset.md를 참고하면 된다. 하지만 생각보다 각각의 데이터셋을 얻는 것도 쉽지 않고, 이를 전처리하는 과정도 간..
Abstract기존 Face anti-spoofing(FAS) 방법은 보지 못한 spoof 유형, 카메라 센서 및 환경 조건에 대한 일반화 능력이 부족하다. 최근 Vision Transformer(ViT) 모델이 image patch 간의 장거리 종속성을 포착할 수 있는 능력 덕분에 FAS 작업에 효과적이라는 것이 입증되었다. 그러나 Imagenet과 같이 대규모 데이터셋으로 학습된 ViT의 가중치를 조정하려면 adaptive moudles(적응 모듈)이나 auxiliary loss functions(보조 손실 함수)이 필요하다. 따라서 이 연구에서는ViT를 CLIP과 같은 멀티 모달 모델의 사전 훈련된 가중치를 사용해서 초기화하면 FAS 작업에 대한 일반화 능력이 향상됨을 보여준다. (VLP 모델의 ..
abstract 머신러닝 알고리즘들의 성능을 향상시킬 때, 모델들을 각각 훈련시킨 뒤 앙상블하는 기법을 많이 사용한다. 하지만 이렇게 앙상블된 모델로 prediction하는 과정은 굉장히 복잡하고 느리며(cumbersome), 많은 사람들이 사용하기에는 계산 비용이 크다는 단점이 있다. 이를 해결하기 위해, Caruana와 그의 collaborator들은 앙상블된 지식을 압축해서 하나의 모델에 넣는 것이 가능하다는 것을 보여주었는데, 본 논문에서는 이를 발전시킨 다른 지식 압축 기술을 제안한다. 앙상블된 모델들의 지식을 하나의 모델에 distilling함으로써 MNIST 데이터에 대해서 향상된 결과를 보여주며 acoustic model의 성능도 향상시켰다. 또한 새로운 유형의 앙상블 기법을 제안하여 기존..
Link: https://leetcode.com/problems/reverse-string Reverse String - LeetCode Can you solve this real interview question? Reverse String - Write a function that reverses a string. The input string is given as an array of characters s. You must do this by modifying the input array in-place [https://en.wikipedia.org/wiki/In-place_algo leetcode.com Problem: Write a function that reverses a string. T..
Link: https://leetcode.com/problems/valid-palindrome Valid Palindrome - LeetCode Can you solve this real interview question? Valid Palindrome - A phrase is a palindrome if, after converting all uppercase letters into lowercase letters and removing all non-alphanumeric characters, it reads the same forward and backward. Alphanumeric cha leetcode.com Problem: A phrase is a palindrome if, after con..
CPU vs GPU CPU는 높은 clock 속도를 가지지만 GPU는 CPU와 비교할 수 없는 Core 수를 가지고 있다 이러한 GPU를 다루기 쉽도록 최적화된 라이브러리는 아래와 같다 파란색은 CPU, 빨간색은 GPU, 노란색은 최적화한 GPU CPU와 그냥 GPU를 비교하면 거의 60~70배 정도 차이가 난다 Deep Learning Frameworks 일반적인 유명한 Deep Learning Frameworks로는 Caffe, PyTorch, TensorFlow가 있다. 현업에서는는 TensorFlow을 많이 사용하며 연구에서는 PyTorch를 사용하는 추세이다. PyTorch PyTorch에는 3가지 추상화(Abstraction)가 있다 Tensor : ndarray로, gpu에서 돌아간다 Var..
Optimization Problem of SGD 수평 방향보다 수직 방향의 가중치 변화에 더 민감하다 때문에 지그재그 모양으로 그리면 학습함 이는 바람직하지 않으며 고차원 공간에서 더 심각하게 나타난다 local minimum이나 saddle point에서 학습이 멈출 수 있다. valley가 있는 손실 함수에서 locally flat한 곳을 만나면 gradient 값이 0이 되어 학습이 멈출 수 있다. saddle point에서도 local minimum은 아니지만 gradient가 0이 된다. saddle point 근처에서도 굉장히 작은 gradient 값을 갖게 되어 update가 느려지는 단점이 있다. 고차원, very large network에서는 local minimum이 굉장히 드물지만 ..
Activation Function sigmoid 범위: [0,1] 문제점 - saturation되면 gradient 값이 사라짐(kill gradients) - not zero centered: 모든 W가 같은 방향으로 움직임, 비효율적 - exp(): compute expensive tanh 장점 - zero centered 단점 - still kills gradients when saturated ReLU 장점 - Does not saturate (in +region) - Very computationally efficient - Converges much faster than sigmoid/tanh in practice (e.g. 6x) - Actually more biologically plau..
Convolution Layer convolution은 좌상단에서 시작해서 하나의 결과값을 output activation map에 저장한다. activation map의 크기는 slide를 어떻게 하느냐에 따라 달라진다. 한 layer에서 여러 개의 filter를 사용해 다양한 특징을 추출할 수 있다. 각 필터마다 각각의 map을 생성하며 필터들이 계층적으로 학습된다. Stride stride는 filter를 몇 칸씩 움직이는지를 결정하는 숫자이다. stride가 2라면 두 칸씩 sliding하며 convolution을 수행한다. 7*7 이미지를 3*3 filter로 연산을 수행할 때 stride을 3으로 한다면 이미지에 fit되지 않는다. 불균형한 결과를 만들어내므로 수행되지 않는다. 이런 경우 pa..