#인공지능 

AI 수학 왜 중요할까요? (선형대수학, 확률과 통계, 미적분) – 머신러닝 수학, 딥러닝 수학

인공지능 분야에서 수학이 왜 중요한지, 그리고 선형대수학, 확률과 통계, 미적분 등의 수학 분야들이 머신러닝 이론에 어떻게 적용되어 있는지 알려드립니다.

2022-10-19 | 신승연

AI를 공부할 때 수학이 꼭 필요할까?

인공지능 공부를 시작하는 많은 사람들이 수학을 어려워합니다. 인공지능 공부를 하려고 해도 수식을 보면 어지러워지고, 어떤 수학을 공부해야 하는지도 잘 몰라서 막막하죠. 듣기로는 선형대수, 미적분 같은 게 필요하다고는 하는데… 이것들이 왜 필요한지, 대학 수학을 다 알아야만 하는 건지 모르겠습니다😵‍💫 정말 인공지능을 공부할 때 수학이 꼭 필요할까요? 코드 몇십 줄로도 딥러닝을 한다던데, 그냥 코딩만 할 줄 알면 되는 게 아닌 걸까요?

AI 분야에서 수학이 중요한 이유

AI 분야에서 수학이 중요한 이유는 데이터의 입력부터 출력까지, AI 모델을 구성하고 학습시키는 모든 과정이 수학적으로 표현되기 때문입니다. 데이터와 모델은 선형대수학에서 등장하는 벡터와 행렬의 형태로 표현되고, 인공지능은 그 자체로 확률적인 모델이며, 인공지능 모델을 학습시키는 데는 미분 개념이 포함된 최적화 기법이 사용됩니다. (이 문장이 잘 이해가 되지 않아도 괜찮습니다. 뒤쪽에 더 자세한 설명이 있거든요!) 예제 코드에 나온 모델을 단순히 돌려보기만 한다면 수학 같은 건 하나도 몰라도 됩니다. 하지만, 만약 구현하고 싶은 모델이나 해결하고 싶은 문제가 있고, 그 문제에 맞는 모델을 구현하려면 인공지능 모델이 어떻게 작동하는지 알고 있어야 하죠. 이미 구현된 모델의 성능을 향상시키려고 할 때도, 모델을 잘 알고 있다면 성능을 효율적으로 개선할 수 있을 것입니다. 인공지능을 더 잘 이해하기 위한 강력한 도구가 바로 수학입니다.

AI 분야에서 사용하는 수학적 기법 – 선형대수학, 확률과 통계, 미적분

그렇다면 인공지능을 이해하기 위한 수학 분야에는 어떤 것들이 있을까요? 인공지능 논문을 찾아보면 수학의 다양한 분야가 적용된 연구들이 있지만, 기초적인 모델을 이해하기 위한 수학은 크게 선형대수학, 확률과 통계, 미적분으로 분류될 수 있습니다.

선형대수학 – 데이터와 모델의 표현

a picture of a series of equations

[Photo by Antoine Dautry on Unsplash]

인공지능 분야에서 중요한 요소 중 하나가 바로 ‘데이터’입니다. 사람이 일상 생활을 하며 학습하는 것처럼, 인공지능 모델도 학습을 하기 위해서는 데이터가 필요합니다. 그러나 사람의 뇌는 이미지, 텍스트, 음성 등 다양한 형태의 데이터를 바로 이해할 수 있지만, 컴퓨터는 그렇지 못하기 때문에 인공지능 모델에 데이터를 사용할 때는 데이터를 컴퓨터가 이해할 수 있는 형태로 변환해줘야 합니다. 컴퓨터가 이해할 수 있는 건 바로 숫자인데, 복잡한 데이터를 숫자 하나로 표시하는 것은 불가능합니다. 그렇기 때문에 인공지능에서 데이터는 여러 숫자들이 나열된 ‘배열’ 형태로 표현됩니다. 이미지 데이터는 픽셀 값들을 포함하는 다차원 배열이 되며, 텍스트와 음성 데이터도 전처리 과정을 거쳐서 숫자들의 배열로 표현됩니다.

이러한 숫자 배열이 바로 선형대수학에서 등장하는 벡터, 행렬 개념에 해당됩니다. 파이썬과 같은 프로그래밍 언어들은 배열을 기본적인 자료 구조로 제공하고 있고, NumPy 등의 라이브러리를 이용해서 숫자 배열 사이의 연산을 편리하게 할 수 있습니다. 또한, 데이터를 수학적인 행렬로 표현했을 때는 우리의 문제를 해결하는 최적의 모델을 찾는 과정에 선형대수학의 개념들을 적용할 수도 있죠. 그러므로 데이터를 배열 형태로 표현하는 것은 이론 측면에서도, 실제로 구현을 할 때도 효율적인 방법이라고 할 수 있습니다.

확률과 통계 – 확률 모델로서의 인공지능

a picture of dice

[Photo by Lucas Santos on Unsplash]

