본문 바로가기

Data Science

(158)
[ML] 정규분포, Xaiver, He 파라미터 초기화 방법 이번 포스팅에서는 딥러닝 모델에서 파라미터를 초기화 하는 방법으로서 정규분포 방법, Xaiver, He 방법에 대해 알아보기로 하자. 파라미터 초기화하는 방법을 어떻게 하느냐에 따라 딥러닝 모델에서 Gradient 소실 또는 발산 문제를 발생시키는지 여부를 결정할 만큼 중요하다. 먼저 정규분포 또는 표준정규분포 방식으로 파라미터를 초기화하는 방법에 대해 알아보자. 1. 표준정규분포로 파라미터 초기화 하기 표준정규분포는 알다시피 정규분포를 평균이 0, 분산이 1인 분포로 변환하는 방법이다. 수치형 값들을 스케일링하는 방법에도 자주 활용된다. 이러한 표준정규분포 방법을 활용해 파라미터를 초기화시킬 수 있다. 그런데 표준정규분포를 활용해 파라미터를 초기화 하면 어떻게 될까? 우선 표준정규분포로 파라미터를 초기..
[추천시스템] 딥러닝과 FM, Deep FM(Factorization Machine) 이번 포스팅에서는 FM(Factorization Machine)에 딥러닝을 적용한 Deep FM에 대해 알아보려고 한다. FM에 대한 사전지식이 필요하므로 FM에 대해 모른다면 여기를 읽어보고 오자. Deep FM은 FM에 딥러닝을 적용했다고 문두에서 소개했지만 구체적으로 말하면 직전 포스팅에서 배운 Wide & Deep Learning 추천시스템과 FM을 결합한 것이라고 할 수 있다. 결국 두 모델의 장점만을 갖고와서 만든 것이 Deep FM이라는 것인데, 두 모델의 장점만 알고 있다면 Deep FM에 대한 이해는 매우 수월할 것이다. 1. Wide를 FM으로 바꾸면 Deep FM! 직전 포스팅에서 배웠던 Wide & Deep Learning 추천 시스템을 다시 상기시켜보자. Wide, Deep 각각의..
[추천시스템] 딥러닝과 추천시스템, Wide & Deep Learning 이번 포스팅에서는 추천 시스템에 딥러닝을 적용한 또 하나의 모델인 Wide & Deep Learning 추천 시스템에 대해 알아보려고 한다. 저번 포스팅에서 추천 시스템에 딥러닝을 적용한 첫 번째 모델인 Neural CF에 대해 알아보았다. 이번엔 또 다른 모델인 Wide & Deep Learning 추천 시스템에 대해 알아보고 말미에는 Neural CF와 어떤 차이점이 있는지에 대해서도 살펴보자. 이번에 소개할 Wide & Deep Learning 모델은 이름에서도 추측할 수 있다시피 Wide 구성요소와 Deep 구성요소로 구성되어 있다. 먼저 Wide & Deep Learning 모델의 개괄적인 구조는 아래와 같다. 이제 각각의 구성요소가 하는 역할이 무엇인지 살펴보자. 1. Wide Componen..
[추천시스템] FM(Factorization Machine) 이번 포스팅에서는 추천 시스템 종류 중 하나인 Factorization Machine 이른바 FM이라 불리는 모델에 대해 알아보려고 한다. 참고로 이 FM 모델에 딥러닝을 적용한 모델이 Deep FM이라는 추천 시스템이고 이에 대해서는 추후에 다루어 보려고 한다. 우선 FM이라는 구조에 대해 이해가 선행되어야 나중에 배울 Deep FM에 대한 이해도 수월할 것이다. FM에 대해 처음 소개된 논문은 여기를 참고하자. Factorization은 추천 시스템에 있어서 행렬 분해라는 것은 익히 들었을 것이다. 기존에 배웠던 협업 필터링 추천 시스템에서 잠재 요인 기반이라는 추천 시스템은 SVD, PCA같은 행렬 분해 기법을 사용했었다. 그렇다면 앞으로 소개할 FM은 어떤 것을 '분해' 한다는 것일까? 1. FM..
[추천시스템] 딥러닝과 추천시스템, Neural CF(Collaborative Filtering) 이번 포스팅에서는 추천시스템의 협업 필터링에 딥러닝을 적용한 모델인 Neural Collaborative Filtering인 이른바 Neural CF에 대해 배워보려고 한다. 해당 포스팅을 이해하는 데 있어서 추천 시스템의 협업 필터링에 대한 이해가 필요할 수 있어 협업 필터링에 대한 포스팅은 여기를 참고하자. 1. 추천시스템에 딥러닝이 등장한 이유 딥러닝이 등장한 이유는 어떻게 보면 항상 당연한 이유로부터 출발하는 듯하다. 바로 주어진 데이터가 선형의 관계로 설명될 수 없을 때이다. 즉, 선형회귀, 의사결정나무 같은 선형 함수로 구현되는 머신러닝 모델들로 풀 수 없는 문제는 그동안 분야를 불문하고 모두 딥러닝이 적용되어 왔다. 왜냐하면 딥러닝이 주어진 데이터의 비선형 관계를 파악할 수 있었기 때문이었다..
[ML] Explainable AI - CAM & Grad CAM 🔉해당 포스팅에서 사용된 자료는 고려대학교 산업경영공학부 김성범교수님의 Youtube 강의자료에 기반했음을 알려드립니다. 혹여나 출처를 밝혔음에도 불구하고 저작권의 문제가 된다면 joyh951021@gmail.com으로 연락주시면 해당 자료를 삭제하겠습니다. 감사합니다. 이번 포스팅에서는 컴퓨터 비전 분야의 이미지 분류 문제에 있어서 CNN 딥러닝 모델의 예측 결과를 설명해줄 수 있는 요소 중 하나인 CAM(Class Activation Map) 과 이를 응용한 방법인 Grad CAM 방법에 대해 알아보려고 한다. 저번 포스팅에서는 Tabular data 즉, 정형 데이터에서 예측 결과를 설명할 수 있는 요소인 Shapley Value를 알아보았다. 이번에는 도메인을 변경하여 컴퓨터 비전 분야에서 알아보..
[ML] Explainable AI - Shapley Value 🔉해당 포스팅에서 사용된 자료는 고려대학교 산업경영공학부 김성범교수님의 Youtube 강의자료에 기반했음을 알려드립니다. 혹여나 출처를 밝혔음에도 불구하고 저작권의 문제가 된다면 joyh951021@gmail.com으로 연락주시면 해당 자료를 삭제하겠습니다. 감사합니다. 이번 포스팅에서는 설명이 가능한 인공지능(Explainable AI)을 만들기 위한 하나의 요소로서 Shapley Value에 대해 소개하고자 한다. Explainable AI라고 하면 무엇인가 엄청 거대해 보일 수 있지만 우리가 흔히 사용해왔던 Scikit-learn 라이브러리에서도 관련된 것들을 찾아볼 수 있다. 예를 들면 Tree-based 알고리즘이나 Boosting 계열 알고리즘들은 Feature Importance라고 Feat..
[ML] Unbiased boosting : CatBoost 이번 포스팅에서는 Boosting 계열의 알고리즘 중에서 GBM(Gradient Boosting Machines) 알고리즘에 기반하여 만들어진 CatBoost 알고리즘에 대해 알아보려고 한다. CatBoost는 2017년 논문에서 소개되었으며 현재까지 현업에서도 활발하게 사용되고 있다고 한다. 우선 CatBoost 를 본격적으로 소개하기 전에 GBM에 대한 개념부터 살펴보고 들어가자. 1. Gradient Boosting = Residual Boosting Gradient Boosting의 기본적인 아이디어는 주어진 데이터의 일부를 학습시켜 만든 모델로 다른 데이터를 예측한 후 알게되는 잔차를 이용하는 것이다. 이렇게 주어진 데이터에 대해 계속적으로 학습 후 모델을 만들고 다른 데이터를 예측함으로써 결국..
[ML] Mask RCNN Instance Segmentation 모델 🔊 해당 포스팅에서 사용된 컨텐츠는 인프런의 딥러닝 컴퓨터 비전 완벽 가이드 강의 내용을 기반으로 했음을 알립니다. 설명에서 사용된 자료는 최대한 제가 직접 재구성한 자료임을 알립니다. 이번 포스팅에서는 Pixel-level로 Object Detection을 수행하는 Instance Segmentation 모델인 Mask RCNN에 대해 알아보려고 한다. Mask RCNN은 Two-Stage Object Detection 모델인 Faster RCNN 과 Semantic Segmentation 기법인 FCN으로 구성되어 있다. 1. Segmentation이란? Segmentation은 픽셀 단위, 이른바 Pixel-level로 Classification을 수행하는 것이다. 다음 그림을 보면 직관적으로 이해..
[ML] Retina Net Object Detection 모델 🔊 해당 포스팅에서 사용된 컨텐츠는 인프런의 딥러닝 컴퓨터 비전 완벽 가이드 강의 내용을 기반으로 했음을 알립니다. 설명에서 사용된 자료는 최대한 제가 직접 재구성한 자료임을 알립니다. 이번 포스팅에서는 One-Stage Object Detection의 또 다른 모델 중 하나인 Retina Net 모델에 대해 알아보려고 한다. 그동안에 살펴보았던 One-Stage 모델 중 하나인 YOLO 모델은 매우 빠른 Detection 속도를 자랑했지만 Detection 정확도는 Two-Stage 모델 중 가장 정확도가 높은 Faster RCNN 모델보다는 현저히 낮은 수준이었다. 특히 One-Stage 모델들은 작은 객체를 탐지하지 못하는 문제가 발생했다. 따라서 연구자들은 One-Stage 모델로서 YOLO 만큼..
[ML] YOLO(You Only Look Once) Object Detection 모델 🔊 해당 포스팅에서 사용된 컨텐츠는 인프런의 딥러닝 컴퓨터 비전 완벽 가이드 강의 내용을 기반으로 했음을 알립니다. 설명에서 사용된 자료는 최대한 제가 직접 재구성한 자료임을 알립니다. 이번 포스팅에서는 One-Stage Object Detection 모델로서 YOLO 모델에 대해 알아보려고 한다. 원래 YOLO가 최초로 출시된 버전 1 모델은 SSD 모델 이전에 나왔다고 저번 포스팅에서 잠깐 언급했었다. YOLO 버전 1이 어떤 모델이고 또 어떤 문제점이 있었는지, 그리고 버전 2, 3 모델까지 차례대로 살펴보자. 앞으로 소개할 YOLO 모델 종류들은 모두 하나의 공통점을 가지고 있다. 바로 입력 이미지 또는 Feature Map을 특정 그리드로 나누고 각 Cell 마다 Object Detection을..
[ML] SSD(Single Shot Detector) Object Detection 모델 🔊 해당 포스팅에서 사용된 컨텐츠는 인프런의 딥러닝 컴퓨터 비전 완벽 가이드 강의 내용을 기반으로 했음을 알립니다. 설명에서 사용된 자료는 최대한 제가 직접 재구성한 자료임을 알립니다. 지금까지 알아보았던 RCNN 계열, SPP Object Detection 모델들은 모두 Two-Stage 모델이었다. 이번 포스팅에서 소개할 모델은 One-Stage 모델 중 하나인 SSD(Single Shot Detector) 모델에 대해 소개하려 한다. 1. One Stage? Two Stage? SSD에 대해 본격적으로 알아보기 전에 Object Detection 모델 종류 중 One-Stage / Two-Stage로 분류하는 차이점에 대해 짚고 넘어가자. 그동안 우리가 배웠던 RCNN, SPP, Fast RCNN,..
[ML] '더 빠른' Faster RCNN Object Detection 모델 🔊 해당 포스팅에서 사용된 컨텐츠는 인프런의 딥러닝 컴퓨터 비전 완벽 가이드 강의 내용을 기반으로 했음을 알립니다. 설명에서 사용된 자료는 최대한 제가 직접 재구성한 자료임을 알립니다. 이번 포스팅에서는 저번에 소개했던 Fast RCNN의 느린 Detection 속도를 극복할 수 있는 Faster RCNN 모델에 대해 소개하려 한다. (만약 Object Detection에 대해 잘 모르신다면 Object Detection 시리즈를 읽고 오실 것을 권고합니다!) 이제까지 살펴본 RCNN, SPP Net, Fast RCNN 모델들의 공통점은 객체가 '있을 법한' 영역을 추천해주는 Region Proposal 단계를 Selective Search 방법을 사용해 구현했다는 점이다. 하지만 Selective Se..
[ML] Fast RCNN Object Detection 모델 🔊 해당 포스팅에서 사용된 컨텐츠는 인프런의 딥러닝 컴퓨터 비전 완벽 가이드 강의 내용을 기반으로 했음을 알립니다. 설명에서 사용된 자료는 최대한 제가 직접 재구성한 자료임을 알립니다. 이번 포스팅에서는 저번에 소개했던 SPP Net을 약간 변형한 모델인 Fast RCNN에 대해 소개하려고 한다. 아마 SPP Net 모델의 구조를 잘 이해하고 있다면 이번 Fast RCNN 모델에 대해 이해하는 데 매우 수월할 것이다. 1. SPP Net이 뭐였더라? SPP Net에 대해 핵심적인 포인트만 다시 상기해보자. Selective Search로 입력 이미지에 대해 많은 Region Proposal들을 추출해주는데 이 때 Region Proposal 들의 크기가 서로 다를 수 밖에 없다. 그런데 이 각기 다른 크..
[ML] SPP(Spatial Pyramid Pooling) Object Detection 모델 🔊 해당 포스팅에서 사용된 컨텐츠는 인프런의 딥러닝 컴퓨터 비전 완벽 가이드 강의 내용을 기반으로 했음을 알립니다. 설명에서 사용된 자료는 최대한 제가 직접 재구성한 자료임을 알립니다. 이번 포스팅에서는 이전 포스팅에서 소개했던 RCNN 모델의 단점을 극복하는 SPP(Spatial Pyramid Pooling) 모델에 대해 알아보려고 한다. 해당 모델을 이해하기 위해서 RCNN 관련 포스팅을 읽고 오는 것을 권장한다. 1. SPP Net 과 RCNN의 관계 먼저 SPP Net에 대해 알아보기 전에 SPP Net은 RCNN의 한계점을 극복하고자 나온 모델이다. 그렇기 때문에 RCNN의 한계점을 간단하게 다시 복습해보고 이 2가지에 중점을 두고 SPP 모델을 이해해보자. 각 Region Proposal 마다..
[ML] RCNN(Regions with CNN) Object Detection 모델 🔊 해당 포스팅에서 사용된 컨텐츠는 인프런의 딥러닝 컴퓨터 비전 완벽 가이드 강의 내용을 기반으로 했음을 알립니다. 설명에서 사용된 자료는 최대한 제가 직접 재구성한 자료임을 알립니다. 이번 포스팅에서는 RCNN(Regions with CNN) 모델에 대해 알아보려 한다. RCNN 모델은 저번 포스팅에서 소개했던 Regions Proposal을 CNN 모델에 결합하여 Object Detection을 수행하는 모델이다. 바로 하단의 그림에서 Object Detection Network에 해당하는 부분이다. 1. RCNN 모델이란? RCNN 모델은 Region Proposal을 Selective Search 방법으로 구현한 모델이다. 또한 Two-stage 모델로도 분류되는데, 여기서 2개의 Stage란, ..
[ML] Object Detection 기초 개념과 성능 측정 방법 🔊 해당 포스팅에서 사용된 컨텐츠는 인프런의 딥러닝 컴퓨터 비전 완벽 가이드 강의 내용을 기반으로 했음을 알립니다. 설명에서 사용된 자료는 최대한 제가 직접 재구성한 자료임을 알립니다. 최근에 인프런에서 권철민 님의 '딥러닝 컴퓨터 비전 완벽 가이드'라는 강의를 듣기 시작했다. 해당 강의는 컴퓨터 비전(Computer Vision)의 Object Detecion 과 Segmentation 내용에 포커스를 맞추고 있다. 원래 관심 분야가 컴퓨터 비전은 아니다. 그러나 머신러닝 분야를 공부하게 되면 누구나 딥러닝을 마주하게 되고 딥러닝을 조금 들여다 보면 컴퓨터 비전에 정말 잘 사용되고 있다는 것을 알 수 있다. 현재 점점 상용화되고 있는 자율 주행도 이 컴퓨터 비전을 기반으로 만들어진 기능이다. 물론 현재..
[ML] 주요 인자 탐지 방법인 FDR(False Discovery Rate) 🔉해당 포스팅에서 사용된 자료는 고려대학교 산업경영공학부 김성범교수님의 Youtube 강의자료에 기반했음을 알려드립니다. 혹여나 출처를 밝혔음에도 불구하고 저작권의 문제가 된다면 joyh951021@gmail.com으로 연락주시면 해당 자료를 삭제하겠습니다.(저작권의 문제가 되지 않도록 사진은 최대한 제가 직접 만든 자료로 대체했습니다 :) ) 이번 포스팅에서는 주요 인자를 탐지하는 방법 중 하나인 FDR(False Discovery Rate)에 대해 알아보려고 한다. 본격적으로 FDR에 대해 알아보기에 앞서 '주요 인자를 탐지'한다는 것이 무엇인지 알아보자. 주요 인자 탐지는 '이상 탐지(Anomaly Detection)'를 하기 위한 분석이라고 할 수 있다. 이상 탐지란, 특정한 도메인에서 일반적으로..
[ML] Partial Least Squares(부분 최소제곱법) 🔉해당 포스팅에서 사용된 자료는 고려대학교 산업경영공학부 김성범교수님의 Youtube 강의자료에 기반했음을 알려드립니다. 혹여나 출처를 밝혔음에도 불구하고 저작권의 문제가 된다면 joyh951021@gmail.com으로 연락주시면 해당 자료를 삭제하겠습니다. 감사합니다.(저작권의 문제가 되지 않도록 사진은 최대한 제가 직접 만든 자료로 대체했습니다 :) ) 이번 포스팅에서는 Feature Extraction의 방법 중 하나인 Parital Least Squares(부분 최소제곱법)에 대해 알아보려고 한다. 부분 최소제곱법은 Feature Extraction 방법 중에서도 Supervised한 방법에 속한다. 아니 Feature Extraction에서도 Supervised와 Unsupervised가 나누어..
[추천시스템] Cold Start 문제는 어떻게 해결할까? 🔊 이번 포스팅에서는 추천시스템의 고질적인 문제점이라고 할 수 있는 Cold Start 문제가 무엇이고 어떤 원인으로 발생하며 이에 대한 해결책들도 몇가지 소개해보려 한다. 해당 글에서는 코드로 구현되는 실용적인 내용이 아닌 주로 이론적인 내용을 소개하려고 한다. 참고로 이 글을 작성하기 위해서 Cold Start에 대한 Wikipedia 문서를 나만의 방법으로 해석하여 한국인들이 이해하기 쉽도록 하기 위해 작성되었다. 기타 참고 문헌은 글의 하단에 첨부했다. 목차는 다음과 같다. 1. Cold Start란? 2. Cold Start가 발생하는 3가지 원인 3. Cold Start를 해결하는 방법 1. Cold Start란? Cold Start란, 추천 시스템이 새로운 또는 어떤 유저들에 대한 충분한 정..