인공지능 기능 구현의 기저에 있는 수학적 분석 원리 정리

Posted on

인공지능은 LLM 챗봇으로 우선 우리에게 널리 쓰이기 시작했구요. 기기구현에 있어 화상 인식과 같은 형태로 쓰여서, 지문을 인식하는 기기나 과일 선별 등에도 이용이 되기도 하죠. 비행기 조종을 블랙박스를 몰라도 운용하듯이 인공지능도 봉인된 내부 작동을 몰라도 쓰는게 가능하지만, 일단은 개발이 어떻게 이루어지는지, 기능 구현의 기저에 있는 수학적 원리가 어떻게 이루어지는지를 알면 한차원 더 높은 이해가 되어 활용 심도도 높아질 것 같습니다.

이름이 조금 생소해서 난해해보이지만 개발자시라면 인공지능 구현에 채택되는 개념을 알게 되었을때 몰랐을때에 비해 시야가 더 넓어지고 이랬군!하는 솜씨가 갖추어지게 되는 것 같애요. 예를 들면 활성 함수가 무엇이고, 어떤 기능을 하는지, 왜 특정 인공지능의 구현에 수학적인 수식이 등장하는지 등등요. 구체적인 예로 ReLU와 같은 활성 함수의 기능을 대략 살펴보다보면 이해의 이점이 있게 되는게 실제 예인데요. 죽은 ReLU가 발생했을때를 심도있게 해설받으면 추론이 가능하게 되는 부분이 있네요. 우선 언어추론을 담당하는 각 신경망의 추론 과정을 수학적으로 번안해서 딥러닝을 구현할때, 신경망이 산출하는 현상을 연산해야 하는데, 이 연산을 알기 쉽게 시각화되게 해서 연구해야 합니다.

ReLU의 예를 들면 ReLU 처리를 미흡하게 하면 인공지능의 환각이 발생하기 쉬워진다는 것과 같은 내부작동의 원리에 이해가 확장되어 좋네요. 특히 고교 과정에서 배운 함수의 수식의 형태에 따른 그래프 형태를 왜 외우게 했는지와 같이 그냥 시켜서 배운 개념이 왜 그렇게 가르쳐졌는지도 알게 되어 속이 후련해지는 것은 덤이구요. 이를 알아두면 기술적인 이해도가 높아져서 좋습니다.

딥러닝과 머신러닝의 알고리즘은 수학적 연산과 최적화 과정을 거쳐서 출력값을 내놓습니다. 현실 세계의 데이터를 그대로 가져와서 쓰는게 아니라, 인식하고 조작하는 기초로 수학적 수식으로 번안해서 처리하는 구조죠. 텍스트의 토큰, 이미지의 픽셀, 음성의 주파수 등은 컴퓨터가 연산할 수 있는 벡터, 행렬, 다차원 텐서 등으로 번안되어야 합니다.

이런 수식 연산이 잘 되고 있는지를 확인하려면 추상화를 거쳐서 그래프로 나타내어 판단하는데요. 신경망이 작동할때, 각 과정마다의 그래프 형태를 보고 예측하는 것이 가능해집니다. 그래프로 나타낸 형태를 조작하면 오류가 발생하는 것을 보정할 수 있고, 이 그래프를 유도해낸 함수들을 코드로 번안하면 이 과정이 실행되는 것이죠

화상 인식의 경우를 보면 고양이 이미지를 입력했을때 개인지, 고양이인지, 토끼인지 분류 모델에 의해 연산합니다. 연산에 필요한 분류 모델은 판별 함수를 정의하구요. 판별 함수를 토대로 입력 데이터가 속한 클래스를 예측합니다. 고양이 이미지를 입력하면 고양이 클래스 2를 산출하는 것과 같은 예측이죠. 확률을 예측하는 확률 모델로 분류 모델을 정의할 수도 있고, 고양이라는 예측이 50%, 개인 예측이 50%이면 사람이 개입할 수도 있습니다. (인공지능의 오류를 줄이기 위해 기술업체 직원이 직접 심사하는 것의 예) 이는 우선 화상 인식으로 인공지능이 예측하는 것도 수학적 수식 처리에 의한 것이고, 사람이 인공지능의 예측이 옳을지 예측하는 것도 수학적 수식 분석에 의한 것이구요. 일단 두 유형의 예측은 연관되지만, 개념적으로는 구별됩니다.

언어에 적용하면 언어 모델에서 문장을 생성할때 문장을 구성하는 단어의 확률 분포를 산출하거나 샘플링해서 문장을 출력하게 되는 구현도 함수와 그래프가 필요한 과정이네요. LLM 챗봇이 확률에 기반해서 언어를 산출한다고 할때, 각각의 신경 전달 과정에서 각 노드가 내뱉는 연산값을 총합해서 특정 결과값을 내뱉고, 이를 의미가 있게 이어주면 챗봇의 응답이 됩니다.

가장 간단한 확률 예측은 동전의 앞면과 뒷면이 나올 확률분포인데요. 현실 세계의 데이터를 이런 분류 모델로 정의할 수 있는 경우가 있다면, 수학적 정리 중에서 흡사한 연산이 가능한 경우가 있을 것입니다. 이를 잘 판단해서 채택해볼 수 있는 것을 특정해서 베르누이 분포로 간주한다면, 이를 토대로 확률 모델로 분류했을때 이진 분류 문제를 구현하는게 됩니다. 신경망 모델에서 가 아니면 부로 처리해서 각 노드를 탐색할때 이런 공식들이 적용된 결과로 간주할 수 있죠.

이런 작동을 그래프로 나타내어 분석하면 값의 범위를 살피고 필터링등을 해서 원하는 결과에 가깝게 나오도록 조정이 됩니다. 오류가 왜 많이 나는지, 오류 정정할때도 필요한게 함수를 시각화해서 분석하는 기법입니다.

오류 정정뿐아니라, GPU로 실행하는 속도를 높이는 경우에도 고차원 데이터의 기하학적 표현을 해서 살펴보는게 아주 필수적인 처리 방법이 되죠. 2차원 평면에서 그려지기도 하고, 입체로 3차원으로 보여지기도 합니다.

실무로 오면 딥러닝 논문과 수학적 기저가 있다고 해서 즉시 코드로 되는 것은 아니지만, 일단 알아두면 좋은 요령 정도는 알아두면 좋은 것 같습니다.

우선 저는 11학년 학생들이 배우는 함수의 고교과정 교과서 위주의 개념 정도는 이해한 상태였고, 공식이 수학적으로 코드로 번안되는 요령 정도는 알고 있었는데, 이정도만 알고 있어도 딥러닝에서 보여주는 함수 그래프 분석이 이해가 되었네요. 여기에 신경과학에서 연구한 뉴런의 신경망 구조를 알고 있었는데, 계산 진행은 그냥 MATLAB이나 매쓰매티카에 맞기고 해도, 개념이해는 가능했네요.

우선 인공지능에 쓰이는 수학적 기호는

• 말로 표현해서 활용
• 수식의 물리적 의미와 로직을 그냥 코드화하지 않고 최적화해서 입력하는 기법 체현
• 변환하는 방법을 잘 가져간 것이 딥러닝에서 노벨상을 받은 연구의 기저이기도 함

이 과정을 심화해서 이해하면 좋은 것 같애요.

전 인공지능 전문가가 아니라서 구현은 안해봤는데 이 글에서 날림으로나마 전달한 의미가 이해되신다면 수학적 개념이 동원된 인공지능 책에 나온 의미가 이해가 되실 것입니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다