Slow is better than NOTHING

Computer Science 24

CrossEntropy 와 KL-divergence

CrossEntropy와 KL divergence는 Machine Learning에서 가장 많이 접하게 되는 개념들입니다. 요즘 Application level에서의 연구를 하다보니 기본적인 ML지식이 많이 부족한 기분이 들어, 본 포스트에서는 CrossEntropy와 KL divergence에 대한 기본적이고 이론적인 내용을 정리해볼까합니다. 본 내용은 알고있는 내용과 구글에서 블로그를 찾아가며 새롭게 정리한 글임을 알려드립니다. CrossEntropy Entropy 란, 주어진 분포 $p(y)$ 에 대한 불확실성(uncertainty)를 나타냅니다. Entropy가 높다라는 것은 주어진 값에 대해 불확실성이 높다라는 의미입니다. 예를 들어, 동전던지기를 통해 앞,뒷면이 나올 확률을 나타내는 분포(예,..

Semi-Supervised Learning (SSL) 소개 및 동향

Regularization(정규화) input-output pair를 이용해 모델을 훈련시키는 supervised learning은 input으로 부터 output의 패턴을 정의하는 것입니다. 충분한 양의 데이터로 부터 유의미한 특징을 도출해내어 Error Risk Minimization(ERM) 알고리즘을 이용해 모델을 훈련시키는 방법론은 ML World에서 상당히 지배적인 위치를 차지하고 있었습니다. 많은 양의 데이터가 사람의 손에 의해 라벨링이 되어 네트워크를 충분히 학습시킬 수 있는 대용량 데이터셋들의 등장(예, ImageNet) 은 supervised learning이 인간의 능력을 뛰어넘을 수 있었던 이유 중 가장 중요했던 부분이라고 생각합니다. 하지만, 현실 세계(Real-World)에서는 ..

[Object Detection] Object Detection 튜토리얼 - SSD300 Implementation

지금까지, Object detection 모델 중 SSD 에 대한 기본적인 이해와 어떻게 학습이 되는지에 대해 알아보았습니다. 이번 포스트에서는 실제 Object detection model 인 SSD를 pytorch 를 이용해 구현해보고 내부 프로세스에 대해 자세히 알아보도록 하겠습니다. Dataset dataset 으로는 Pascal Visual Object Classes (VOC) data를 사용합니다. 2007, 2012 모델 모두 사용가능합니다. VOC dataset은 다음과 같은 20개의 class로 이루어져있습니다. {'aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'diningtabl..

[Object Detection] Object Detection 튜토리얼 - SSD300 part 2

이전 포스트에서는 기본적인 용어, 개념 등을 위주로 Object Detection에 대해 알아보았습니다. 다음으로 SSD300 을 Training시키기 위한 Loss등을 포함한 방법론에 대해서 알아보도록 하겠습니다. [Object Detection] Object Detection 튜토리얼 - part 1 Object Detection(객체 탐지) 는 딥러닝 중 컴퓨터 비전 분야에서 가장 어플리케이션 단에서 인기있게 연구되고 있는 분야입니다. 실생활 어플리케이션에도 많이 적용되는 만큼 이 기술의 발전 속도 rain-bow.tistory.com Loss Functions Supervised Learning은 주어진 ground truth data에 predicted된 내용을 매칭시키면서 학습합니다. SSD3..

[Object Detection] Object Detection 튜토리얼 - SSD300 part 1

Object Detection(객체 탐지) 는 딥러닝 중 컴퓨터 비전 분야에서 가장 어플리케이션 단에서 인기있게 연구되고 있는 분야입니다. 실생활 어플리케이션에도 많이 적용되는 만큼 이 기술의 발전 속도가 정말 대단합니다. 제가 처음 컴퓨터 비전에 관심을 갖게 된 계기도 이러한 객체 탐지 기술의 놀라운 성능 때문이였습니다. 이번 포스트에서는 이러한 객체 탐지 모델을 어떻게 구성하고 이것이 무엇인지에 대해 살펴보겠습니다. 위 사진은 주어진 사진에서 각 객체(Object)를 탐지 후 --> Bounding Box --> 이를 분류하는 image classification 문제로 이어집니다. 한 장의 이미지를 놓고 이미지를 Input 으로 받아 Class를 분류하는 Image classification과는 다..

[Review] Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization

Grad-CAM에서 저자들은 visual explanations를 위한 기술을 제안한다고 표현한다. 이들은 현재의 딥러닝 모델들이 Black-Box 기반이며, 보다 정교하고 신뢰할만한 시스템을 설계하기 위해 이 작업에 대한 interpretability(해석가능성)을 중요하게 보고있다. Interpretability Matters 딥러닝 시스템을 보다 신뢰할 수 있도록 설계하기 위해 'transparent model'을 설계해야한다. 여기서 transparent 라는 의미는 모델이 주어진 input에 대해 output을 출력한 이유에 대해 설명할 수 있는 모델이라는 것이다. 이 논문에서 설명하는 transparent model의 장점은 다음 3가지이다. 1. To identify the failure m..

[Review] Dropout : A Simple Way to Prevent Neural Networks from Overfitting

Dropout: A Simple Way to Prevent Neural Networks from Overfitting DNNs 이 깊어질 수록 다루는 parameter 수가 많아지게 된다. 이로 인해 DNNs은 보다 높은 성능을 낼 수 있는 강력한 Machine Learning System이 되었다. 하지만, Network가 깊어짐에 따라 훈련 속도가 느려질 뿐만 아니라 Overfitting에 대한 문제점을 고려해야한다. Dropout은 이러한 DNN의 문제점을 극복하기 위해 제시된 regularizer 개념이다. 본 논문은 supervised learning 을 기준으로 다양한 데이터셋에서 dropout의 성능을 실험하였고, 적용하지 않은 모델에 대해 높은 성능 향상을 보여주었다. Dropout에 대한..

[DB] 정규화

DB의 관계 스키마가 잘못 설계되어 데이터가 불필요하게 중복되게 된다면 어떠한 문제가 있을까? 1) 삭제 이상 한 튜플을 삭제함으로써 유지해야 될 정보까지도 삭제되는 연쇄 삭제 현상이 일어나게 되어 정보 손실이 발생한 것 2) 삽입 이상 불필요하고 원하지 않는 데이터도 함께 삽입해야되고 그렇지 않으면 삽입이 되지 않는 현상 3) 갱신 이상 중복된 튜플 중에서 일부 튜플만 애트리뷰트 값을 갱신시킴으로써 정보의 모순성(inconsistency)가 생기는 현상 이와 같은 이상들이 생기는 근본적인 이유는 무엇인가? 그것은 여러 가지 상이한 종류의 정보를 하나의 릴레이션으로 표현하려 하기 때문이다. 즉, 애트리뷰트 간에 존재하는 여러 가지 데이터 종속 관계를 무리하게 하나의 릴레이션으로 표현하려는데서 이러한 이상..

