💻 Computer Science/Machine learning 🦕

(인공지능) 특징공간과 차원의 저주

노가다 권씨 2024. 3. 2. 11:56
728x90
반응형

우리가 사는 세상은 3차원이다. 가끔 이상하게 행동하는애들을 보며 쟤는 4차원이라고 한다.

데이터에도 차원이있다. 그런데 얘는 우리가 3차원으로 본다면 3차원이 되고 4차원으로 본다면 4차원이되고 177차원으로 본다면 177차원이된다. 데이터의 특징을 얼마나 변수화하냐에 따라 데이터의 차원은 무한히 커질수있다.

 

예를들자면, 집 근처에 공공자전거 대여소가 3곳이 있다. 내가 지금부터 준비해서 나간다면 10분정도 걸리는데, 10분후 어느 대여소로 가야 자전거를 대여할수있을까? (우리동네는 자전거 물량이 넉넉하지않아 대여소에 자전거가 아예없는 경우가 허다하다.) 10분후 대여소의 자전거 대수를 예측해주는 모델을 만들고싶다. 그렇담 결과값(y)는 자전거 대수일테고 변수 x는? 대여소의 잔류자전거 대수에 영향을 미치는 요소는 모두 변수가 될수있다. 날씨, 요일, 근처학교 등하교시간(급식들이 많이탐), 교통상황, 시간대 등등등... 모든것을 다 변수로 취급할수있다.

 

이 x와 y의 관계를 벡터로 표기할수있는데 이를 특징벡터 라고한다. 특징벡터는 아래와같이 표기한다.

특징벡터의 표기

위의 자전거 예측모델의 데이터를 특징벡터로 표기한다면 아래와같이 표기할수있다.

 x와 y의 관계이므로 우리는 그래프상에 점을 찍을수있다. 위에는 x변수가 5개이므로 그래프 공간을 그리기 컹스하니 다른 변수들은 제거하고 임의로 시간대 변수만 남겨둬서 점을 찍어보자

이건 실측은 아니고.. 그냥 예시로 그려본거다. 7시부터 대략 10시 10분? 정도까지의 대여소 자전거 대수 현황인데 어느정도 현실반영해서 7시부터 출근 러시아워때는 자전거대수가 줄어들다가 출근시간대 이후론 다시 채워지는 가정(?)을 해보았다.  우리가 점을찍은 저 좌표평면을 특징공간이라고 한다. 변수 1개만 썼으므로 특징공간은 2차원 평면좌표지만, 만약 데이터의 차원을 1개 더 늘려 (예를들어... 등하교 시간대 변수를 추가했다면) 변수가 2개이므로 특징공간은 3차원 좌표공간으로 그려질것이다. 

 

특징공간의 차수는 변수의 개수이다.(특징공간의 차수 = 변수의 개수 = 데이터의 차수) 위의 2차원공간의 경우 '1차원 특징공간'이라고한다. 결과값인 y값도 포함되어야하기 때문에 변수 차수보다 1차원 높게 잡아야한다. 1차원 특징공간은? -> 2차원 평면좌표. 2차원 특징공간은? -> 3차원 공간좌표.. 이런식으로 가는거다. 빅데이터의 대표적인 예시인 Iris데이터는 꽃받침길이, 꽃받침너비, 꽃잎길이, 꽃잎너비로 꽃의 종류를 분류한다. Iris데이터는 4차원데이터 = 4차원 특징공간이다.

 

그럼 데이터 차원이 낮을수록 특징공간 차수가 낮아지므로 표기하기는 편하겠다. 그러나..

똑같이 시간대변수만 남겼을때 어느날은 이렇게 측정되는경우가 있을것이다. 왜 이럴까? 이날은 비가와서 아무도 자전거를 타지않아 대여소 자전거 유동이 없는날이다. 그러나 위의 그래프는 비가오는 상황에대한 정보를 아예 담고있지않다. 그냥 '오늘은 시간대별 유동량이 아예없다' 가 끝이다. 이렇기에 날씨변수를 고려해줘야한다. 날씨변수와 시간대변수 2개를 고려했을때는? 또 분명 요일, 공휴일 등 여러 변수를 고려해야할 상황이 올것이다.

 

"그러면 최적화 모델은 결국 모든변수를 다 고려해서 정확한예측을 하는 모델아님?"

모든변수를 다 고려한다면 정확도는 높아지겠으나.. 현실적으로 모든 변수를 다 고려할수없다. 애초에 변수가 워낙 들쭉날쭉할뿐더러 (예를들어 갑자기 대여소근처 도로공사..?) 어느정도 고정적인 변수라 할지라도 모든것을 다 고려하기엔 데이터가 워낙 많이 필요하기때문이다. 변수를 추가하는건(=데이터의 차원을 늘린다는건) 데이터 측정,수집에선 꽤나 부담스러운 일이다. 데이터의 차원이 커질수록 필요한 데이터의 양은 기하급수적으로 많아지는데 이를 차원의저주(Curse of Dimensionality)라 한다.

 

위와같이 특징공간이 커질수록, 공간을 채우는데 필요한 데이터의 양이 지수 스케일로 많아진다. 특징공간 차원을 1차원 높이는게 어느정도 부담인지 알수있다.

 

위의 공공자전거 예시로 돌아가보면, 시간대 변수만 고려한 1차원 특징공간에선 10개? 정도의 데이터만으로 점을 찍을수있었다. 다만 변수를 한개만 고려하기엔 그 상관관계의 정확도가 낮기에 계속 차원을 늘려줘야했다.

그렇다면 시간대,날씨,날짜,요일,근처학교 등하교 총 5개의 변수를 고려한다면? 만약 그때도 데이터가 10개뿐이라면? 넓디넓은 6차원 공간좌표에서 딸랑 점이 10개찍혀있는 모습을 상상해보자. 2차원에선 나름 있어보였지만 6차원에선 먼지에 불과한 양이다.. 10개의 측정값에 변수가 6개라면.. 아마 결과값이 뭐땜에 저리나오는지도 모를것이다. 의미있는 결과를 보고싶다면 10^5개 정도의 측정데이터가 필요한데 그렇다면 데이터측정만하다가 졸업하지않을까 싶다

 

결론은 의미있는.. 결과에대한 표현력이 가장 강한 변수 몇개만 설정해서 데이터를 측정하는게 가장 이상적인 그림이다. 어떤 변수가 표현력이 강한지는 책과 논문을 읽고 직접 실험몇번해보면 알수있을것이다. 

 

아 암튼 AI기반 타슈 대여소별 대수 예측어플은 누가 좀 만들어줬음좋겠다. 대전시에서 대여소 일별 시간별 유동량 데이터는 공개를 안해둬서 데이터수집이 빡세긴할텐데 .. 근데 내가 어플개발자라도 대전 타슈보단 서울 따릉이 어플을 개발할거같다. 그게 더 돈이되지않을까?

 

 

사진 등 자료참고

https://www.freecodecamp.org/news/the-curse-of-dimensionality-how-we-can-save-big-data-from-itself-d9fa0f872335/

 

 

 

반응형