이전에 공부한 내용들을 종합하면, 기계가 학습을 위한 기본 이론과 로직, 그리고 그 학습이 일어나는 환경인 신경망까지 준비되었다. 이제 학습할 데이터를 입력층을 통해 입력해야 하는데, 앞서 공부한 회귀분석을 하려면 먼저 데이터를 분석할 수 있는 숫자로 만들어야 한다. 이 때 사용되는 개념이 벡터(Vector), 나아가 텐서(Tensor)의 개념이다.
이들을 이해하기 위해서 먼저 가장 기본이 되는 스칼라(Scalar)부터 살펴보면, 스칼라는 영어의 'Scale'과 같은 말로, 어떤 개체의 변하지 않는 물리량을 의미한다. 온도나 질량과 같은 값은 개체 고유의 값으로 외부의 특별한 조작 없이는 어떠한 환경에서도 일정하게 유지되며, 방향성을 가지지 않는다. 때문에 이들은 1차원적으로 표현되며, 기본적인 사칙연산을 통해 계산할 수 있다.
그러나 방향성을 갖는 물리량, 예를 들어 이동하는 물체의 속도나 어떤 경향성을 갖는 데이터의 변수 등은 1차원적인 수치로만 표현하면 이 방향성을 포함하여 설명할 수 없다. 이 때 사용되는 것이 벡터(Vector)인데, 이 단어는 라틴어인 ' vectis'에서 유래한 말로, 원래 '밀어내다.' 또는 '이동시키다.'라는 의미를 가진다고 한다. 그 말 그대로 주로 화살표와 크기로 표현되는 벡터는 어떤 개체의 물리량의 경향성을 함께 표현한다.
예를 들어, 위의 그림에 원(Circle)이 추가된다면, 그 원은 주홍색을 띌 개연성이 높다. 그림 전체에서 갖는 도형과 색상의 관계성이 이와 같은 방향성을 가지고 있었기 때문이다. 이 데이터를 학습한 프로그램이 도형에 대해 색상을 표현하는 식을 f(x)라고 한다면, f(Circle) = '주홍색', f(Square)= '백색'이 될 것이다. 즉, 도형에 따라 색상에 대한 벡터값이 존재한다. 즉 원이 주황색이 되는 경향성을 가진 환경인데, 이러한 경향성을 특징량(Feature)이라고 한다.
이 특징량을 다루는 것이 인공지능이라고 불리우는 개념의 근본적인 차이이자 본질인데, 인공지능은 신경망을 통해 수많은 데이터 속에서 그 데이터들이 갖는 방향성, 즉 벡터를 파악하고 이전 글에 다룬 수학적/통계적인 방법들을 활용해 이 중 중심이 되는 특징들을 추출한다. 이것을 특징량 추출(Feature Extraction)이라고 하며, 이 특징량 추출을 나름대로 해낸다는 점이 인공지능의 '판단'이라고 부를 수 있는 본질이라 할 수 있다.
그러나 실제의 학습에서 데이터는 위의 (원)=>{주홍색}의 사례처럼 단순하지 않고 훨씬 복잡하며, 이를 학습하는 과정 역시 이렇게 직관적이지 않다. 알고리즘은 전체를 한꺼번에 보고 인지할 수 없으며 순차적으로 데이터를 학습해야 하고, 따라서 인간이라면 전체를 보고 쉽게 판단할 수 있는 경우에도 한번에 판단할 수 없기 때문이다.
기계는 이미지의 너비(width), 높이(height), 색상 채널(red/green/blue/alpha) 등과 같은 여러 개의 변수를 활용해 분석하게 될 것이고 이는 2차원의 벡터로는 설명하기 어려운 훨씬 다차원적인 데이터가 된다. 이 때 필요한 것이 벡터의 다차원화 된 개념인 텐서(Tensor)이다.
텐서는 라틴어는 'tendere'에서 유래한 말이라고 하는데, "끌다", "늘리다", "확장하다" 등의 의미를 가지는 말이라고 한다. 이는 텐서가 공간의 변형, 응력 등을 다루는 데 쓰이는 것과 일맥상통하는데, 공간의 변형이나 응력 등을 다룰 때에 어떤 공간이나 물체에 작용하는 여러 힘을 다루게 되고, 그 복합적인 힘들을 묶어 표현하는 데 텐서가 사용되기 때문이다. 즉, 텐서는 각 개체가 갖는 복합적인 특징성(Vector)을 하나의 숫자 구조체(Matrix)로 표현하는 것인데, 이를 통해 복잡한 이미지나 음성, 언어 등의 다양한 아날로그 데이터가 갖는 여러 속성을 하나의 다차원의 배열로 표현할 수 있다.
'Artificial.Intelligence' 카테고리의 다른 글
[AI-07] 어떻게 학습시킬까? : 레이블과 강화 (3) | 2024.06.16 |
---|---|
[AI-06] 신경망의 활동을 표현하다 : 시그모이드 함수 (0) | 2024.05.28 |
[AI-04] 학습이 일어나는 곳 : 인공신경망 (1) | 2024.05.11 |
[AI-03] 오차를 줄여나가다: 경사하강법 (0) | 2024.05.03 |
[AI-02] '배움'의 목표를 잡다: 비용함수와 제곱오차 (1) | 2024.04.30 |