서서히 느끼는 것이지만, ai에서 수학은 선택이 아닌 필수다. 특히 개발자라면 필자는 수학이 반드시 필요하다고 생각하는 데 오늘은 그 이유에 대해 설명해볼까 한다
AI의 정체
딥러닝에서 일어나는 일에 대해 쉽게 생각해 보면, input 값을 주면 output이 나온다. 너무나 당연한가? 좀 더 풀어보자. 그 input이 image가 들어가면 원하는 task에 대한 output이 나온다. 그래 지금 이야기는 사용자의 입장에서 바라본 딥러닝이다. 여기서 조금만 더 생각해보자. 어떻게, 내가 임의의 input을 넣었는 데, 내가 원하는 output이 나오는 것일까? 신기하다. 더 잘 이해하기 위해, 사람의 입장에서 한번 생각해보자. 우리는 고양이를 보고 어떻게 고양이라고 인식하고, 강아지를 보고 어떻게 강아지라고 인식하는 것일까? 간단하다. '경험을 바탕으로 고양이를 고양이로, 강아지를 강아지로 인식'하는 것이다. 즉 경험에 바탕해서 내가 들어온 객체를 무엇이라고 판단하는 것이다. 방금 말한 것이 매우 중요하다.
위의 설명을 기계로 옮겨와서 설명해 보겠다. 딥러닝이든 머신러닝이든, 컴퓨터는 학습된 데이터에 기반해서 결과를 예측한다. 그런데 정확히는 경험은 데이터 공간과 같고, 경험을 만드는 하나의 사건이 데이터와 같다. 정리하면 '사람에게 있어 하나의 사건은 컴퓨터에게 하나의 데이터, 사람에게 경험은 컴퓨터에 있어 데이터 공간'과 같은 말이다. 경험에 바탕해서 무엇일지 판단한다는 것은 결국, 확률과 통계에 대한 이야기와 같다. 즉 학습할 데이터들을 가지고 모델 학습을 통해 해당 데이터들로 확률 분포를 만든 후 그 확률 분포( 통계 )에 기반하여 결과( 데이터가 특정 결과일 확률 )를 도출한다. 이게 우리가 사용하는 ai의 정체다.
여기까지의 내용만으로 예시를 들어보겠다. 분류의 문제로 예시를 들까 한다.
1. 내가 20 종류의 강아지를 봤다.
2. 이를 토대로 강아지에 대한 경험을 쌓았다.
3. 특정 물체를 보았고 경험에 빗대어 강아지라고 판단했다.
컴퓨터의 입장에서는 위 상황은 아래와 같다.
1. 20개의 강아지 데이터로 학습했다.
2. 해당 데이터들로 데이터 공간에 대한 확률 분포를 가지게 되었다.
3. 특정 데이터가 들어왔고 그 확률 분포에 기반하여 해당 데이터를 강아지로 판단했다.
그래, 그럼 이제 확률과 통계가 필요한 이유는 알겠다. 딥러닝 모델이든, 머신 러닝 모델이든 결국 학습하는 데이터에 대한 확률분포를 잘 설계된 모델을 통해 어떻게 만드는 가에 대한 여부니까. 그건 그렇다 치고. 그럼 선형 대수는 왜 필요한 것일까? 위에서 데이터 공간이라는 말을 사용했다. 그럼 잠깐 더 생각해보자. 우리는 데이터를 어떻게 표현해야 할까? 컴퓨터는 모든 것을 숫자로 이해한다. 그래, 그럼 수체계를 활용해서 표현하면 되겠다. 그럼 여기서 중요한 것은 데이터 일까, 아님 데이터 공간일까? 데이터 공간에 확률 분포가 원하는 테스크와 맞아야만 맞는 결과를 도출할테니. 그럼 결국 데이터 공간을 표현하는 것이 중요하다고 생각한다 ( 개인적인 생각이다 ) 그럼 데이터 공간을 어떻게 표현해야 하는 것일까? 이에 대한 대답이 우리가 선형대수학을 배워야하는 이유다. 어떻게 데이터 공간을 표현할 것인가에 대한 대답을 찾기 위해서 ai에서는 선형대수학의 표현법을 빌려왔다. 그렇다면, 많은 이들이 알고 있는 유향선분의 벡터로 벡터를 해석하는 것이 맞나? 아니라고 본다. 어느 공간안의 하나의 구성 요소를 표현하기 위해 선형대수가 필요하다. 그럼 벡터는 왜 쓰고, 내적은 뭐고..차차 시간이 있으면 다루겠다. 다만 오늘 이 글을 통해, AI에서 수학이 왜 필요한지를 알고 갔으면 좋겠다.