인공지능, 특히 머신러닝 이론은 추론 통계학(inferential statistics)의 아이디어를 바탕으로 하고 있습니다. 우리가 알고 있는 데이터가 사실은 특정한 확률 분포로부터 관찰된 결과라는 것이죠. 예를 들어 동전을 여러 번 던지면서 결과를 앞면/뒷면으로 기록할 때, 기록된 데이터는 앞면과 뒷면이 나올 확률이 각각 1/2인 확률 분포로부터 추출된 결과입니다. 마찬가지로, 사람의 키 역시 특정한 분포를 따르고, 사람들의 실제 키 데이터는 그 분포로부터 무작위로 추출된 샘플이라고 생각할 수 있습니다. 데이터가 주어졌을 때 데이터가 따르는 특정한 확률 분포를 추정하는 것이 바로 추론 통계학의 핵심 목표입니다.

각각의 머신러닝 모델은 특정한 확률 분포(또는 확률 분포들 사이의 경계)를 나타내고 있기 때문에, 머신러닝 모델을 정의하고 학습시키는 데는 확률 개념이 포함됩니다. 모델의 종류와 구조는 확률 분포의 형태를 결정하고, 확률 분포의 세부적인 부분들은 모델의 파라미터(parameter, 매개 변수)에 의해 결정됩니다. 예를 들어 정규분포를 따르는 데이터로 모델을 학습시킨다고 합시다. 그러면 우리는 적절한 모델 구조를 선택함으로써 모델이 나타내는 확률 분포를 정규분포로 만들어주어야 하고, 주어진 데이터를 이용해 모델의 파라미터 값을 변경해서 정규분포의 평균과 표준편차를 데이터에 맞게 조절해주어야 합니다. 딥러닝 분야에서 자주 등장하는 용어인 하이퍼파라미터(hyperparameter) 역시 ‘모델의 구조’에 해당하는 개념입니다. 결국 머신러닝은 적절한 모델 구조를 먼저 정의하고 최적의 파라미터 값을 찾는 과정이라고 할 수 있습니다. 그렇다면 최적의 파라미터는 어떻게 찾을 수 있을까요?

미적분 – 더 나은 인공지능 모델을 위해

a picture of a calculus equation

[Photo by Jeswin Thomas on Unsplash]

우리가 관찰하는 데이터에는 다양한 오류가 포함되어 있습니다. 측정 기구의 오차, 통신 과정에서의 데이터 손실 등 사람이 줄일 수 있는 오류도 있지만, 데이터가 가지고 있는 태생적인 노이즈(noise)도 존재합니다. 그렇기 때문에 데이터가 특정한 확률 분포로부터 관찰되었다고 해도, 모든 데이터가 그 분포에 정확하게 일치하는 것은 아닙니다. 또한, 모든 데이터에 정확하게 들어맞는 확률 분포를 추정하는 것 역시 불가능합니다. 그러므로 머신러닝 모델의 목표는 주어진 데이터가 관찰될 확률을 100%로 만드는 것이 아니라, 확률을 최대화하는 것입니다. 하지만 많은 파라미터를 가지고 있는 모델, 특히 딥러닝 모델의 손실 함수(loss function, 모델의 예측 결과와 정답 데이터의 차이를 나타내는 함수)는 매우 복잡하기 때문에 최적의 파라미터를 한번에 계산할 수가 없습니다. 그 대신, 파라미터를 여러 번에 걸쳐서 조금씩 업데이트하는 방법을 사용하죠. 그렇다면 각각의 파라미터를 ‘얼마나’ 조절해야 하는 걸까요? 이 문제와 관련된 수학 분야가 바로 미적분입니다.

미분은 함수에서 입력 변수의 변화량에 따른 출력 변수의 변화량을 나타내는 개념입니다. 머신러닝의 예를 들면 입력 변수는 데이터와 모델 파라미터, 출력 변수는 모델의 예측 결과로 생각할 수 있습니다. 그런데 모델을 학습시킬 때는 데이터가 이미 주어져 있으므로 데이터는 값이 변하는 변수가 아니고, 미분 개념은 파라미터의 변화량과 예측 값의 변화량 사이의 관계를 계산하는 데 사용됩니다. 모델의 예측 결과와 정답 데이터의 차이(오차)를 계산하는 것은 쉽기 때문에, 이 오차 값(출력)과 미분을 이용해서 모델 파라미터(입력)가 얼마나 변경되어야 오차가 줄어드는지 알아낼 수 있습니다.

앞으로도 AI 분야에서 수학이 중요할까?

지금은 인공지능 분야에서 수학이 중요하다고 해도, 과연 앞으로도 그럴까요? 만약 우리가 모델을 구현할 필요도 없이, 입력 데이터와 해결하고 싶은 문제만 주면 모델이 뚝딱 나올 정도로 인공지능 기술이 발전할지도 모릅니다. 하지만 새로운 인공지능 모델과 알고리즘은 계속 발표될 것이고, 이것들을 이해하고 활용하기 위해서는 결국 수학이 필요합니다. 수학이 어려워 보인다고 포기하는 것보다는, 쉬운 수학부터 차근차근 도전해보는 것이 어떨까요?😊