본문 바로가기

반응형

분류 전체보기

(369)
불확실성, Aleatoric and Epistemic Uncertainty (2) 불확실성, Aleatoric and Epistemic Uncertainty (1) Combining aleatoric and epistemic uncertainty in one model Aleatoric/epistemic uncertainty를 하나의 모델에 적용할 수 있는 framework를 제안합니다. 이를 위해 aleatoric uncertainty model인 Equation 5에 Bayesian neural networks의 파라미터에 따른 확률 분포를 삽입합니다. 따라서 우리는 입력/출력 $x,y$에 대한 파라미터의 posterior distribution을 추정하면서 aleatoric uncertainty를 반영한 $\sigma$를 측정하여야 합니다. 이전 포스트에서 언급한 대로 파라미터의..
Docker의 기능 Docker는 크게 1) 이미지를 만드는 build, 2) 이미지를 공유하는 ship, 3) 컨테이너를 작동시키는 run 의 세 가지 기능이 있습니다. Docker build Docker에서 build란 애플리케이션 실행에 필요한 프로그램 코드, 라이브러리, 미들웨어, 컴파일된 실행 파일 등을 묶어 이미지로 만드는 작업을 말합니다. 즉, 특정 프로세스 (애플리케이션)을 실행시키기 위한 모든 파일과 환경을 지닌 것으로 예를 들어 Ubuntu docker 이미지는 Ubuntu에 실행에 필요한 모든 파일을 가지고 있습니다. 이러한 도커 이미지로부터 컨테이너를 실행시키게 됩니다. 도커 이미지의 크기는 보통 작게는 수십 MB부터 수 GB가 넘지만 이는 VM에 비하면 굉장히 가볍습니다. 이미지는 상태값을 가지지 않..
불확실성, Aleatoric and Epistemic Uncertainty (1) 우리가 모델링할 수 있는 불확실성, uncertainty는 크게 두 가지 종류가 있습니다. 첫 번째는 데이터 자체에 담겨 있는 고유 노이즈로 인한 aleatoric uncentainty이고 두 번째는 모델이 데이터를 충분히 설명하지 못하는 epistemic uncertainty입니다. 딥러닝 모델이 강력한 성능으로 여러 분야에서 다양하게 활용되고 있지만 오히려 그 강력한 성능으로 인해 결과가 무작정 신뢰되는 오류를 초래합니다. 최근에 일어난 자율주행 자동차의 판단 오류로 인한 사망사고나 흑인을 고릴라로 잘못 판단한 사고 등 딥러닝 모델 결과에 대한 신뢰성을 확보하는 요구는 점차 커지고 있습니다. 이번 포스트는 NIPS 2017에 발표된 Bayesian Neural Networks 분야의 거두 Yarin ..
컨테이너 - Docker 컨테이너란 호스트 OS 상에 논리적인 구획을 만들고 애플리케이션을 작동시키기 위해 필요한 라이브러리나 애플리케이션 등을 하나로 모아 마치 별도의 서버인 것처럼 사용할 수 있게 만든 것입니다. 애플리케이션이 작동하는 플랫폼에 상관 없이 자유롭게 사용하며 버젼 관리와 배포를 쉽게 할 수 있다는 것이죠. 컨테이너를 이용한 오픈 소스 가상화 플랫폼으로는 2013년에 출시된 Docker 가 있습니다. 로고에서 보듯이 컨테이너에 애플리케이션에 필요한 각종 라이브러리 등을 담아 여러 항구 (플랫폼)에 배포하게 되는데요. 도커는 가상화 기술이 발전하면서 개인이 일일히 서버의 환경을 셋팅하기 힘들어지면서 탄생한 Immutable Infrastructure Paradigm 기반으로 만들어졌습니다. Immutable Inf..
Pandas - datetime64 타입 Pandas에서는 datetime64 라는 일자와 시간을 표기하는 타입을 지원합니다. 문자열로 되어있는 일자 (연월일)나 시간 (시분초)를 to_datetime이라는 함수로 datetime64 타입으로 변환할 수 있습니다. datetime64 먼저 예제를 하나 생성해 보겠습니다. df = pd.DataFrame({'Birth':['2019-01-01 09:10:00', '2019-01-08 09:20:30', '2019-02-01 10:20:00', '2019-02-02 11:40:50', '2019-02-28 15:10:20', '2019-04-10 19:20:50', '2019-06-30 21:20:50', '2019-07-20 23:30:59']}) df.dtypes를 통해 Birth column은..
Pandas - get_dummies 함수 범주형 (categorical) 데이터가 존재할 경우 이를 수치화하는 대표적인 방법은 One-hot Encoding 입니다. One-hot encoding은 범주의 개수만큼 dummy variable을 만들어 0 또는 1을 각 범주마다 할당해서 새로운 특성으로 바꾸는 방법입니다. 밑의 그림에서는 3개의 범주 (red, blue, green)에 대해 3개의 dummy variable을 할당한 뒤 red/blue/green 마다 각각 0 또는 1을 개별적으로 할당하는 것을 볼 수 있습니다. Pandas에서는 get_dummies 라는 one-hot encoding 을 실행하는 함수를 지원합니다. get_dummies get_dummies 함수의 대표적인 파라미터를 알아보면, Parameters Descrip..
Self-Supervised Learning - SimCLR (2) 이전 포스트 [Machine Learning/Unsupervised Learning] - Self-Supervised Learning - SimCLR (1) Data augmentation for Contrastive representation learning 다양한 transformation을 통한 이미지 augmentation은 supervised/self-supervised/semi-supervised 를 막론하고 다양한 분야에서 사용되지만 이를 contrastive learning에 적용하기 위해서는 특수한 architecture나 과정을 거쳐야 했습니다. SimCLR에서는 random cropping을 통해 특수한 구조 없이도 augmentation의 다양한 view를 반영하는데 성공했습니다. ..
Self-Supervised Learning - SimCLR (1) 최근 대용량의 라벨링이 필요한 supervised learning을 보완하는 self-supervised learning이 각광받고 있습니다. Self-supervised learning 이란 입력의 해당하는 라벨 없이 입력 그 자체만으로 만든 라벨에 대해 discriminative하게 훈련시켜 데이터의 representation을 학습하는 방법입니다. 대표적으로 이미지에 적용한 geometric transformation의 종류를 예측하는 방법으로 이미지의 representation을 얻는 방법이 있습니다. 기존의 이러한 방법들은 데이터를 통해 해결하고자 하는 본래의 task 이전에 자가 라벨을 이용한 pretask를 수행하여 데이터의 representation을 학습하지만 이러한 pretask는 논문..

반응형