본문 바로가기

반응형

분류 전체보기

(369)
예외 처리에서의 동작 수행 - try/except/else/finally 파이썬에서 예외를 처리하는 과정에서 특정 동작을 수행하고 싶을 때 try, except, else finally 구문을 사용합니다. 전체 복합문에서 각 블록은 서로 다른 목적에 쓰이며, 다양하게 조합하면 유용합니다. finally 예외가 발생하면 본래 호출 스택의 위 (함수 자신을 호출한 함수 쪽)로 예외를 전달해야 하지만, 예외가 발생하더라도 정리 코드를 실행해야 한다면 try/finally 블록을 사용합니다. 특히, 파일을 열고 안전하게 닫는 경우에 자주 사용합니다. def try_finally_example(filename): print('파일 열기') handle = open(filename, encoding='utf-8') try: print('데이터 읽기') return handle.read(..
NeuTraL AD 이미지의 회전, 반전, crop 등의 다양한 transformation을 이용한 representation 학습 방법은 간단한 image classification 부터 시작하 다양한 downstream task에 선제적으로 이용되어 왔습니다. 지난 포스트에서 다루었던 SimCLR, MoCo, SwAV 등이 있죠. 하지만 이미지에 쓰이는 다양한 transformation 은 이미지의 공간적인 정보를 어느 정도 유지한다는 가정이 적용되기에 이미지를 제외한 tabular/time series 데이터에 이미지에 쓰이는 다양한 transformation 을 그대로 적용하기는 굉장히 애매합니다. 이번 포스트에서 다룰 내용은 SimCLR 등에서 다루었던 대조 학습 기반에 transformation 까지 neural..
Clustering - Learning Discrete Representations via Information Maximizing Self-Augmented Training Deep neural networks 는 데이터의 복잡한 비선형 관계를 잘 모델링할 수 있다는 점에서 머신러닝의 다양한 분야에 채택되어 왔고 clustering 이나 hash learning 과 같은 discrete representation이 필요한 태스크에도 응용되어 왔습니다. 하지만 deep neural networks은 모델의 복잡도가 크고 clustering과 같은 비지도학습은 타겟 단에서의 라벨이 없기 때문에 모델에 대한 적절한 정규화 (regularization)이 필수적입니다. 이번 포스트에서 다룰 내용은 데이터를 discrete representation 으로 매핑하는 deep neural networks를 data augmentation 에 대해서도 결과가 변하지 않도록 (invaria..
Isolation Forest 지난 포스트의 전통적인 이상탐지 기법 LOF (Local Outlier Factor) 에 이어, 이번 포스트에서 다룰 이상탐지 기법은 2008년에 발표된 Isolation Forest 입니다. Isolation Forest는 여러 개의 의사결정나무 (decision tree)를 종합한 앙상블 기반의 이상탐지 기법으로 의사결정나무를 지속적으로 분기시키면서 모든 데이터 관측치의 고립 정도 여부에 따라 이상치를 판별하는 방법입니다. 직관적으로 비정상 데이터라면 의사결정나무의 루트에서 가까운 깊이에서 고립될 것이고 정상 데이터라면 루트에서 먼 깊이에서 고립될 것입니다. 즉, 특정한 샘플이 고립되는 leaf 노드 (의사결정나무의 끝) 까지의 거리를 outlier score로 정의하고 루트 노드까지의 평균 거리가 ..
Local Outlier Factor (LOF) 이번 포스트에서 다룰 내용은 딥러닝 기반 이상탐지 말고 2000년에 발표된 전통적인 이상탐지 방법, Local Outlier Factor (LOF) 입니다. LOF 의 기본 아이디어는 전체 데이터 분포에서 지역적인 밀집도를 (density) 고려하겠다는 것에서부터 출발합니다. 일반적인 density based 방법은 특정 거리 안에 들어오는 데이터의 개수로 밀집도를 정의하나 밑의 그림의 C1/C2 처럼 밀집된 정도가 각각 다르다면 밀집도를 정의하는 특정 임계치를 정하는 것이 어렵습니다. 밑의 경우에 대해 기존 density based 방법은 o1은 이상치로 잘 탐지하겠지만 o2는 탐지를 못할 가능성이 높겠죠. 따라서 LOF는 지역적인 밀집도를 고려하여 이상치를 판단합니다. LOF LOF에서는 먼저 특정 ..
Dockerfile (2) - RUN, CMD, ENTRYPOINT Dockerfile (1) - 개요 이번 포스트에서는 Dockerfile에서 만든 이미지로 컨테이너를 실행했을 때 각종 명령을 실행하는 방법에 대해 알아보려 합니다. RUN 컨테이너에 FROM 명령에서 지정한 베이스 이미지에 대해 "애플리케이션/미들웨어를 설치한다"/"환경구축을 위한 명령을 실행한다" 등의 명령을 실행할 때 RUN 명령을 사용합니다. RUN 이후에 일반적인 쉘 스크립트 형식으로 명령을 기술할 수 있고 ['args1', 'args2',...] 형식으로 지정할 경우 쉘을 경유하지 않고 직접 실행합니다. 컨테이너 실행시의 디폴트 쉘은 ['bin/sh', '-c'] 형식으로 지정됩니다. 다음 명령어를 통해 도커 이미지를 빌드하면 명령이 한 줄씩 실행되면서 이미지를 생성하고 쉘 스크립트 형식은 /..
RAPP 이번 포스트에서는 2020년 ICLR에서 발표된 마키노락스의 (Machine Intelligence 회사로 시스템에 대한 이상탐지 및 지능제어 솔루션을 제공합니다) 이상탐지 방법론의 논문입니다. 주목할 점은 새로운 학습 방법론을 제시하는 것이 아니라 anomaly score를 측정하는 새로운 방법론만으로 이상 탐지의 성능을 비약적으로 향상시키는 것에 있는데요, 한번 살펴보도록 하겠습니다. 오토인코더 (auto-encoder)는 데이터 $x$의 최대한의 정보를 남기게끔 압축한 이후에 이를 다시 복원시키는 모델로 비선형 관계를 표현할 수 있는 deep neural networks를 사용한 deep auto-encoder가 이상탐지 분야에서 매우 많이 사용되어 왔습니다. 정상 데이터를 통해 오토인코더를 정상 ..
Dockerfile (1) - 개요 Docker에서는 인프라의 구성 관리를 Dockerfile 로 기술합니다. Dockerfile 에는 베이스가 되는 이미지에 각종 미들웨어와 애플리케이션의 실행 기반의 모든 구성 정보를 기술합니다. 지난 포스트에서는 생성된 기존 이미지에 컨테이너 생성 시의 설정을 수동으로 수행하였으나 이를 dockerfile에 종합적으로 기술하여 관리할 수 있습니다. Dockerfile 에는 다음과 같은 컨테이너의 구성 정보를 담을 수 있습니다. 베이스가 될 Docker 이미지 Docker 컨테이너 안에서 수행할 명령 환경변수 등의 설정 Dockerfile Dockerfile은 텍스트 형식의 파일로 임의의 에디터를 사용하여 작성할 수 있습니다. 가장 먼저 기술되어야 할 내용은 docker 컨테이너를 어떤 도커 이미지로부터..

반응형