본문 바로가기

전체 글

(105)
Apache Kafka 정리 카프카란 데이터 스트림을 저장하고 처리하는 데 사용할 수 있는 확장 가능하고 내결합성 높은 분산 스트리밍 플랫폼이다. 카프카 클러스터는 데이터 스트림을 저장하는데, 이 데이터 스트림은 애플리케이션에서 연속적으로 생성되고 다른 애플리케이션에서 순차적이고 점진적으로 소비되는 메시지/이벤트의 시퀸스다. 카프카는 펍/섭 메시지, 스트리밍 ETL, 데이터 스트림 처리와 같은 다양한 사용 사례 범주를 지원한다. 동작 토픽은 파티션으로 나뉜다. 메시지가 토픽에 기록될 때, 프로듀서는 메시지의 파티션을 지정해야 한다. 프로듀서는 자신이 작성하는 메시지에 대해 어떤 파티션 전략도 사용할 수 있다. 기본적으로 메시지는 키별로 해시 분할되므로 동일한 키를 가진 모든 메시지가 동일한 파티션에 기록된다. 각 메시지는 파티션 내..
Do Vision Transformers See Like Convolutional Neural Networks? 리뷰 NLP에서 지배적으로 사용되던 Transformer가 vision 분야에서도 적용되며 classification에서 SOTA를 뛰어넘고 있다. ViT는 CNN을 넘는 성능을 나타내기도 했지만 매우 큰 데이터가 필요하다는 제약사항이 있다. 주로 많이 사용되는 거대한 데이터셋인 ImageNet으로도 ViT의 성능을 온전히 끌어내기 어렵다. 구글에서 사용하는 JFT 데이터셋과 같은 매우 거대한 데이터셋을 사용해야만 비로소 기존 CNN SOTA를 뛰어넘는다. CNN은 어떻게 적은 데이터만으로도 잘 학습하는지에 대한 해답을 inductive bias에서 찾는다. 위키피디아의 정의에 따르면 inductive bias란 "학습 시에 만나지 못했던 상황에 대하여 정확한 예측을 하기 위한 추가적인 가정"이다. CNN은 ..
PaDiM: a Patch Distribution Modeling Framework for Anomaly Detection and Localization 리뷰 computer vision에서 anomaly detection은 이미지에 대한 anomaly score를 주는 것으로 구성된다. anomaly localization은 각 픽셀, 또는 각 픽셀들의 패치에 anomaly score를 할당하여 anomaly map을 출력하는 더 복잡한 태스크다. 따라서 anomaly localization은 더 정확하고 해석 가능한 결과를 생성한다. anomaly detection은 normal과 anomalous classes 사이에 binary classification이다. anomaly 예가 부족하기 때문에 이 태스크에서 full supervision으로 model을 학습하는 것은 사실상 가능하지 않다. 게다가 anomalies는 예상되지 않는 패턴을 가질 수 있다..
Deep Transfer Hashing for Image Retrieval 리뷰 실제 서비스 환경에서 모델의 거대한 연산량을 감당하기 어려울 수 있기 때문에 최적화 및 경량화의 중요성이 요구된다. knowledge distillation을 사용하면 제한된 크기와 깊이에서 준수한 성능을 얻을 수 있다. 좋은 teacher 모델은 one hot encoding 보다 세부적인 정보를 담고 있어 해당 정보를 잘 transfer 한다면 작은 모델로도 teacher 모델의 information flow를 흉내낼 수 있다. 복잡한 teacher 모델의 해시 기능은 one hot label 대신 supervised information으로 사용한다. teacher 모델에서 supervised information을 사용하여 모델을 보다 정확하게 training할 수 있다. 논문의 주요 contri..
Stacked Hourglass Networks 리뷰 What is pose estimation pose estimation은 인체 부위를 찾아 인체를 표현하는 task이며, 의료, 헬스케어, 그리고 엔터테인먼트 분야에서 폭넓게 사용된다. 과거에는 효율과 정확도의 문제로 거의 사용되지 않았지만, 현재에 이르러서는 딥러닝의 도입으로 관련 분야의 산업이 크게 발전하는 추세다. 현재 pose estimation은 높은 성능을 달성했지만, truncation, occlusion 문제나 불충분한 훈련 데이터에 대한 문제를 해결해야 한다. heatmap based 2d pose estimation 현재 주로 사용되는 pose estimation 방법은 heatmap을 기반으로 한다. heatmap을 사용하는 2d human pose estimation은 inpu im..
EfficientNet 리뷰 Limitations of scale up in existing models CNN architecture에서 depth, width, resolution을 확장하면 performance가 향상되지만, 제한된 자원을 이용해 더 높은 performance를 달성하기 위해 단순히 depth, width, resolution을 증가하는 방법으로는 한계가 있다. ResNet-1000은 ResNet-101보다 훨씬 많은 depth가 깊지만 빠르게 saturate 되기 때문에 performance 향상이 크지 않을 수 있다. 굉장히 큰 model은 diminish 현상이 나타난다. Main contribution EfficientNet[4]은 compound coefficient를 사용하여, depth, width..
Skip connection 정리 Skip connection이란? deep architectures에서 short skip connections[1]은 하나의 layer의 output을 몇 개의 layer를 건너뛰고 다음 layer의 input에 추가하는 것이다. 이는 VGG[2]같은 기존의 model이 output만을 intput으로 사용되는 것과는 대비된다. problem in tranditional architecture skip connection을 이해하기 전에 왜 필요한지에 대해 알 필요가 있다. VGG와 같은 architecture를 설계할 때 깊을수록 더 나은 성능을 보인다. 하지만 깊이가 너무 정도 깊어진다면 오히려 성능이 하락하는 결과가 나타난다. 56-layer network는 전체 training 절차 동안 높은 ..
[Chapter 2]starGAN 코드 레벨 분석 Directory tree 저자의 starGAN repository[1]를 보면 starGAN 폴더에 4개의 핵심파일이 있다. dataLoader를 생성하는 data_loader.py, 전체 프로세스를 실행하는 main.py,generator와 discriminator가 정의되있는 model.py, 그리고 model을 build하고 training하는 solver.py 파일이다. The whole process 전체 프로세스는 다음과 같이 세 개의 주요 절차로 요약할 수 있다. main.py의 main 함수에서 dataloader 생성하는 부분과 model build하는 부분, 그리고 training하는 부분이다. 이 세 가지 절차를 순서대로 살펴보겠다. Create dataLoader Multiple ..