입자와 결
70kg은 뚱뚱할까, 마른 걸까?
AI가 벡터와 행렬로 사람을 바라보는 방법
몸무게가 70kg인 사람이 있다. 이 사람은 뚱뚱할까, 마른 걸까?
사실 70kg이라는 숫자 하나만으로는 알기 어렵다. 키가 150cm인 사람과 190cm인 사람의 70kg은 의미가 전혀 다르기 때문이다. 건강한 체중인지 알아보려면 적어도 키와 체중을 함께 살펴봐야 한다.
이 간단한 이야기가 인공지능이 벡터와 행렬을 사용하는 이유다.
숫자 하나만으로는 사람을 설명하기 어렵다.
체중이 70kg이라면 수학에서는 하나의 값, 즉 스칼라(Scalar)라고 할 수 있다. 70
하지만 여기에 키를 더해 보자.
키 170cm, 체중 70kg 이제 한 사람을 두 개의 숫자로 나타낼 수 있다. [170, 70]
이처럼 하나의 대상을 여러 숫자로 표현한 것을 벡터(Vector)라고 생각하면 쉽다.
현실에서는 키와 체중만으로도 부족하다. 나이, 활동량, 수면시간 등 필요한 정보가 추가될 수 있다.
[170, 70, 35, 8, 7]
숫자가 많아졌지만 원리는 같다. 한 사람을 여러 특징을 가진 숫자 묶음으로 표현한 것이다.
인공지능도 이와 비슷하다. 컴퓨터는 사람처럼 “이 사람은 요즘 활동량이 줄었네”라고 바로 이해하는 것이 아니라, 현실의 특징을 계산할 수 있는 숫자로 표현해야 한다.
사람이 많아지면 행렬이 편리하다. 이번에는 세 사람의 키와 체중을 조사했다고 해보자.
사람 키(cm) 체중(kg)
-- ----: -----
A 170 70
B 160 70
C 190 70
A는 [170, 70, B는 [160, 70], C는 [190, 70]이라는 벡터로 표현할 수 있다.
이 벡터들을 차곡차곡 쌓으면 다음과 같은 형태가 된다.
[170, 70]
[160, 70]
[190, 70]
이처럼 여러 벡터를 일정한 형태로 모아 놓은 숫자 구조를 행렬(Matrix)이라고 한다.
그래서 아주 단순하게 기억해도 좋다.
숫자 하나 → 스칼라
한 사람의 여러 특징 → 벡터
여러 사람의 여러 특징 → 행렬
AI가 수많은 사람이나 사물의 데이터를 한꺼번에 계산하려면 이런 구조가 매우 유용하다.
그런데 사람은 계속 변한다
여기서 문제가 하나 더 생긴다.
사람의 상태는 오늘과 다음 달이 같지 않다.
A의 체중이 1월에는 70kg, 2월에는 68kg, 3월에는 66kg일 수도 있다. 활동량이나 수면시간 역시 계속 변한다.
그러면 데이터에는 새로운 축인 시간이 들어온다.
사람 × 특징 × 시간
처럼 여러 방향으로 데이터가 쌓이기 시작한다.
이렇게 벡터와 행렬보다 더 많은 차원을 가진 숫자 구조를 텐서(Tensor)라고 부른다.
AI에서 텐서라는 말을 자주 듣는 이유도 현실의 데이터가 이렇게 복잡하기 때문이다. 사진의 수많은 픽셀과 색상, 동영상의 시간에 따른 화면 변화 등도 여러 차원의 숫자로 표현할 수 있다.
AI는 세상을 숫자의 관계로 바라본다
다시 처음 질문으로 돌아가 보자.
“70kg은 뚱뚱할까, 마른 걸까?”
70이라는 숫자 하나만으로는 답하기 어렵다.
키를 함께 보고, 필요하다면 나이와 활동량을 보고, 시간이 지나면서 어떻게 변했는지도 살펴봐야 한다.
AI도 마찬가지다.
현실의 어떤 현상을 이해하려면 하나의 숫자만 보는 것이 아니라 여러 특징과 그 관계를 함께 계산해야 한다.
그래서 벡터와 행렬은 단순히 어려운 수학 기호가 아니다.
벡터는 하나의 대상을 여러 특징으로 표현하는 방법이고, 행렬은 많은 대상의 특징을 함께 다루기 좋은 방법이다. 텐서는 여기에 시간이나 다른 차원까지 더해 복잡한 현실을 숫자로 표현할 수 있게 해준다.
우리가 사람을 볼 때 키, 체중, 나이, 생활습관 등을 함께 살펴보듯 AI도 여러 정보를 숫자로 바꾸어 함께 살펴본다.
그렇다면 다음 질문이 생긴다.
수많은 변수 중에서 어떤 것이 결과에 얼마나 영향을 주는지는 어떻게 알 수 있을까?
여기서부터 함수, 기울기, 미분과 편미분의 이야기가 시작된다.
×