수달이네 기술 블로그

AI는 왜 숫자를 통해 결과를 결정하는 걸까? 본문

학교공부

AI는 왜 숫자를 통해 결과를 결정하는 걸까?

슬픈 수달이 2025. 3. 12. 12:42

ANN알고리즘을 배우던 중 문득 이런 생각이 들었다.

 

왜 딥러닝 알고리즘들은 모두 숫자가 가까워지는 식으로 표현할까?

 

생각해보면 LLM이나 다른 vision계열의 AI들도 모두 숫자로 모든 것을 표현한다.

 

난 이것이 이해가 가지 않았다. 그래서 알아보기 시작한다.

 

1. 본질적인 문제.

 

딥러닝 알고리즘은 본질적으로 수학적 모델이다. 

 

한마디로 데이터를 입력받고, 패턴을 학습하고, 결과물을 예측하고, 분류하는 모든 과정이

 

숫자로 이루어져 있다는 것이다.

 

가장 큰 이유는 컴퓨터 자체가 0과 1로 이루어진 이진 데이터를 기반으로 작동하기 때문이었다.

 

- 이미지(VISION Model)

CNN딥러닝 알고리즘 개요

 

이미지의 경우도 숫자로 표현할 수 있다.

 

이미지를 픽셀단위로 볼때 흑백이미지를 예시로 들 경우 픽셀 하나가 0(흑)~255(백)의 값으로 나타난다.

 

이것을 모든 픽셀 (40x40 의 크기의 이미지일 경우 1600개의 픽셀) 을 숫자로 변환한다.

 

컬러 또한 마찬가지 인데 컬러는 RGB모두 255의 범위로 나타내어 변환한다.

 

그렇게 모든 픽셀은 숫자의 배열로 나타내진다. 

 

앞으로 배울 CNN(Convoulution Neural Network) 딥러닝 알고리즘은 vision에 특화된 알고리즘인데,

 

이 알고리즘에서도 지역적인 패턴을 찾기위해 필터를 사용하는데 이것은 3x3으로 된 숫자 행렬이다.

 

이것을 이미지와 행렬 합성곱을 하면 지역적인 특성을 나타내는 특징맵이 나타난다.

 

-언어모델(Language Model)

초거대 언어모델 계통수 이미지. (출처=KAIST)

언어모델도 마찬가지로 텍스트를 ai가 바로 이해할 수 없기 때문에 숫자로 바꿔야 한다.

 

토큰화(Tokenization)과정과 임베딩(Embedding)과정으로 나눠진다.

 

Tokenization은 텍스트를 Token의 단위로 쪼개야 한다. 영어로 예시를 들면 I like to learn은 

 

I, like, to, learn으로 세부적으로 나뉜다. 이런 숫자는 고유한 ID로 매핑이 되는 것인데, 

 

여기서 ID는 데이터셋을 만들때 자주 쓰이는 단어들을 모아서 사전을 만드는 것이다.

 

이 사전의 단어에 ID를 부여하는 것이다. 

 

자 다시 돌아와서 이렇게 ID로 매핑하는 방법은 최근의 모델(GPT, BERT)는 서브워드 토큰화로

 

Playing의 경우 play 와 ##ing로 나누어 매핑하기도 한다. 이후 Embedding을 하는데,

 

Embedding은 토큰 ID를 의미있는 숫자 벡터로 바꾼다. 여기서 이 벡터는 단어의 의미를 담는데,

 

이러한 벡터는 [0.1, -0.3, 0.5, ..., (300번째 숫자)].이런식으로 300차원의 벡터로 표현하기도 하는데,

 

각 벡터들에는 특징 값을 가지게 된다. 예를 들어, 첫번째 숫자는 색, 두번째 숫자는 크기 이런식으로,

**실제로는 이렇게 명확히 나뉘지 않고, 복잡하고 미묘한 식으로 정해짐**

 

300차원은 Word2Vec이나 GloVe같은 유명 임베딩 모델에서 자주 쓰인다. 

너무 낮은 차원(2)은 단어의 미묘한 차이를 표현하기 힘듦,

높은차원(1000)은 계산이 복잡해지고 시간이 오래걸림.

 

이런식으로 정해진 벡터는 각 단어의 관계를 숫자패턴으로 유사성을 배운다. 

 

그렇게 되면 I like to learn은 4x300의 크기의 행렬로 바뀐다.

 

이런 식으로 숫자를 사용한다 이후 Transformer구조로 처리하는데 이것또한 후에 배울 것이다.

 

- 소리(Audio Model)

 

소리는 공기가 진동하며 생기는 파형이다. 이 파형을 숫자로 바꿔야 하는데, 이걸 Sampling이라한다.

 

Sampling과정에서 파형을 일정 간격으로 측정하는데 예를들어 1초에 44,100번 측정하면, 

 

1초짜리 소리가 44,100개의 숫자로 표현된다. 이 과정에서 소리의 숫자는 1.0~-1.0의 범위로 정규화 된다.

 

이런식으로 표현하면 녹음환경, 장비에 따른 절대적인 크기에 상관없이 일관적으로 표현할 수 있다.

 

이런 샘플링 과정에서 소리는 [0.1, 0.3....]같은 숫자 시퀀스로 나열된다.

스펙트로그램의 사진 출처:위키피디아

다른 방식으로는 Spectrogram이 있는데 시간에 따른 주파수 분포로 나타낸 것이다.

 

이 방식은 소리를 이미지로 표현하는데 x축 시간, y축 주파수, 색상/밝기 주파수의 세기 로 나타낸다.

 

이런식으로 이미지로 나타낼 경우 위에서 썼던 CNN을 사용하여 이미지 처리처럼 하게 된다.

 

이제 이런 숫자를 패턴으로 분석하는 것이다.


이런 식으로 딥러닝 모델들이 숫자를 사용하는 이유에 대해서 알아보았다.

 

참고:

http://aidev.co.kr/deeplearning/782

 

딥러닝 - 딥러닝 합성곱 신경망(CNN) 개요

http://m.blog.naver.com/msnayana/220776380373 http://bcho.tistory.com/1149       합성곱 신경망(Convolutional Neural Network)은 딥러닝의 가장 대표적인 방법입니다. 주로 이미지 인식에 많이 사용된다고 합니다. 기본

aidev.co.kr

+ Grok3

'학교공부' 카테고리의 다른 글

Generative Model에 대해  (1) 2025.03.24
AI 입문과 ANN의 이해  (1) 2025.03.11