본문 바로가기
Deep learning

5-2.Feature selection using Entropy / Mutual information

by 괴로운데이빗 2020. 12. 22.

본차시에서도 피처셀렉션에 대해 알아보자.

 

feature selection할때 정보이론 분야에서 연구가 많이 되어온 이론을 이용할 수 있다.

엔트로피라는 개념이 있다.

 

벡터간의 관계를 생각해본다고 가정하면,

Normal, cancel 레이블이 들어간 벡터v1, 피처들의 값이 들어간 벡터 v2, 또다른 벡터 v3

그러면 v1과 v2의 연관성, v1과 v3의 연관성을 계산해볼 수 있다.

 

Normal인경우 v2은 작은값이 나오고 있다.

v3는 일괄적으로 작은 값이 나오고 있다.

 

v1과 v2의 연관성이 높다고 생각할 수 있다.

 

이렇게 연관성이 높은 피처들을 추출할 수 있다면, 오버피팅 문제들을 완화시킬수 있다.

 

이렇게 분포간의 유사도를 계산하기 위한 방법을 생각해보자.

 

먼저 정보 양에 대한 식이다.

어떤 사건이 일어날 확률 p(x)에 대한 정보량은 -log(확률)값이다.

이것을 그래프로 그려보면...

확률이 1에 가까우면(항상 일어나는 일이라고 가정하면) 누구나 다 알고있기에 정보량이 0이다.

그러나 회귀하게 나타는 확률(거의 일어나지 않는 일)은 정보량이 높은 것이다.

 

엔트로피는 정보량의 기대값을 나타낸다.

일어날 확률을 곱한뒤 그 값들을 다 더한다.

 

실제 엔트로피를 그려보면,

0과 1사이에 포물선비슷하게 그려진다.

 

아주 확실한 것이나, 거의 일어날 일이 없는 일은 엔트로피가 작고,

0.5에 가까움(불확실성 unceretainty가 높을수록 엔트로피가 커지게 된다.)

 

엔트로피에서 좀 더 나아가서,

어떤확률변수 x, y가 있을때 이 둘간의 관계를 표현해줄수있는식이

joint entropy이다.

 

joint entropy에서는 한가지 사건뿐만 아니라,

즉 x뿐 아니라 y도 고려해주는 식이다.

 

식은 똑같다.

두 사건이 같이 일어날 확률, 그것을 -log값에 넣어주고 그것의 기대값을 구한것이 joint entropy가 된다.

 

그런데 x와 y가 서로 독립인 경우,

이 값이 H(x)+H(y)가 된다.

 

H(x,y)와 H(x)+H(y)의 차이를 구하면

얼마나 x와 y가 서로 관련성이 있는지를 알아낼수있다.

 

만약 이 차이가 크다고 하면 x, y서로 연관성이 높다.

 

그런것들을 측정하기위한 식이 mutual information이라는 식이 있다.

mutual information이 바로 H(x)+H(y)-H(x,y)이다.

 

joint entropy앞에는 -가 있었는데, mutual information앞에는 -가 없다.

즉 두변수간에 관련성이 높으면 mutual information값이 커지게된다.(상호의존성이 크면, 값이 커진다.)

반대로 관련성이 없으면(독립일때 H(x,y)=H(x)+H(y)이므로) mutual information 0이된다.

 

mutual information 이 식이 나타내는 의미를 살펴보면

이 두 변수 x, y를 따로따로 보았을때보다

같이 보았을때 얼마나 불확실성이 감소하는가를 정량화한 식이다.

 

 

이런 값들을 구하면 벡터간의 의존도가 높은지, 서로 얼마나 관련성이 있는지를 구할수 있고,

우리가 엔트로피 살펴보았는데,

엔트로피들을 낮춰주는 특징들을 찾아서 특징들을 바탕으로 분류를 해내겠다는 idea로 decision tree가 제안이 되었다.

decision tree를 이용하게되면

트리 상단에서 상당히 중요한 피처들이 뽑힐수 있는데,

 

디시전트리에 대해서 다음 슬라이드에서 살펴보자

 

 

decision tree는 기존 set들을 두 그룹으로 나누었을때, entropy값들이 가장 떨어지게하는,

즉 불확실성이 가장 떨어지도록 하는 그룹을 나누어주게끔 피처들을 선택하는 방법이다.

 

예를들면

Normal subject, AD subject가 있고

피처 2번은 노말은 숫자가 작고 AD는 숫자가 컸는데,

아마도 피처2번 선택하면 불확실성을 조금 줄일수있다고 생각할 수 있다.

 

피처가 많으니까, 피처에 대해서 테스트들을 해보고

테스트한것 중 가장 좋은 것을 선택해나가면서

트리구조로 만들어주게 된다.

 

그 예시를 한번살펴보자.

 

전체상황에서 엔트로피를 구할 수 있을텐데

전체상황에서보면 노말4개, AD 4개이니

다음과 같이 엔트로피를 구할 수 있다.

-( 1/2log(1/2)(노말에대한 엔트로피) + 1/2log(1/2)(알츠하이머에 대한 엔트로피))

이것이 전체 set에 대한 엔트로피 H(s)이다.

 

피처2를 선택하지 않고 피처1을 선택했다고 가정해보자.

그래서 피처1이 8이상되는 경우와, 아닌 상황으로 나누었다고 가정해보자.

 

8보다 작은경우3가지,

이 3가지경우 모두 Normal

이런 경우에는 엔트로피구하면

0*log0이 되서

이전 슬라이드에서 보았던 엔트로피함수(볼록그래프)에 따라 x가 0이니 y(엔트로피값)이 0

 

8보다 큰 부분 5가지 스코어,

5가지 스코어중 1개는 노말, 나머지 4개는 AD

엔트로피를 구해보면

(1/5log(1/5)(노말엔트로피)+4/5log(4/5)(AD엔트로피))

 

따라서 0*log0-(1/5log(1/5)(노말엔트로피)+4/5log(4/5)(AD엔트로피))가

피처1의 8이상조건을 선택했을때 나오는 엔트로피H(f1)가 된다.

 

반면 피처2가 선택되었다고 가정해보자.

피처2가 10이상이경우와 아닌경우

 

10보다 작은 경우 4가지 전부 노말

이 경우 엔트로피 0

10보다 큰 경우 4가지 전부 AD

 

 

 

 

(11 :36)

 

 

 

 

 

 

 

 

'Deep learning' 카테고리의 다른 글

5-1. Feature selection using L1 regularization  (0) 2020.12.07
4-7. Evaluation of classification model (Multi-label)  (0) 2020.11.11
4-6. Evaluation of classification model  (0) 2020.11.05
4-5. Data Augmentation  (0) 2020.11.05
4-4. Transfer Learning  (0) 2020.11.05
4-3. Overfitting / Regularization  (0) 2020.11.02
4-2. Validation  (0) 2020.11.02