ML

    Vision Transformer 이해 3. Transformer

    0. Transformer의 등장 기존 seq2seq에서는 명백한 문제가 존재했다. Encoder과정에서 이전의 시계열 데이터에 대한 state vector h가 준비되어야 하는데, 이는 병렬연산이 불가능한 직렬연산이라는 문제였다. 이전 상태 값이 준비되어야 현재 상태를 연산할 수 있다는 구조적 문제를 극복해야할 필요성이 존재했다. 1. Transformer의 기본 개념 이과정에서 등장한 것이 self-attention을 활용한 Transformer이다. 간단하게 이야기하자면 기존에는 Encoder에서 추출한 state들과 Decoder에서 추론한 state vector을 dot product과 softmax를 하여 시계열 데이터 내 각 데이터에 대한 가중치를 뽑는 방법이였다. 그런데 이것을 다른 문제로..

    Vision Transformer 이해 2. 추론 기반 NLP의 발전2(seq2seq, Attention, Transformer)

    지금까지 RNN의 대표적인 모델을 알아보았다. 이제 이 모델들을 활용하여 어떻게 시계열 데이터를 추론할 지에 대해서 알아보자. 여기서 시계열 데이터란 단순히 일련의 순서로 일정 시간동안 수집된 데이터를 일컫는다. 본 포스터에서는 대표적으로 문장과 수식을 예로 들겠다. 1. seq2seq seq2seq는 이러한 시계열 데이터를 다른 시계열 데이터로 추론하는 모델이다. 예를 들어 한국어로 나는 고양이로소이다 라는 시계열 데이터를 i am a cat이라는 시계열 데이터로 번역하는 것이 여기에 포함된다. 이 모델은 입력 시계열 데이터를 고정 길이의 벡터로 인코딩하는 Encoder와 이 정보를 해석하는 Decoder로 구분된다. 여기서 Encoder와 Decoder는 쉽게 이전에 알아본 LSTM이 연결된 형태라고..

    Vision Transformer 이해 2. 추론 기반 NLP의 발전1(word2vec, RNN, LSTM)

    0. word2vec과 그 한계 이전에 추론 기반 NLP에서 word2vec의 CBOW와 skip-gram에 대해서 알아보았다. 단어를 unique한 id로 나타낸 이후, Embedding표현으로 변환한 이후, 주위의 단어들(즉 문맥)을 입력으로 target을 추론하는 단방향 신경망 유형 즉, feed forward 유형의 인공 신경망의 구조와 적용에 대해 알아보았다. 하지만 이 word2vec에는 문제점이 존재했다. 단방향 신경망이다 보니, 시계열 데이터를 적절히 다루지 못하였고, 이러한 문제점을 해결하기 위해 순환 신경망 즉 Recurrent Neural Network(RNN)이 등장하게 되었다. 왜 word2vec이 시계열 데이터를 잘 처리하지 못했는가?는 word2vec의 구조를 보면 알 수 있다..

    FairMOT : On the Fairness of Detection andRe-Identification in Multiple Object Tracking 논문 리뷰

    0. 개요 기존 object detection은 detection의 성능은 전반적으로 좋지만, 객체들이 응집되어 있는 프레임들을 갖는 비디오에서는 객체간의 switching이 빈번하게 일어난다고 한다. 이를 해결 하기 위해서 Redetection을 하는데, 기존에는 두가지 방식이 있다. 1. two-stage 2. one-stage 기존의 방식들에 대한 특징에 대해서 이야기 해보자면, two-stage는 각 task별로 학습하므로 성능은 괜찮지만, 순차적으로 진행되므로 속도가 느려져서 비디오엔 쓰기 힘들고 one-stage는 공유된 feature를 사용하므로 더 빠른데, 성능이 안나온다고 한다, 이 논문은 왜 one-stage방식이 안좋은지 그리고 이 안좋은 성능은 어디서 부터 기인된 것인지에 대해 분석..

    인공신경망(SOLOv2)의 data pipeline의 구성과 Resized model의 효과

    1. SOLOv2 data pipeline 1. 데이터 전처리 흐름 SOLOv2는 다음과 같은 과정을 거치면서 모델 입력을 준비한다. 이미지를 로드하고, Annotation을 로드하고, resize하고, flip하고, normalize하고, pad를 추가하고, format을 재설정 하고, 앞선 결과들을 수합하여 meta data로 재구성한 후, 이 결과를 모델로 흘려보낸다. mmdetection에서 이 과정을 config file로 쉽게 설정할 수 있다. SOLOv2의 config안에서 data pipeline부분을 한번 확인해보자. 이렇게 train_pipeline (test_pipeline)은 dictionary 객체들로 구성되어 있는데, 각 dictionary 객체는 데이터 전처리 과정에서 필요한 ..

    SOLOv2 Structured pruning (MMDetection, pytorch structured pruning)

    0. Intro 우리는 Rethinking the value of the pruning에서 pruning에 대한 많은 인사이트를 얻을 수 있었다. 앞으로 나올 내용들이 이에 기반한 내용이니 이하 논문이라고 표현하도록 하겠다. unstructured pruning은 weight의 숫자를 급격하게 줄일 순 있지만, 결과로 도출된 희소행렬이 하드웨어 혹은 특정 라이브러리의 도움 없이는 inference time과 메모리 자체에는 변화를 가져다 주지 못했음을 확인할 수 있었다. https://do-my-best.tistory.com/80 Network pruning 1. 서론 https://medium.com/may-i-lab/paper-review-rethinking-the-value-of-network-pr..