본문 바로가기

DEVELOP_NOTE/ML

[Pytorch Profiler]파이토치 프로파일러를 통해 모델 성능 모니터링하기! 보통 PoC단계의 모델개발에서 실제 프로덕트단으로 넘어가는 과정에서 반드시 고려해야할 사항들이 있다. 바로 모델의 속도와 리소스이다. 프로덕트단에서 서비스로서 제공되는 모델은 정확도는 기본이고, 유저의 이벤트에 빠르게 반응해야하며, 대규모의 트래픽에도 운용될 수 있는 적은 리소스로 운용될 수 있어야한다. 이를 위해서는 모델 개발환경에서부터 모델의 성능, 속도, 리소스에 대한 모니터링과 함께 반복적인 개선작업이 수반되어야한다. 오늘은 내 모델의 속도와 리소스에 대해 모니터링 할 수 있는 Pytorch Profiler를 활용하기 위해 진행한 튜토리얼 과정에 대해 정리해보려 한다. 1. Profiler? 먼저 프로파일러의 개념에 대해서 잠깐 이해해보도록 하자. 프로파일러는 "머신러닝 모델의 학습과 실행 과정에.. 더보기
컨텐츠 기반 추천 vs 협업 필터링 최근, 머신러닝이 활용되는 분야 중, 어떻게 보면 가장 많은 빈도로 활용되고있는 추천 시스템에 대해서 정리해보려 한다. 추천 시스템이란? 간단하게 말하자면, 사용자의 취향이나 필요성을 파악해서 그에 맞는 아이템을 추천해주는 시스템이다. 넷플릭스에서 볼 영화 추천받거나, 쇼핑몰에서 살 물건 추천받는 거라고 생각하면 이해하기 쉬울듯하다. 검색과는 약간의 차이가 있는데, 검색이 사용자가 직접 구하고자 하는 내용을 찾는 행위라면, 추천시스템은 사용자가 찾기전에 가장 유용할 것으로 예상되는 정보를 먼저 제시하는 개념이다. 이런 추천 시스템은 수 많은 방법론을 가지고 있는데, 그 중 가장 대표적으로 두 가지 방법론으로 나눌 수 있다. 바로 '컨텐츠 기반 추천'과 '협업 필터링'이라는 방법이다. 가장 대표적인 고전 .. 더보기
[Real-time Instance Segmentation] 화상대화 배경제거 (1) 현재 회사에서 제공하고 있는 메신저의 화상대화 서비스에서 'ZOOM'에서 제공하는 배경 제거(대체)기능 구현에 대한 업무를 맡게 되었다. 사실, Instance Segmentation과 real-time 수준의 빠른 모델적용을 요구하는 부분에 있어 지금까지 경험이 부족했기 때문에, 어려울 수 있지만, 이번 Task가 큰 경험이 될 것으로 생각하고, 기쁜마음으로 시작하게 되었다. 일단 배경 제거 기능의 경우 1차적으로 화상대화에 참여하고있는 화자와 그 외의 영역을 분리할 수 있어야하고, 화상대화 내부에서 빠르게 동작해야하기 때문에 1) Instance Segmentation 이 선행되어야하고, 2) Real-time으로 제공되어야한다. 우선, 해당 과제에 대해 정보를 수집하기 시작했고, 우선 Instanc.. 더보기
[Meta Learning] Few-Shot Learning을 알아보자! 1. Background 들어가기 전에 먼저 Few Shot Learning을 포함하는 개념인 Meta Learning이라는 개념을 먼저 짚고 넘어가고자 한다. AI는 궁극적으로 AGI(Artificial General Intelligence, 일반 인공지능/범용 인공지능)로 나아갈 수 있어야하는데, Meta Learning은 AGI로 나아가는데 매우 중요한 디딤돌이 될 개념으로, 사람의 인식과정과 유사하게, "구분하는 방법"을 배우는 개념이다. 차이점을 구분하는 방법을 배운다 구분 학습방법 전통적 Deep Learning 아르마딜로 사진 1000장 vs 천산갑 사진 1000장 반복 학습 Meta Learning 두 Class의 차이점을 구분하는 방법을 학습 예를들어 천산갑과 아르마딜로를 전혀 보지 못한.. 더보기
[VGG]VGGNet을 한번 파헤쳐보자! VGG-16 모델은 2014년 Very Deep Convolutional Networks for Large-Scale Image Recognition 논문으로 소개되어, ImageNet Challenge에서 Top-5 테스트 정확도를 92.7% 달성면서 딥러닝을 활용한 CV 분야에서 큰 성과를 보인 architecture이다. 오늘은 이렇게 현재 가장 널리 쓰이고 있는 vision모델의 하나인 VGGNet에 대에서 탐구해보자. 우선 VGG의 뒤에 VGG-16, VGG-19와 같이 숫자가 붙어있는데, 이 부분은 layer의 깊이를 의미하는것이다. VGG는 기존 AlexNet에서 적용하지 못했던 deep layer를 적용하여 성능을 크게 개선했다는데 큰 의미가 있다. 기존 AlexNet 오차율 | 16.4%.. 더보기
[차원축소]차원축소 모델 비교분석_의료 0) 의료데이터에서 기존 PCA와 같은 차원 축소 모델을 사용하지 않는 이유 PCA(주성분 분석)의 경우 선형 차원축소 방식으로, 의료 데이터와 같이 데이터가 교차되며 비선형 구조를 가지는 데이터의 차원을 축소하기에 적합하지 않음. 이에, * 역 그래프 임베딩을 기반으로 한 기본 그래프 구조의 로컬 정보를 캡쳐하는 아래와 같은 모델이 주로 사용됨 * 역 그래프 임베딩 : 기본 그래프 로컬 정보 구조(한마디로, 본래의 형태..?) 를 캡처하는 기법(모델) 1) DDRTree 구분 Desc 정의 고차원 공간의 데이터 포인트를 저차원의 장점 고차원 데이터를 저차원 공간으로 축소하는 차원 축소 기능 제공 역 그래프 임베딩을 통해 고유 그래프의 구조를 학습하여 명확한 그래프 구조 복구 가능 PCA, ICA, Is.. 더보기
[CNN]CNN(Convolutional Neural Networks) : 합성곱 신경망을 파헤쳐보자! 1. 목표 CNN모델 Architecture를 이해한다. 기존 Neural Networks 구조에 Convolutional을 적용하는 이유와 효과에 대해 이해한다. 2. CNN이란 무엇인가? CNN은 기존 Neural Networks 구조에 Convolution 전처리 작업이 추가되어, 주로 이미지나 영상의 처리에 사용되는 딥러닝 모델이다. 3. 왜 CNN을 사용하는가? CNN이 고안된 이유는 vision 데이터 분석에 있어, DNN(Deep Neural Networks)의 문제점을 해결하기 위해 등장하였다 그렇다면, DNN의 문제점은? A. Input data는 vector(1차원 배열)형태의 데이터를 사용하기때문에, 이미지나 영상데이터의 경우 차원을 축소하여 flatten하는 과정이 필요(완전 연결계.. 더보기