전체 글

전체 글

    [ 딥러닝 최신 알고리즘 - PRMI Lab ] - ViT: Vision Transformer(2021)

    [ 딥러닝 최신 알고리즘 - PRMI Lab ] - ViT: Vision Transformer(2021)

    https://arxiv.org/pdf/2010.11929.pdf 오늘 제가 알아볼 논문은, 비전 Task분야에서 Convolution Network 구조였던 걸 Transformer구조로 변경하는데에 시작점이 된 Vision Transformer(ViT) 입니다. 기존에 Transformer구조는 NLP를 공부하면서 접한 내용이였습니다. 하지만 지금 Text Task에서는 이미 Transformer(=Bert, ELECTRA, T5 etc,...)로 지배적인 상황이였습니다. 하지만 ViT가 비전 Task에 적용된 이후로부터 Swin ViT, DeiT,,.. 등 많은 변형과 이를 Classification, Segmentation, Captioning,,.. 다양한 비전 Task로도 적용하는 추세가 되었..

    [ Kafka ] - 카프카의 개념에 대한 설명

    [ Kafka ] - 카프카의 개념에 대한 설명

    이벤트 스트리밍 플랫폼 Kafaka는 세가지 주요 기능을 결합해서 end-to-end 이벤트 스트리밍을 구현할 수 있게 됩니다. 이벤트 스트리밍을 지속적으로 발행하고 구독. 이벤트 스트리밍을 원하는 만큼 내구성 있고 안정적으로 저장. KafkaCluster(broker) 이벤트 스트림을 발생 시 또는 소급하여 처리. 이 기능은 모두 분산되고 확장성이 뛰어나고 탄력적이고 내결함성이 있으며 안전항 방식으로 제공됩니다. Kafka는 베어메탈 하드웨어, 가상 머신, 컨테이너, 온프레미스 및 클라우드에 배포할 수 있습ㄴ다. 메시지 큐(Message Queue: MQ) 메시지 지향 미들웨어(Message Oriented Middleward: MOM)은 비동기 메시지를 사용하는 각각의 응용프로그램 사이의 데이터 송수..

    [ Database - Intermediate ] - MySQL 구조 및 동작 흐름 (MySql 8.0 Architecture)

    [ Database - Intermediate ] - MySQL 구조 및 동작 흐름 (MySql 8.0 Architecture)

    이번 포스팅은 MySQL에 대해 더욱 자세히 이해하고자, MySQL의 전체적인 아키텍처에 대해 조사해보는 시간을 가졌습니다. https://www.youtube.com/watch?v=vQFGBZemJLQ 위 우테코 강의를 참고했으니 참고하실 분은 해주시면 되겠습니다. MySQL 아키텍처 MySQL 접속 클라이언트 MySQL은 많은 언어에서 접속 클라이언트를 제공합니다. 그리고 쉘에서도 쉘 스크립트를 통해서도 MySQL에 접속할 수 있습니다. MySQL 엔진 클라이언트 접속과 SQL 요청을 처리합니다. 이는 쿼리 파서, 전처리기, 옵티마이저, 실행 엔진 등으로 이루어져 있습니다. 여기서 중요한 옵티마이저는 요청 SQL문을 최적화해서 실행시키기 위해 실행 계획을 짭니다. 이는 실제 쿼리 실행 과정을 살펴볼때..

    [ 딥러닝 최신 트랜드 - PRMI Lab ] - Variations of Transformers

    [ 딥러닝 최신 트랜드 - PRMI Lab ] - Variations of Transformers

    2017년에 Transformer가 나온 이후로 정말 많은 후속 연구가 있었습니다. 기본적인 "Attention is all you need"에서의 Transformer의 구조는 위와 같습니다. 그 이후로 Transformer는 아래와 같은 방향으로 주로 발전했습니다. Complexity의 개선 성능 개선 도메인 확장 이의 개선 방법에 따라 아래와 같이 범주화 할 수 있습니다. Module level Architecture level Pre-Train Application Recap: 트랜스포머(Transformer) & Computational Costs 실제로 Self-attention, Recurrent, Convolutional, restricted self-attention의 시간 복잡도와 S..

    [ 딥러닝 구현 - PRMI Lab ] - 트랜스포머(Transformer)의 구현

    [ 딥러닝 구현 - PRMI Lab ] - 트랜스포머(Transformer)의 구현

    Self-attention vs CNN vs RNN 위의 그림에서 computation power를 비교하고 있습니다. Self-attention이 per layer마다 computation complexit가 $O(n^{2} \dot d$가 나오게 되는데, 여기서 n은 시퀀스의 길이, d는 인풋, 아웃풋 채널(size)라고 가정합니다. k는 커널 사이즈입니다. 그 이유는 Query, key, Value들은 [n, d]의 매트릭스일 것입니다. 바나다우 어텐션이 아니라 로웅 어텐션(=dot-attention)이라면 [n, d] matrix가 [d, n]과 곱해져 [n, n] matrix를 만들것이기 때문이죠. 그리고 Sequence operation은 $O(1)$로서 모든 토큰이 동시에작동합니다. 그리고 ..

    [ 딥러닝 최신 알고리즘 - PRMI Lab ] - Generative model + Embedding (WaveNet., PixelCNN++, Self-Attention, Auto-Encoder, Bag, Word2Vec)

    [ 딥러닝 최신 알고리즘 - PRMI Lab ] - Generative model + Embedding (WaveNet., PixelCNN++, Self-Attention, Auto-Encoder, Bag, Word2Vec)

    이번에는 트랜스포머를 구현하기 전에, 최종적으로 개념 정리를 하려고 합니다. 먼저 개념을 간단히 훑겠습니다. Auto-encoder 오토인코더(Auto-Encoder)는 신경망의 한 종류로, 비지도 학습 방법에 속합니다. 입력 데이터의 압축된 표현을 학습하고, 이를 다시 입력 데이터와 같은 크기로 복구해내는 것이 목표입니다. 대표적으로 U-net이 있고, DeConvNet도 예로 들 수 있습니다. 이는 입력 데이터의 압축된 표현을 학습하면서, 그 표현을 이용해 원본 입력 데이터를 재구성하는 능력을 취득하게 됩니다. 이렇게 학습된 오토인코더는 차원 축소, 노이즈 제거, 특성 추출 등 다양한 용도로 활용될 수 있게 됩니다. Sequence-to-Sequence에서의 임베딩(embedding) 위와같이 seq..

    [ 딥러닝 구현 - PRMI Lab ] - LSTM Based seq2seq model, Attention Based GRU seq2seq model

    [ 딥러닝 구현 - PRMI Lab ] - LSTM Based seq2seq model, Attention Based GRU seq2seq model

    동기 CNN의 다양한 모델들에 대해 공부하면서, RNN과 관련된 시계열 데이터 관련 모델 뿐만 아니라 생성형 모델, 자연어 처리등에 대한 사전 지식의 필요성을 느꼈습니다. DETR을 공부하면서 Panoptic Segmentation을 구현할 할 때에, Transformer(="2017 Attention is all you need")가 활용되는 것만 해도 알 수 있죠. 그리고 교수님 말로는 요즘 모델은 CNN이 단독으로 쓰이는게 아니라 다양한 분야의 모델들이 결합해서 더 좋은 성능 혹은 발견을 하게 된다면 그것이 논문으로 나오게 되는 것이라고 하셨습니다. 그리고 대부분의 CV 분야의 SOTA모델에 Transformer이 들어갈 정도로 매우 중요한 모델이기 때문에, 그 기초가 되는 seq2seq모델에서 하..

    [ 딥러닝 코드 실습 - PRMI Lab ] - CNN의 구현 + EfficientNet Transfer learning

    [ 딥러닝 코드 실습 - PRMI Lab ] - CNN의 구현 + EfficientNet Transfer learning

    이번에는 PyTorch로 ResNet, VGGNet등을 구현해 보았었는데, 가장 기본적인 CNN 뼈대를 체계적으로 구축하는 방법을 정리할 것입니다. 그리고 이를 바탕으로 EfficientNet-b1을 아래 git에서 다운 받은다음에, Transfer learning을 통해 Fine-tune을 해서 직접 우리가 구축한 모델과 성능을 비교해보는 시간을 가져보도록 하겠습니다. https://github.com/lukemelas/EfficientNet-PyTorch GitHub - lukemelas/EfficientNet-PyTorch: A PyTorch implementation of EfficientNet and EfficientNetV2 (coming soon!) A PyTorch implementatio..

    [ 딥러닝 최신 알고리즘 - PRMI Lab ]  - CNN의 응용 (R-CNN계열, YOLO., SSD., FPN., RetinaNet., EfficientDet., FCN., DeConvNet., UNet., SegNet.,.. )

    [ 딥러닝 최신 알고리즘 - PRMI Lab ] - CNN의 응용 (R-CNN계열, YOLO., SSD., FPN., RetinaNet., EfficientDet., FCN., DeConvNet., UNet., SegNet.,.. )

    CNN의 응용분야에는, 이전에 포스팅이서도 다루었지만 Object classification, Object detection, Sementic segmentation, Inst ance segmentation,.. 등등이 있었습니다. 말 그대로 물체 분류, 객체 탐색, 의미론적 분할, 인스턴스 분할입니다. 여기에는 R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN, FPN,.... 등등 많은 응용 네트워크등이 있었습니다. 이번에는 이러한 흐름에 제가 다루지 않았던 네트워크를 포함해서 흐름을 타고타고 들어가서 CNN 응용분야의 트렌드를 한눈에 알아보겠습니다. 좋은 Object proposal 방식 좋은 Object proposal 방식이란, Localization시 bottle..

    [ 딥러닝 최신 트렌드 - PRMI Lab ] - CNN 발전 방향 (SeNet., EfficientNet., Noisy Student., Meta Pseudo Labels.)

    [ 딥러닝 최신 트렌드 - PRMI Lab ] - CNN 발전 방향 (SeNet., EfficientNet., Noisy Student., Meta Pseudo Labels.)

    이번에는 ResNet이후에 CNN의 발전 과정에 대해 간단하게 정리해보는 시간을 가져보도록 하겠습니다. 사실 CNN의 응용 분야에서 Object-detection, Sementic-Segmentation,.,. 많지만 오직 Classification에서만 살펴보도록 하겠으며, 응용분야의 발전에서는 다음 포스팅에서 조사하고 글을 작성해보도록 하겠습니다. 저는 이번 글을 작성하면서 정말 짧은 시간 내에 CNN이 발전을 많이했고, 앞으로도 발전 가능성이 유망하다는 것을 다시한번 느꼈습니다. 이에 좀 재밌기도 하였고 공부할 의지가 더 샘솟게 되는 계기가 되었답니다 ㅎㅎ. 한번 함께 보시죠. Before Trend 2016년도에 ResNet이 이 기존의 SOTA모델보다 레이어를 훨씬 깊이 쌓아서 Top-5 err..