Machine Learning Models (56) 썸네일형 리스트형 Feature Selection - Random Forest (1) 의사결정나무 (Decision Tree) 는 데이터를 나무와 같이 특정 feature로 지속적으로 분기하면서 목표 변수를 예측하는 머신러닝 모델의 하나로 간단함과 좋은 설명력으로 굉장히 많이 쓰이는 모델입니다. 분기를 하는 방법에 따라 여러 알고리즘이 있지만 대표적으로 CART (Classification And Regression Trees) 라는 알고리즘이 주로 사용되며 수치형/범주형 feature에 대해 gain이 가장 크도록 노드를 두 개로 분할하는 binary tree 형태를 가집니다. 따라서 의사결정나무 훈련 시에는 노드를 분할할 때 어떠한 feature를 사용해서 어떠한 기준으로 나눌지 결정하는 것이 제일 중요한 작업입니다. 일반적으로 분류 시에는 Gini impurity라는 개념을 사용하고.. Feature Selection - Recursive Feature Elimination Recursive feature elimination (rfe)는 매우 직관적인 feature selection 방법으로 먼저 전체 feature에 대해 훈련 후 중요하지 않은 feature 들을 제거하면서 원하는 개수의 feature 수만 남기도록 하는 방법입니다. 따라서 원하는 수의 feature 만 사용하는 minimal optimal feature subset 을 구하는 간단한 방법이라 볼 수 있으며 중요하지 않은 feature 를 매 스텝마다 하나씩 줄이면서 모델을 새로 빌딩하는 과정을 반복합니다. Example 파이썬에서는 scikit-learn 패키지의 RFE 함수로 구현할 수 있습니다. Scikit-learn의 메소드이니 만큼 1) 클래스 선언 2) fit 3) transform 의 과정으.. Feature Selection - Permutation Feature Importance 이번 포스트에서 다룰 permutation feature importance는 모델을 재학습시킬 필요 없이 학습시킨 후에 feature 의 값을 랜덤하게 섞은 이후의 (permute) 성능 감소를 통해 feature importance를 측정하는 방법으로 매우 직관적입니다. 어떠한 feature를 랜덤하게 섞었을 때의 모델의 예측 에러가 증가했다면 중요한 feature로 판단할 수 있고 모델의 예측 에러가 거의 변동이 없다면 중요하지 않은 feature라 판단할 수 있습니다. 훈련된 모델 $f$와 feature matrix $X$, 타겟 변수 $y$, 원래의 에러 $e_{org}=L(y,f(X))$가 있을때, 각 feature $j$에 대한 $X$에서 $j$번째 열을 임의로 섞어 만든 permuted f.. Feature Selection - BORUTA (2) 이전 포스트 [Machine Learning/Data Analysis] - Feature Selection - BORUTA (1) 지난 포스트에서 feature selection 방법 중 하나인 BORUTA 알고리즘에 대해 살펴봤습니다. BORUTA는 본래 R 패키지로 개발된 알고리즘이지만 파이썬에서도 BorutaPy 라는 패키지를 통해 사용할 수 있습니다. BorutaPy BorutaPy는 feature importance를 계산할 수 있는 Random forest, XGBoost 등의 모델과 함께 사용이 가능합니다. BorutaPy의 파라미터는 다음과 같습니다. Parameter Description estimator fit 함수를 통해 feature_importance_ 속성을 가진 모든 regre.. Feature Selection - BORUTA (1) 최적의 머신러닝 모델을 위한 feature selection (특징 추출)은 매우 중요한 작업입니다. Feature의 수가 불필요하게 많게 되면 모델의 과적합이 발생하게 되고 불필요한 feature들은 모델의 예측력에 안좋은 영향을 미치게 됩니다. 직관적인 방법은 feature를 하나씩 제거하였을 때 성능에 거의 영향이 없는 feature를 중요하지 않다고 생각하여 제거하거나 도메일 지식을 활용하여 중요하지 않은 feature를 제거하거나 중요한 feature를 선택할 수 있습니다. 하지만, feature의 개수가 매우 많거나 도메인 지식이 부족한 경우에도 쉽게 feature selection 할 수 있는 방법이 있을까요? 이번 포스트에서는 대표적인 feature selection 방법 중에 하나인 BO.. Interpretable Explanations of Black Boxes by Meaningful Perturbation 딥러닝 모델은 여러 분야에서 기존의 방법보다 강력한 성능을 보이지만 수많은 비선형의 조합으로 이루어져 왜 잘되는지를 설명하기가 쉽지 않아 보통 black-box 함수로 불리웁니다. 의사 결정 시에는 딥러닝 모델의 결과를 무조건적으로 신뢰하는 것이 아니라 왜 그런 결과를 나타내는지에 대한 설명이 판단 근거로 필요하기 때문에 explainable AI (XAI) 분야에 대한 관심이 점점 높아지고 있는 상황입니다. 예를 들어 이미지의 어떤 부분을 보고 특정한 클래스를 예측했는지 설명이 필요하다는 것이죠. 이 논문은 딥러닝 모델, black-box 함수 $f$의 입출력 관계를 해석하는 방법으로 다음 그림처럼 classification 에서 이미지의 어떤 부분이 $f$의 결과에 가장 큰 영향을 미치는지 설명합니다.. Slimmable Neural Networks 딥러닝 모델을 실제 어플리케이션에 적용하기 위해 다양한 경량화 기법, 모델 등이 연구되고 있습니다만 deploy를 하기 위한 mobile device 의 종류가 여러 가지고 각각의 computational power와 실행 시간이 다르기에, 목표로 한 device에 맞게 경량화된 모델을 탑재하여야 합니다. 위의 그림처럼 같은 안드로이드를 사용하는 핸드폰이라 하더라도 image classification을 실행하는 시간은 제각각이기에 하드웨어 성능이 좋은 디바이스에는 더 큰 모델을 deploy 하고, 하드웨어 성능이 안 좋은 디바이스에는 latency 최적화를 위한 모델의 성능 감소가 필연적입니다. (latency-accuracy tradeoff) MobileNet이나 ShuffleNet 같은 경량화 모델.. Learning Efficient Convolutional Networks through Network Slimming Convolution Neural Networks (CNN) 모델이 커지고 깊어지면서 모바일 등의 저사양 디바이스에 deployment 하기에 다음과 같은 제약 사향이 발생합니다. 모델이 커지면서 파라미터의 개수가 매우 많아집니다. ResNet-152 은 6천만 개의 파라미터를 가지고 하나의 파라미터가 32 bit (4 byte)의 메모리가 필요한 것을 생각해봤을 때, 모델을 loading 하기 위해 메모리 공간은 수백 메가가 넘어가게 됩니다. 모델의 파라미터를 저장하는 부분 이외에도 중간의 feature map 들을 저장하고 계산하는 run-time memory 도 매우 많이 소요됩니다. 특히 연산량 파워가 작은 임베디드 시스템에서는 큰 문제가 될 수 있습니다. 이 논문에서는 network slimmi.. 이전 1 ··· 3 4 5 6 7 다음