본문 바로가기
Drawing (AI)/Google

Google ML crash course (9)

by 생각하는 이상훈 2024. 2. 19.
728x90

특성 교차

특성 교차는 두 개 이상의 특성을 곱하여 (교차하여) 구성되는 합성 특성이다. 특성 조합을 교차하면 이러한 특성이 개별적으로 제공할 수 있는 것 이상의 예측 기능을 제공할 수 있다.

위와 같은 상태에서 선형 모델로 구분을 해내는 것은 불가능하다. 이떄 x1과 x2의 곱인 x3을 추가적인 feature로 이용하면 곱이 양수인 blue dot과 곱이 음수인 red dot을 구분해낼 수 있다. 선형 모델로 비선형성을 학습 시킬 수 있는 것이다. 이렇게 다른 변수의 곱으로 합성 특성을 만드는 과정을 일반적으로 특성 교차 곱이라고 부른다. 특성 교차와 대량의 데이터 사용은 매우 복잡한 모델을 학습할 수 있는 효율적인 전략 중 하나이다.


원-핫 벡터 교차

지금까지는 두 개의 개별 부동 소수점 특성을 특성 교차하는 데 집중했다. 실제로 머신러닝 모델에서 연속 특성이 거의 사용되는 경우는 거의 없다. 그러나 머신러닝 모델은 원-핫 특성 벡터를 교차하는 경우가 많다. 원-핫 특성 벡터의 특성 교차를 논리 결합이라고 생각하면 된다. 예를 들어 국가와 언어라는 두 가지 특성이 있다고 가정한다. 각각의 원-핫 인코딩은 country=USA, country=France 또 language=English, language=Spanish로 해석될 수 있는 바이너리 특성이 있는 벡터를 생성한다. 그런 다음 이러한 원-핫 인코딩의 특성 교차를 수행하면 논리적 결합으로 해석될 수 있는 다음과 같은 바이너리 특성을 얻게 된다.

  country:usa AND language:spanish

 

또 다른 예로, 위도와 경도를 비닝하여 별도의 원-핫 5개 요소 특징 벡터를 생성한다고 가정해 보겠다. 예를 들어 특정 위도 및 경도는 다음과 같이 나타낼 수 있다.

  binned_latitude = [0, 0, 0, 1, 0]
  binned_longitude = [0, 1, 0, 0, 0]

 

이 두 특성 벡터의 특성 교차를 만든다고 가정해 보자.

  binned_latitude X binned_longitude

 

이 특성 교차는 25개 요소로 구성된 원-핫 벡터 (0은 24개, 1은 1개)이다. 교차에 있는 단일 1는 위도와 경도의 특정 결합을 식별한다. 그러면 모델이 이 결합에 대한 특정 연결을 학습할 수 있다. 위도 및 경도를 다음과 같이 훨씬 더 대략적으로 data binning한다고 가정하자.

binned_latitude(lat) = [
  0  < lat <= 10
  10 < lat <= 20
  20 < lat <= 30
]

binned_longitude(lon) = [
  0  < lon <= 15
  15 < lon <= 30
]

 

대략적 특성 구간을 교차하는 특성 교차를 만들면 다음과 같은 의미를 갖는 합성 특성이 생성된다.

binned_latitude_X_longitude(lat, lon) = [
  0  < lat <= 10 AND 0  < lon <= 15
  0  < lat <= 10 AND 15 < lon <= 30
  10 < lat <= 20 AND 0  < lon <= 15
  10 < lat <= 20 AND 15 < lon <= 30
  20 < lat <= 30 AND 0  < lon <= 15
  20 < lat <= 30 AND 15 < lon <= 30
]

 

이제 모델이 다음 두 특성을 기반으로 개에 대한 만족도를 살펴볼 필요가 있다고 가정해 보자.

행동 유형 (짖는 소리, 울음, 껴안기 등), 시간의 두 특성에서 특성 교차를 구축하면 다음과 같은 결과가 나타난다.

  [behavior type X time of day]

 

그러면 두 기능 자체보다 훨씬 더 예측 성능이 좋은 결과를 얻게 된다. 예를 들어 강아지가 주인이 퇴근 후 오후 5시에 애교를 부리면 주인이 아주 만족할 것이라고 긍정적인 예측을 할 것이다. 반면에 강아지가 오전에 새벽 3시에 짖어댄다고 하면 주인의 만족도를 예측할 때 강력한 부정적인 요인이 될 수 있다. 이 외에도 대규모 데이터 세트에서 특성 교차를 사용하는 것은 매우 복잡한 모델을 학습할 수 있는 효율적인 전략 중 하나이다.


실습

x1이나 x2만 사용한 결과 충분한 에폭동안 학습을 해도 loss가 줄지않는 것을 볼 수 있다.

 

이때 비선형적인 feature를 이용하면 아래와 같이 적절한 결과를 낼 수 있다.

이때 xy곱을 이용하면 비션형 모델을 구현하여 단순선형모델보다 뛰어난 성능을 낼 수 있음을 볼 수 있다.


 

728x90

'Drawing (AI) > Google' 카테고리의 다른 글

Google ML crash course (8)  (0) 2023.03.19
Google ML crash course (7)  (0) 2023.03.07
Google ML crash course (6)  (0) 2023.02.27
Google ML crash course (5)  (0) 2023.02.25
Google ML crash course (4)  (0) 2022.12.26