728x90
전체 글
544

객체지향 프로그래밍(OOP, Object-Oriented Programming)

객체지향 프로그래밍(OOP, Object-Oriented Programming) 객체들의 집합으로 프로그램의 상호 작용을 표현하며 데이터를 객체로 취급하여 객체 내부에 선언된 메서드를 활용하는 방식이다. 설계에 많은 시간이 소요되며 처리 속도가 다른 프로그래밍 패러다임에 비해 상대적으로 느리다. - 추상화 추상화란 복잡한 시스템으로부터 핵심적인 개념 또는 기능을 간추려내는 것을 의미한다. - 캡슐화 캡슐화는 객체의 속성과 메서드를 하나로 묶고 일부를 외부에 감추어 은닉하는 것을 말한다. 여기서 "일부를 외부에 감추어 은닉하는 것"을 은닉화라고 한다. - 상속성 상속성은 상위 클래스의 특성을 하위 클래스가 이어받아서 재사용하거나 추가, 확장하는 것을 말한다. - 다형성 다형성은 하나의 메서드나 클래스가 다..

CS 2022.10.03

[Paper] Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction Without Convolutions

Introduction 위 그림의 (b)처럼 ViT는 columnar 구조를 가져서 coarse한 이미지 패치를 가진다. 그래서 pixel-level dense prediction(object detection, segmentation)에서 다음과 같은 한계를 가진다. output feature map은 single-scale과 low-resolution을 가진다. 연산과 메모리 비용이 비교적 높다. 위 한계를 극복하기위해 본 논문에서는 Pyramid Vision Transformer(PVT)를 제안한다. 위 그림의 (c)가 바로 PVT이고 전통적인 Transformer의 다음과 같은 어려움들을 극복했다. 4x4 pixels per patch와 같이 fine-grained 이미지 패치를 사용하여 high..

Deep Learning 2022.10.03

디자인 패턴

싱글톤 패턴 싱글톤 패턴은 하나의 클래스에 하나의 인스턴스만 가지는 패턴이다. 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어든다. 하지만 의존성이 높아진다는 단점이 있다. 싱글톤 패턴은 데이터베이스 연결 모듈에 많이 쓰인다. const URL = 'url' const createConnection = url => ({"url" : url}) class DB{ constructor(url) { if (!DB.instance) { DB.instance = createConnection(url) } return DB.instance } connect() { return this.instance } } const a = new DB(..

CS 2022.10.02

Generate Text Decoding Methods

Greedy Search Greedy Search는 다음 단어로 올 확률이 높은 단어를 선택하는 간단한 알고리즘이다. 하지만 이 알고리즘은 위 그림처럼 낮은 확률 뒤에 존재하는 높은 확률을 가지는 단어를 놓친다는 것이다. Beam Search Beam Search는 뒷 부분에 높은 확률을 가지는 단어를 놓칠 risk를 줄일 수 있다. 위 처럼 전체를 보았을때 가장 높은 확률을 선택하는 알고리즘으로 다음과 같이 진행된다. time step 1. 가장 가능성이 높은 ("The", "nice")과 두 번째로 가능성이 높은 ("The", "dog")도 선택한다. time step 2. ("The", "dog", "has")가 0.4x0.9=0.36으로 ("The", "nice". "woman") 0.5x0.4=..

Deep Learning 2022.09.21

[Paper] AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE

Introduction NLP에서 Transformer가 성공적인 결과를 얻은 것에 영감을 얻어 본 논문에서는 이미지를 패치로 분할한 후 그 패치들을 linear embedding의 sequence로 사용했다고 한다. 여기서 이미지 패치들은 NLP에서의 토큰들(단어들)과 같이 사용되었다. 하지만 Transformer는 CNN보다 Inductive Bias가 부족하기때문에 불충분한 데이터로 학습하게되면 일반화가 잘 안된다. Vision Transformer (ViT) 보통 Transformer는 1D token embedding의 sequence를 입력한다. 하지만 2D 이미지를 다루기 위해서 ViT는 HxWxC 크기의 이미지를 flatten된 2D 패치의 sequence, Nx($P^2 \cdot C$)..

Deep Learning 2022.09.19

하위 버전의 CUDA Toolkit(e.g. CUDA-10.2) 설치가 안되는 이유

Ubuntu 18.04와 NVIDIA RTX 3090에서 CUDA toolkit 10.2 버전을 사용하기위해 설치를 시도해보았다. 1. 현재 NVIDIA Driver의 최신 버전인 515로 설치 후 CUDA 10.2를 설치 nvidia-smi 실행시 다음과 같은 에러가 뜬다. driver/library version mismatch nvidia-smi NVIDIA Driver 버전과 CUDA toolkit 버전과 mismatch가 되는가보다... 사실 NVIDIA Driver를 최신 버전으로 설치하면 보통 하위 버전의 CUDA toolkit도 정상적으로 실행되는데 이상하다... 2. CUDA 10.2에 맞는 NVIDIA Driver 440 버전 설치 NVIDIA Driver 440버전 설치시 440버전이..

Temp 2022.09.17

[Paper] LayoutLMv2: Multi-modal Pre-training for Visually-rich Document Understanding

Introduction 최근 Visually-rich Document Understanding (VrDU) task은 두 가지 방향으로 진행되고 있다. 1. textual과 visual/layout/style 정보들의 shallow fusion pre-trained NLP와 CV 모델을 사용하여 좋은 성능을 달성하였지만 하나의 document type knowledge가 다른 type에서 쉽게 전달되기 어렵다. 그래서 보통 이러한 경우 document type에 따라 re-train을 해서 모델을 변경한다. 이에 따라 일반적인 document layout에서 변하지않는 것들(local invariance) (key-value 쌍으로 되어있는 left-right layout, grid layout에서의 t..

Deep Learning 2022.09.15

[Paper] LayoutLM: Pre-training of Text and Layout for Document Image Understanding

Introduction 이전에 CNN, Faster R-CNN, Mask R-CNN 모델을 사용하여 detection하고 recognition하는 것과 end-to-end 구조로 CNN은 semantic structure를 추출하고 NLP 모델은 text embedding의 이점을 가져오는 multimodal 모델이 있었다. 또한 비지니스 문서에서 정보를 추출하는 GCN(Graph Convolutional Network)도 알려져있다. 하지만 이러한 network들은 다음과 같은 한계를 가진다. 사람이 labling한 training sample에 의존한다. pre-trained CV model과 NLP model은 보통 좋은 성과를 가져다 주지만 textual, layout 정보를 학습하는 것은 고려되..

Deep Learning 2022.09.13

[Ubuntu 18.04] depends on libc6 (>= 2.34), libssl3 (>= 3.0.0)

linux kernel 설치시 다음과 같은 에러가 뜰 수 있다. dpkg: dependency problems prevent configuration of linux-headers-5.19.0-051900-generic: linux-headers-5.19.0-051900-generic depends on libc6 (>= 2.34); however: Version of libc6:amd64 on system is 2.27-3ubuntu1.6. linux-headers-5.19.0-051900-generic depends on libssl3 (>= 3.0.0); however: Package libssl3:amd64 is not installed. 다음 순서로 터미널에 치면 해결할 수 있다. sudo ad..

Temp 2022.09.13
728x90