[DB] 데이터 종속성과 중복성

초기의 데이터 처리 시스템에서는 각 응용 프로그램이 개별적으로 자기의 데이터를 "File" 로 관리 유지하였다. 데이터를 공용할 수 없는 이러한 파일 시스템에서의 가장 큰 문제점은 크게 데이터 종속성(Data dependency)과 데이터 중복성(Data redundancy)으로 집약시킬 수 있다. 1. 데이터 종속성 데이터 종속성이란 응용 프로그램과 데이터 간의 상호 의존 관계를 말한다. 데이터 파일이 보조 기억장치에 구성되는 방법이나 저장된 데이터의 접근 방법이 각 응용 프로그램 속에 명세되어야 하는 상황에서 자연히 응용 프로그램은 접근하려는 데이터의 구성 방법이나 접근 방법에 맞게 작성되어야 한다. 따라서 데이터의 구성 방법이나 접근 방법을 변경 시킬 때는 자연히 이것을 기초로 한 응용 프로그램도 ..

DP와 Greedy Algorithm

◎ Greedy Algorithm 이란? 탐욕 알고리즘(Greedy Algorithm) 이란, 최적해를 구하는데 사용되는 근사적인 방법으로 여러 경우 중 하나를 결정해야할 때마다 그 '순간'에 최적이라고 생각되는 것을 선택해 나가는 방식으로 최종적인 해답에 도달하는 최적화 방법이다. '순간' 이라고 정의하는 선택은 Local 하게는 최적이지만, 그 선택을 계속 수집하여 Global하게 해답을 만들었다고 해서 그것이 최적이라는 어떠한 보장도 없다. 탐욕 알고리즘에는 대표적으로 '분할 가능 배낭문제' 가 있는데, 다음과 같은 예시를 들어보자. 한 은행의 화폐 단위가 7원/5원/1원 이라고 하자. 한 사람이 14원의 돈을 들고 화폐를 교환하려고 은행에 들렀다. 은행은 Greedy Algorithm을 사용하여 ..

반응형