알리바바 클라우드 PAI (machine learning Platform for AI)Alibaba Cloud Korea
대규모 고성능 분산 컴퓨팅을 기반으로 구축된 알리바바 클라우드의 머신러닝 플랫폼 PAI에 대해 알아보세요. PAI는 고객이 대규모 데이터 마이닝 및 모델링을 쉽게 구현할 수 있도록 지원합니다.
중국 최초의 머신 러닝 플랫폼인 알리바바 클라우드 PAI는 AI 프로그램을 설계하기 위해 제작된 것으로, 여러 고객의 현실적인 문제를 해결하는 데 효과적인 도구입니다.
알리바바 클라우드 PAI의 주요 기능은 다음과 같습니다:
• 다양하고 혁신적인 알고리즘:PAI에는 데이터 전처리, 신경망, 회귀, 분류, 예측, 평가, 통계 분석, 기능 공학 및 딥러닝 아키텍처를 다루는 100가지 이상의 알고리즘이 설계되어 있습니다.
• 딥러닝 아키텍처: PAI에는 전체 컴퓨팅 아키텍처가 다양한 딥러닝 프레임워크에 맞게 최적화되어 있습니다. 또한 이는 API(Application Program Interface)를 배포하는 원클릭 기능을 지원해, 모델링과 서비스 통합 문제를 해결합니다.
• 대규모 컴퓨팅 파워: 알리바바 클라우드의 대형 컴퓨팅 엔진인 PAI는 Apsara에 의해 구동되며, 페타바이트급 컴퓨팅 업무를 매일 처리할 수 있는 초대규모 분산 컴퓨팅 기능을 제공합니다.
• 사용자 친화적 인터페이스: PAI의 데이터 시각화 기능을 통해 개발자는 드래그 앤 드롭 기능으로 구성요소를 작업 흐름에 편리하고 신속하게 투입할 수 있습니다. 모델 구축 및 디버깅 효율성을 향상시키는데 도움을 드립니다.
xgboost를 이해하기 위해서 찾아보다가 내가 궁금한 내용을 따로 정리하였으나, 역시 구체적인 수식은 아직 모르겠다.
요즘 Kaggle에서 유명한 Xgboost가 뭘까?
Ensemble중 하나인 Boosting기법?
Ensemble 유형인 Bagging과 Boosting 차이는?
왜 Ensemble이 low bias, high variance 모델인가?
Bias 와 Variance 관계는?
Boosting 기법은 어떤게 있나?
Xgboost에서 사용하는 CART 알고리즘은?
알리바바 클라우드 PAI (machine learning Platform for AI)Alibaba Cloud Korea
대규모 고성능 분산 컴퓨팅을 기반으로 구축된 알리바바 클라우드의 머신러닝 플랫폼 PAI에 대해 알아보세요. PAI는 고객이 대규모 데이터 마이닝 및 모델링을 쉽게 구현할 수 있도록 지원합니다.
중국 최초의 머신 러닝 플랫폼인 알리바바 클라우드 PAI는 AI 프로그램을 설계하기 위해 제작된 것으로, 여러 고객의 현실적인 문제를 해결하는 데 효과적인 도구입니다.
알리바바 클라우드 PAI의 주요 기능은 다음과 같습니다:
• 다양하고 혁신적인 알고리즘:PAI에는 데이터 전처리, 신경망, 회귀, 분류, 예측, 평가, 통계 분석, 기능 공학 및 딥러닝 아키텍처를 다루는 100가지 이상의 알고리즘이 설계되어 있습니다.
• 딥러닝 아키텍처: PAI에는 전체 컴퓨팅 아키텍처가 다양한 딥러닝 프레임워크에 맞게 최적화되어 있습니다. 또한 이는 API(Application Program Interface)를 배포하는 원클릭 기능을 지원해, 모델링과 서비스 통합 문제를 해결합니다.
• 대규모 컴퓨팅 파워: 알리바바 클라우드의 대형 컴퓨팅 엔진인 PAI는 Apsara에 의해 구동되며, 페타바이트급 컴퓨팅 업무를 매일 처리할 수 있는 초대규모 분산 컴퓨팅 기능을 제공합니다.
• 사용자 친화적 인터페이스: PAI의 데이터 시각화 기능을 통해 개발자는 드래그 앤 드롭 기능으로 구성요소를 작업 흐름에 편리하고 신속하게 투입할 수 있습니다. 모델 구축 및 디버깅 효율성을 향상시키는데 도움을 드립니다.
xgboost를 이해하기 위해서 찾아보다가 내가 궁금한 내용을 따로 정리하였으나, 역시 구체적인 수식은 아직 모르겠다.
요즘 Kaggle에서 유명한 Xgboost가 뭘까?
Ensemble중 하나인 Boosting기법?
Ensemble 유형인 Bagging과 Boosting 차이는?
왜 Ensemble이 low bias, high variance 모델인가?
Bias 와 Variance 관계는?
Boosting 기법은 어떤게 있나?
Xgboost에서 사용하는 CART 알고리즘은?
Our fall 12-Week Data Science bootcamp starts on Sept 21st,2015. Apply now to get a spot!
If you are hiring Data Scientists, call us at (1)888-752-7585 or reach info@nycdatascience.com to share your openings and set up interviews with our excellent students.
---------------------------------------------------------------
Come join our meet-up and learn how easily you can use R for advanced Machine learning. In this meet-up, we will demonstrate how to understand and use Xgboost for Kaggle competition. Tong is in Canada and will do remote session with us through google hangout.
---------------------------------------------------------------
Speaker Bio:
Tong is a data scientist in Supstat Inc and also a master students of Data Mining. He has been an active R programmer and developer for 5 years. He is the author of the R package of XGBoost, one of the most popular and contest-winning tools on kaggle.com nowadays.
Pre-requisite(if any): R /Calculus
Preparation: A laptop with R installed. Windows users might need to have RTools installed as well.
Agenda:
Introduction of Xgboost
Real World Application
Model Specification
Parameter Introduction
Advanced Features
Kaggle Winning Solution
Event arrangement:
6:45pm Doors open. Come early to network, grab a beer and settle in.
7:00-9:00pm XgBoost Demo
Reference:
https://github.com/dmlc/xgboost
In this talk, Dmitry shares his approach to feature engineering which he used successfully in various Kaggle competitions. He covers common techniques used to convert your features into numeric representation used by ML algorithms.
Feature Engineering for ML - Dmitry Larko, H2O.aiSri Ambati
This talk was given at H2O World 2018 NYC and can be viewed here: https://youtu.be/wcFdmQSX6hM
Description:
In this talk, Dmitry shares his approach to feature engineering which he used successfully in various Kaggle competitions. He covers common techniques used to convert your features into numeric representation used by ML algorithms.
Speaker's Bio:
Dmitry has more than 10 years of experience in IT. Starting with data warehousing and BI, now in big data and data science. He has a lot of experience in predictive analytics software development for different domains and tasks. He is also a Kaggle Grandmaster who loves to use his machine learning and data science skills on Kaggle competitions.
This is the slide from my talk at FULokoja Ingressive meetup.
XGBoost is a decision-tree-based ensemble Machine Learning algorithm that uses a gradient boosting framework. In prediction problems involving unstructured and structured data (images, text, etc.) artificial neural networks tend to outperform all other algorithms or frameworks. However, when it comes to small-to-medium structured/tabular data, decision tree-based algorithms are considered best-in-class right now. XGBoost model has the best combination of prediction performance and processing time compared to other algorithms.
Our fall 12-Week Data Science bootcamp starts on Sept 21st,2015. Apply now to get a spot!
If you are hiring Data Scientists, call us at (1)888-752-7585 or reach info@nycdatascience.com to share your openings and set up interviews with our excellent students.
---------------------------------------------------------------
Come join our meet-up and learn how easily you can use R for advanced Machine learning. In this meet-up, we will demonstrate how to understand and use Xgboost for Kaggle competition. Tong is in Canada and will do remote session with us through google hangout.
---------------------------------------------------------------
Speaker Bio:
Tong is a data scientist in Supstat Inc and also a master students of Data Mining. He has been an active R programmer and developer for 5 years. He is the author of the R package of XGBoost, one of the most popular and contest-winning tools on kaggle.com nowadays.
Pre-requisite(if any): R /Calculus
Preparation: A laptop with R installed. Windows users might need to have RTools installed as well.
Agenda:
Introduction of Xgboost
Real World Application
Model Specification
Parameter Introduction
Advanced Features
Kaggle Winning Solution
Event arrangement:
6:45pm Doors open. Come early to network, grab a beer and settle in.
7:00-9:00pm XgBoost Demo
Reference:
https://github.com/dmlc/xgboost
In this talk, Dmitry shares his approach to feature engineering which he used successfully in various Kaggle competitions. He covers common techniques used to convert your features into numeric representation used by ML algorithms.
Feature Engineering for ML - Dmitry Larko, H2O.aiSri Ambati
This talk was given at H2O World 2018 NYC and can be viewed here: https://youtu.be/wcFdmQSX6hM
Description:
In this talk, Dmitry shares his approach to feature engineering which he used successfully in various Kaggle competitions. He covers common techniques used to convert your features into numeric representation used by ML algorithms.
Speaker's Bio:
Dmitry has more than 10 years of experience in IT. Starting with data warehousing and BI, now in big data and data science. He has a lot of experience in predictive analytics software development for different domains and tasks. He is also a Kaggle Grandmaster who loves to use his machine learning and data science skills on Kaggle competitions.
This is the slide from my talk at FULokoja Ingressive meetup.
XGBoost is a decision-tree-based ensemble Machine Learning algorithm that uses a gradient boosting framework. In prediction problems involving unstructured and structured data (images, text, etc.) artificial neural networks tend to outperform all other algorithms or frameworks. However, when it comes to small-to-medium structured/tabular data, decision tree-based algorithms are considered best-in-class right now. XGBoost model has the best combination of prediction performance and processing time compared to other algorithms.
형태소분석기에 왜 CRF가 쓰이는지 이해하기 위해 정리한 슬라이드입니다. Graphical Models의 필요성부터 시작해 방향성(Bayesian Networks), 비방향성(Markov Random Fields) Graphical Models의 정의와 조건부독립 성질을 살펴보고, Generative와 Discriminative 모델의 차이점을 정리한 뒤 Discriminative + Undirected 모델로서 Conditional Random Fields를 소개합니다. 끝으로 형태소분석에 CRF를 사용하는 테크닉을 간단히 소개합니다.
[GomGuard] 뉴런부터 YOLO 까지 - 딥러닝 전반에 대한 이야기JungHyun Hong
뉴런, perceptron, cnn, r-cnn, fast r-cnn, faster r-cnn 및
backpropagation, activation function, batch normalization, cost function, optimizer 등 전반적인 딥뉴럴 네트워크에 대한 지식을 다루고 있습니다.
mail : knholic@gmail.com
blog : gomguard.tistory.com
Vector Optimization (by Jinhwan Seok. M.S student at KAIST)
The concept of vector optimization and its applications
-Regularized least squares
-Smoothing approximation
-Reconstruction
Reference)
convex optimization, Boyd (2004)
이번 슬라이드는 Graph mining의 기초에 대한 것이다.
고전 문제인 Graph cut에 대한 개념과 수학적인 배경을 설명하고, 이 개념이 clustering (클러스터링)에서 어떻게 사용되는지를 설명한다.
Graph mining, cut, clustring의 기초를 알기에 매우 적합한 자료이다.
2. 계량 데이터 (metric data)
○ 어떤 사물 또는 개념을 양적으로(quantitatively) 표시한 데이터
○ 데이터를 좌표평면상으로 수치화 시킬 수 있다. ⇒ 단순한 계산으로 거리 측정 가능
ex) 점수(score), 매출액, 국내 총생산 등
비계량 데이터 (non-metric data)
○ 어떤 사물 또는 개념을 질적으로(qualitatively) 구분한 데이터
○ 양(quantity)의 개념이 없다. ⇒ 단순한 계산으로 데이터간의 거리 측정 불가능
ex) 지역번호, 행정 구역, 혈액형 등
: 경북(054) 제주(064) 전북(063) ⇒ 전북이 제주도와 더 가깝나?
3. 양적 분류기(quantitative classifier)
○ 계량 데이터를 분류할 때 사용
○ 데이터가 𝑑차원 공간의 점들로 표시되고, 점들간의 거리 개념을 바탕으로 분류
① Bayesian classifier
② 𝑘 − 𝑁𝑁
③ MLP
④ SVM
질적 분류기(qualitative classifier)
○ 비계량 데이터를 분류할 때 사용
○ 데이터를 특징 벡터 𝕩 = (𝑥1, … , 𝑥 𝑑)로 표현할 수 있다. 단, 𝑥𝑖는 비계량의 값을 갖는다.
○ 단순한 계산으로 데이터간의 거리 측정 불가능
① Decision tree
② String 인식기
6. 결정 트리는 계층구조를 가진 트리를 이용하여 데이터를 분류하는 분류기이다.
결정 트리는 스무고개와 유사한 원리를 사용한다.
○ 스무 고개는 사람(진행자)이 그 때마다 문제를 만들어낸다.
○ 결정 트리는 컴퓨터가 자동으로 질문을 생성해내야 한다.
Question
○ 각 노드의 질문을 어떻게 만들 것인가?
○ 노드에서 몇 개의 가지로 나눌 것인가? (자식노드의 개수)
○ 언제 멈출 것인가?(leaf node)
○ leaf node를 어느 부류로 할당할(assign) 것인가?
7. 결정 트리의 동작 원리
○ 𝑋 ∈ ℝ 𝑑
: 분류하고자 하는 비계량(or 계량) 데이터의 집합
○ 샘플 𝕩 = 𝑥1, … , 𝑥 𝑑 ∈ X : 𝑥𝑖는 비계량 (or 계량) 값
①샘플 𝕩가 주어지면 루트 노드에서 출발하여 질문에 대한 답을 구하고, 그 결과에
따라 자식 노드로 이동한다.
②이 과정을 leaf 노드에 도달할 때까지 순환적으로(recursively) 반복한다.
③잎 노드에 도달하면 𝕩를 그 leaf 노드에 해당하는 분류로 분류하고 끝낸다.
8. Structure of decision tree
나이
수입 한국인
여성키
나이>26 나이<26
수입>400만원 수입<400만원 아니요
(0)
예
(1)
예
(1)
아니요
(0)
① internal node : attribute or feature
(속성 or 특징)
② leaf node : classification 결과
③ edge : assginment(or 조건)
10. Q1. 각 노드의 질문을 어떻게 만들 것인가?
Q2. 노드에서 몇 개의 가지로 나눌 것인가? (자식노드의 개수)
Q3. 언제 멈출 것인가? (leaf node)
Q4. leaf node를 어느 부류로 할당할(assign) 것인가?
11. 학습에 사용할 샘플의 집합 : { 𝕩1, 𝑦1 , … , (𝕩 𝑛, 𝑦 𝑛)}
○ 𝕩𝑖 = 𝑥1, … , 𝑥 𝑑 ∈ ℝ 𝑑
① 𝑥𝑖는 비계량 값을 가지는 특징 or 계량 값을 가지는 특징
○ 𝑦𝑖 : sample 𝕩𝑖가 속한 부류(class)
○ 𝑋 𝑇 = {𝕩𝑖|𝕩𝑖 ∈ 𝑇 for 1 ≤ 𝑖 ≤ n}, 𝑋 = {𝕩1, … , 𝕩 𝑛},
※ 2번 질문에 대해서는 2개의 노드로 분기하는 상황으로 생각한다.
𝑇
𝑇𝑙𝑒𝑓𝑡 𝑇𝑟𝑖𝑔ℎ𝑡
൝
𝑋 𝑇 𝑙𝑒𝑓𝑡
∪ 𝑋 𝑇 𝑟𝑖𝑔ℎ𝑡
= 𝑋 𝑇
𝑋 𝑇 𝑙𝑒𝑓𝑡
∩ 𝑋 𝑇 𝑟𝑖𝑔ℎ𝑡
= ∅
𝒙𝒊 = 𝜶?
yes no
분기를 위한 질문
12. 질문 𝑥𝑖 = 𝛼?를 어떻게 만들 것인가? (어떤 질문을 선택할 것인가?)
○ 𝑥𝑖 : 특징 벡터 𝕩를 구성하는 𝑖번째 특징
○ 𝛼 : 𝑥𝑖가 가질 수 있는 값 중의 하나
ex) 𝑥𝑖가 혈액형이라면, 𝛼는 4개의 값을 가질 수 있다.
○ 𝕩 = (𝑥1, … , 𝑥 𝑑), 𝑥𝑖가 평균 𝑚개의 값을 갖는다면 𝑑𝑚개의 후보 질문이 생김
○ 후보의 개수가 지수적이지 않기 때문에 모든 후보를 평가하여 가장 좋은 것을 선택
(exhaustive search)
가장 좋은 것다는 것의 판단 기준은?
후보 질문을 평가하기 위한 기준 함수?
13. 노드 𝑇에 속하는 샘플 𝑋 𝑇에는 여러 부류에 속하는 샘플들이 혼재되어 있다.
분기를 반복하면 결국 leaf node에 도달하게 될 것이고, leaf node에는 같은 부류
에 속하는 샘플들이 대부분이어야 한다.
따라서 𝑋 𝑇의 분기의 결과인 𝑋 𝑇 𝑙𝑒𝑓𝑡와 𝑋 𝑇 𝑟𝑖𝑔ℎ𝑡
에는 각각 최대한 동질의 샘플이 담기
는 것이 좋다. 동질의 샘플은 같은 부류에 속하는 샘플이라는 것이다.
동질성을 측정하는 기준 함수를 만들어, 𝑋 𝑇 𝑙𝑒𝑓𝑡와 𝑋 𝑇 𝑟𝑖𝑔ℎ𝑡
의 동질성을 가장 높여줄
수 있는 분기를 생성해 내는 질문을 선택한다.
𝑋 𝑇
𝑋 𝑇 𝑙𝑒𝑓𝑡
𝑋 𝑇 𝑟𝑖𝑔ℎ𝑡
동질성은 어떻게 측정할 수 있나?
14. impurity(불순도)
○ 동질성을 측정하는 기준.
○ 같은 부류에 속하는 샘플이 많을수록 불순도는 낮고, 다른 부류에 속하는 샘플이 많이
섞여 있으면 불순도는 높다.
① 불순도가 낮으면, 특정 부류에 속한다고 예측하기가 쉽다.
② 불순도가 높으면, 특정 부류에 속한다고 예측하기가 어렵다.
○ 불순도를 정의하는 방법
① Entropy
② Gini impurity (지니 불순도)
③ misclassification impurity (오분류 불순도)
Go to appendix 1
15. 노드 분기를 위한 entropy의 정의
○ 𝑦𝑖 : 𝑀개의 부류 중 𝑖번째 부류
○ 랜덤 변수 : 노드 𝑇의 샘플이 특정 부류에 속하는 사건
○ 𝑃(𝑦𝑖|𝑇) : 노드 𝑇의 샘플이 𝑦𝑖에 속하는 확률 (노드 𝑇에서 𝑦𝑖가 발생할 확률)
𝒊𝒎 𝑻 = −
𝒊=𝟏
𝑴
𝑷 𝒚𝒊 𝑻 𝐥𝐨𝐠 𝟐 𝑷(𝒚𝒊|𝑻)
○ 엔트로피는 𝑀개의 부류가 같은 확률을 가질 때 가장 큰 값을 가짐
①같은 확률을 가진다는 의미는, 한 노드에 다른 부류에 속한 샘플들이 같은 빈도
로 나타나는 것을 의미한다.
②특정 샘플이 어떤 부류에 속하는지 예측하기 어렵다. ⇒ 불순도가 높다.
18. 불순도를 기준으로 노드 분기를 위한 질문을 고르는데 사용할 기준 함수를 생성
○ 불순도는 하나의 노드를 대상으로 측정
○ 기준 : 분기 결과로 만들어지는 새로운 샘플 집합 𝑋 𝑇 𝑙𝑒𝑓𝑡
와 𝑋 𝑇 𝑟𝑖𝑔ℎ𝑡
는 가급적 불순도가 낮
아야 함
○ 분기 전후의 불순도의 차이가 클수록 좋다.
불순도 감소량 : ∆ 𝑖𝑚(𝑇)
○ 𝑋 𝑇에서의 불순도와, 분기로 인하여 생성된 𝑋 𝑇 𝑙𝑒𝑓𝑡
, 𝑋 𝑇 𝑟𝑖𝑔ℎ𝑡
에서의 불순도의 차이를 비교
∆𝒊𝒎 𝑻 = 𝒊𝒎 𝑻 −
𝑿 𝑻𝒍𝒆𝒇𝒕
𝑿 𝑻
𝒊𝒎 𝑻𝒍𝒆𝒇𝒕 −
𝑿 𝑻 𝒓𝒊𝒈𝒉𝒕
𝑿 𝑻
𝒊𝒎(𝑻 𝒓𝒊𝒈𝒉𝒕)
19. ○ 투잉 기법
∆𝑖𝑚 𝑇 =
𝑋 𝑇 𝑙𝑒𝑓𝑡
𝑋 𝑇
𝑋 𝑇 𝑟𝑖𝑔ℎ𝑡
𝑋 𝑇
𝑖=1
𝑀
𝑃 𝑦𝑖 𝑇𝑙𝑒𝑓𝑡 − 𝑃 𝑦𝑖 𝑇𝑟𝑖𝑔ℎ𝑡
2
노드 분기를 위한 질문의 선택
○ 가능한 모든 후보 질문을 생성
○ 모든 후보 질문에 대하여
① 노드를 분기한 후, 노드 분기에 의한 불순도 감소량 ∆𝑖𝑚(𝑇)을 측정
② 불순도 감소량이 최대인 후보 질문을 선택
𝑷(𝒚𝒊|𝑻𝒍𝒆𝒇𝒕)와 𝑷(𝒚𝒊|𝑻 𝒓𝒊𝒈𝒉𝒕)의 차이↑ → 𝒚𝒊가 한 노드로 집중되어 분류 → 분기가 잘 됨 → ∆𝒊𝒎 𝑻 ↑
20. Example )
○ 샘플은 3개의 특징으로 표현. 2개는 비계량, 1개는 실수로 표현되는 계량 데이터
○ 특징 𝑥1 - 직업 : 디자이너(1), 스포츠맨(2), 교수(3), 의사(4), 공무원(5), NGO(6), 무직(7)
○ 특징 𝑥2 - 선호 품목 : 의류(1), 전자 제품(2), 스포츠 용품(3), 책(4), 음식(5)
○ 특징 𝑥3 - 몸무게 : 실수
○ 𝑋 𝑇 =
{ 𝕩1 = 3,1,50.6 , 𝑦2 , (𝕩2 = 2,3,72.8 , 𝑦1), (𝕩3 = 3,5,88.7 , 𝑦3),
𝕩4 = 2,2,102.2 , 𝑦2 , (𝕩5 = 5,5,92.3 , 𝑦2), (𝕩6 = 3,4,65.3 , 𝑦2),
𝕩7 = 2,3,67.8 , 𝑦1 , (𝕩8 = 7,1,47.8 , 𝑦3), (𝕩9 = 2,3,45.6 , 𝑦1)}
○ 분기를 위한 질문
① 𝑥1에 의한 후보 질문 : 𝑥1 = 1(디자이너)? ,…, 𝑥1 = 7(무직)? - 7개의 후보질문
② 𝑥2에 의한 후보 질문 : 𝑥2 = 1(의류)? ,…, 𝑥2 = 5(음식)? - 5개의 후보질문
③ 𝑥3에 의한 후보 질문 : 𝑥3 < 46.7? ,…, 𝑥3 < 97.25 – 8개의 후보질문
– 실수의 경우는 인접한 두 값의 가운데 값을 사용하여 𝑥3 < 𝛼의 형태로 질문 생성
22. Q1. 각 노드의 질문을 어떻게 만들 것인가?
Q2. 노드에서 몇 개의 가지로 나눌 것인가? (자식노드의 개수)
Q3. 언제 멈출 것인가? (leaf node)
Q4. leaf node를 어느 부류로 할당할(assign) 것인가?
23. 특징 벡터의 특징 값 1개를 이용하여 2개의 자식 노드로 분기할 수 있다.
특징 벡터의 특징 1개를 이용하여, 해당 특징이 가지는 값의 수만큼의 자식 노드
로 분기할 수 있다.
○ 𝕩 = (𝑥1, … , 𝑥 𝑑)
①특징 𝑥1이 가질 수 있는 모든 값을 기준으로 샘플을 분기하고 불순도 감소량을
측정한다.
② ….
③특징 𝑥 𝑑가 가질 수 있는 모든 값을 기준으로 샘플을 분기하고 불순도 감소량을
측정한다.
④그 중 불순도 감소량이 최대인 특징을 노드 분기 질문으로 선택한다.
𝑋 𝑇
𝑋 𝑇1
𝑋 𝑇4
분기를 위한 feature : 𝑗
𝑥𝑗 = 𝛼, 𝛽, 𝛾, 𝛿
𝑋 𝑇3
𝑋 𝑇2
𝑥𝑗 = 𝛼 𝑥𝑗 = 𝛽 𝑥𝑗 = 𝛾 𝑥𝑗 = 𝛿
24. Q1. 각 노드의 질문을 어떻게 만들 것인가?
Q2. 노드에서 몇 개의 가지로 나눌 것인가? (자식노드의 개수)
Q3. 언제 멈출 것인가? (leaf node)
Q4. leaf node를 어느 부류로 할당할(assign) 것인가?
25. 불순도(impurity)가 0이다.
○ 과적합 (overfitting) 발생
𝑋 𝑇의 샘플 개수가 임계값 이하이다.
○ 임계값을 너무 크게 하면, 설익은 수렴에(premature convergence) 도달할 수 있다.
불순도 감소량이 최소인 분기 질문에 대한 불순도 감소량이 임계값 이하이다.
26. Q1. 각 노드의 질문을 어떻게 만들 것인가?
Q2. 노드에서 몇 개의 가지로 나눌 것인가? (자식노드의 개수)
Q3. 언제 멈출 것인가? (leaf node)
Q4. leaf node를 어느 부류로 할당할(assign) 것인가?
27. If 𝑘 = arg max
𝑖
𝑃(𝑦𝑖|𝑇)
𝑇의 부류를 𝑦 𝑘로 한다.
leaf node가 발생했을 때, leaf node에 부류를 할당한다.
할당 조건은 다음과 같다.
28. 샘플에 손실 특징이 있을 경우
○ 𝕩 = (𝑥1, . . , ? , … , 𝑥 𝑑) : 정보가 빠져 있는 경우
○ 어떻게 다룰 수 있을까?
① 샘플을 무시하는 것
② 대리 분기(surrogate split)를 사용
29. 대리 분기(surrotage split)
○ 노드 𝑇가 𝑥𝑖 = 𝛼? 라는 질문으로 분기를 하고 𝑋 𝑇가 𝑋 𝑇 𝑙𝑒𝑓𝑡
와 𝑋 𝑇 𝑟𝑖𝑔ℎ𝑡 나뉜다고 하자. 이
노드에 𝑥𝑗 = 𝛽?라는 또 다른 분기를 추가해 놓은것을 대리 분기라고 한다.
○ 노드 𝑇에서 분기할 샘플이 𝑥𝑖라는 특징을 손실했다면 대리 분기를 이용하여 분기한다.
○ 𝑥𝑖 = 𝛼?는 주 분기(primary split)이다.
○ 대리 분기가 𝑋 𝑇를 𝑋 𝑇 𝑙𝑒𝑓𝑡
와 𝑋 𝑇 𝑟𝑖𝑔ℎ𝑡
로 나눈다면, 𝑋 𝑇 𝑙𝑒𝑓𝑡
와 𝑋 𝑇 𝑟𝑖𝑔ℎ𝑡
과 𝑋 𝑇 𝑙𝑒𝑓𝑡
와 𝑋 𝑇 𝑟𝑖𝑔ℎ𝑡는 가
능한 한 비슷해야 한다.
① 대리 분기를 선택할 때는, 주 분기를 잘 설명해 줄 수 있는 분기로 선택
– 특징 𝑥1 - 직업 : 디자이너(1), 스포츠맨(2), 교수(3), 의사(4), 공무원(5), NGO(6), 무직(7)
– 특징 𝑥2 - 선호 품목 : 의류(1), 전자 제품(2), 스포츠 용품(3), 책(4), 음식(5)
○ 결정 트리 학습 과정에서 손실이 발생할 가능성이 있는 특징을 미리 예측하고 그런 특
징을 사용하는 분기에 대해서 대리 분기를 생성해야 한다.
30. 굉장히 직관적인 분류기 (One of the most intutive classifiers)
이해하기 쉽고, 만들기 쉬움 (Easy to understand and construct)
잘 작동함 (Surprisingly, also work very well)
31. 패턴인식 - 오일석
머신러닝 인 액션 - 피터 해링턴
The Elements of Statistical Learning - Trevor Hastie, Robert Tibshirani, Jerome
Friedman
32. Information Theory
상황 1)
오늘 하루 종일 맑다. 뉴스에서 "내일은 맑다"라는 일기 예보를 듣는다.
상황 2)
오늘 하루 종일 맑다. 뉴스에서 "내일은 큰 비가 온다"라는 일기 예보를 듣는다.
두 가지 상황을 비교해보자. 어느 상황에서 더 많은 정보를 얻었을까?
Information Theory(정보 이론)는 주어진 상황에서 우리가 얻을 수 있는
정보량을 수치화해주는 기능을 제공한다.
상황 정보량
수치화(확률)
33. 상황 1)
오늘 하루 종일 맑다. 뉴스에서 "내일은 맑다"라는 일기 예보를 듣는다.
⇒ 직관적으로, 오늘 날씨가 맑기 때문에 내일의 날씨도 맑을 확률이 높다.
이 상황에서 얻을 수 있는 정보(놀라운 정도)는 적다고 볼 수 있다.
상황 2)
오늘 하루 종일 맑다. 뉴스에서 "내일은 큰 비가 온다"라는 일기 예보를 듣는다.
⇒ 직관적으로, 오늘 날씨가 맑기 때문에 내일 비가 올 확률은 상황 1에 비해
상대적으로 낮다. 이 상황에서 얻을 수 있는 정보(놀라운 정도)는 상황 1에
비해 상대적으로 높다.
Information Theory
34. Information Theory
간단한 예이지만,
어떤 사건의 확률과 그것이 전달하는 정보량은 반비례 관계임을 알 수 있다.
정보량은 "놀라운 정도"라고 할 수 있다.
일반적으로 확률이 낮은 사건일수록 더욱 놀랍고 정보량은 크다.
이 관계는 정보 이론(Information Theory)이 토대로 삼는 가장 중요한 원리
정보량을 어떻게 수치화 할 수 있을까? 𝑝 내일 = 큰비 오늘 = 맑음)
𝑝 내일 = 맑음 오늘 = 맑음)
35. 𝑥 : random variable(랜덤 변수)
○ 확률 변수는 샘플공간(발생 가능한 이벤트, 사건) 에서 실수로의 함수이다.
ex1) input : 주사위를 던졌을 때 3의 눈이 나오는 사건, output : 3
ex2) input : 동전을 던졌을 때 앞면이 나오는 사건, output : 1(T)
𝑝(𝑥) : 𝑥가 특정한 값을 가질 때, 랜덤 변수 𝑥의 확률
ℎ(𝑥) : 𝑥의 자기 정보량(self-information)
𝒉 𝒙 = − 𝐥𝐨𝐠 𝟐 𝒑(𝒙)
정보량
36. 𝒉 𝒙 = − 𝐥𝐨𝐠 𝟐 𝒑(𝒙)
ℎ(𝑥)의 단위는 bit이다. 밑이 𝑒인 자연로그를 사용한다면 단위는 nat가 된다.
랜덤 변수 𝑥가 𝑎의 값을 갖는다고 가정하고, 𝑝 𝑎 =
1
1024
라고 하자. 즉 1024번에
한 번 정도 발생하는 사건이다. 이 때 𝑎의 정보량은 10bits가 된다. 𝑝 𝑎 = 1이라
고 하자. 𝑎의 정보량은 0bit이다.
정보량
𝑝(𝑥)
ℎ(𝑥)
37. 엔트로피(entropy)
○ 랜덤 변수 𝑥가 가질 수 모든 값(사건)에 대한 정보량(자기 정보량)의 평균
𝑯 𝒙 = −
𝒙
𝒑 𝒙 𝐥𝐨𝐠 𝟐 𝒑 𝒙
𝑯 𝒙 = − න
−∞
∞
𝒑 𝒙 𝐥𝐨𝐠 𝟐 𝒑 𝒙 𝒅𝒙
○ 위의 경우는 𝑥가 discrete 값을 가지는 경우이고, 아래의 경우는 연속적인 값을 갖는
경우이다.
○ 즉, 랜덤 변수 𝑥의 엔트로피를 통하여 𝑥에서 얻을 수 있는 정보를 계산할 수 있다.
① 엔트로피↑ → 정보량↑ → 발생 가능성↓ → 혼란도, 불순함↑
② 엔트로피↓ → 정보량↓ → 발생 가능성↑ → 혼란도, 불순함↓
엔트로피(entropy)
※ 랜덤 변수 𝑥의 함수 ℎ(𝑥)의 평균 : σ 𝑥 ℎ 𝑥 𝑝(𝑥)
38. Example)
○ 랜덤 변수 𝑥 : 주사위를 던지는 사건에서 나올 수 있는 값
① 랜덤 변수 𝑥가 가질 수 있는 값 : 1, 2, 3, 4, 5, 6
– 𝑝 𝑥 = 1 = 𝑝 1 = ⋯ = 𝑝 𝑥 = 6 = 𝑝 6 =
1
6
» 𝐻 𝑥 = − σ𝑖=1
6
𝑝 𝑥 log2 𝑝 𝑥 = −6 ×
1
6
log2
1
6
= 2.585bit
– 𝑝 𝑥 = 1 = 𝑝 1 =
5
6
, 𝑝 𝑥 = 2 = 𝑝 2 = ⋯ = 𝑝 𝑥 = 6 = 𝑝 6 =
1
30
» 𝐻 𝑥 = − σ𝑖=1
6
𝑝 𝑥 log2 𝑝 𝑥 = −
5
6
log2
5
6
− 5 ×
1
30
log2
1
30
=0.225bit
○ 모든 사건이 같은 확률을 가질 때 엔트로피는 최대가 된다. 무질서 정도(불순도)가 최대
가 된다. 즉, 불확실성(uncertainty)이 최대이다.
①여섯개의 사건이 모두 같은 가능성을 가지므로 어떤 눈이 나올 지 가늠하기 매우
어렵다.
○ 한 사건이 1의 확률을 가지고, 나머지 사건이 0의 확률을 가지면 엔트로피는 0이다.
①어떤 눈이 나올 지 가늠하기 매우 쉽다.
엔트로피(entropy)
Back