본문 바로가기
IT

비전공자를 위한 인공지능(AI)의 동작 원리

by goodsell 2024. 2. 18.

ChatGPT? Genimi? CLOVA? LLAMA? 그런 인공지능이 어떻게 돌아가는데?

 2024년에 들어서면서, 우리는 인공지능이 바로 피부로 와닿는 삶을 살고 있습니다.

 

 우리의 인터넷 검색 기록과 최근에 관심있게 본 동영상을 통해  YouTube 는 내가 좋아할만한 동영상을 추천해주죠(알고리즘). 그리고 우리는  ChatGPT 를 통해서 누구나 자연어처리 모델을 접하고, 인공지능과 대화를 해볼 수 있게 되었고, Stable Diffusion 등의 이미지 생성 AI를 통해 누구나 원하는 그림을 만들어볼 수 있게 되었습니다. 아주 간단하게 단어를 입력하는 방식으로요.

 우리는 간단하게 단어를 입력해서 원하는 결과물을 만들어내고 심지어 코딩도 할 수 있게되었습니다. NVIDIA의 CEO인 젠슨 황은 프로그래머가 장래에 유망 받는 직종이 아니게 될 수 있다고까지 하였죠.

 

 인공지능이 이렇게 엄청난 성능을 자랑하고 그 것이 우리의 삶에 영향을 미치게 되는 동안 대부분의 사람들은 인공지능(AI)이 어떻게 동작하는지 조차 모르는 것이 현실입니다. 심지어, AI 관련 회사에 투자를 하는 사람들 대부분조차 간단한 원리조차 모르고 있는 경우가 허다합니다.

 

 이번 포스팅에서는 이러한 대부분의 사람들이 기본적인 수학을 바탕으로 인공지능이 어떻게 동작하는지에 대해서 간단히 설명하고자 합니다.

 

 

 

인간의 뇌를 구현한 방식, 딥러닝(Deep Learning)이란?

AI를 전공해서 조금 더 아는 사람들을 위한 내용
이번 포스팅에서는 MLP를 설명합니다. 가장 기본적인 딥러닝 구조로 MLP를 설명하며 이 외에 CNN, RNN등의 기법들은 설명하지 않습니다. 입출력 데이터의 관계나 모델의 파라미터, 적합여부는 논하지 않습니다. 활성함수는 LeRU를 예로들어 설명하며 활성함수에 대한 얘기는 설명하지 않습니다. 최대한 이해하기 쉬운 방법으로 설명하기 위해 머신러닝에서 사용하는 용어와 포스팅의 내용이 정확히 일치하지 않을 수 있습니다. 너른 양해 부탁드립니다~

 

 

 

AI (딥러닝) 모델의 도식도

 

 위와 같은 그림을 보신 적이 있나요? 바로 딥러닝이라는 AI 모델링 기법의 구조를 눈으로 확인할 수 있게끔 나타낸 그림입니다.  최대한 쉽게 설명해볼텐데 이해에 어려워도 걱정하지 마세요. 어려운게 정상이니까요.

 

 우선 노란색으로 보이는 은닉층은 무시하고 초록색으로 보이는 입력층은 5개, 파란색으로 보이는 출력층은 4개로 되어있습니다. 각 동그라미는 데이터의 가짓수라고 할 수 있습니다. 즉, 5가지의 데이터를 입력해서, 4가지의 데이터를 출력하는거죠. 이해하기 조금은 어려우니 예시를 들어볼까요?

 

 

 버스 도착 예상 시간을 예측하는 AI를 만든다고 생각해봅시다. 필요한 항목은 현재 내 위치, 내가 기다리는 버스, 현재 시간, 버스의 현재 위치, 현재 날씨 정도 등을 가정할 수 있습니다. 내가 필요한 내용은 버스가 빨리 도착하면 언제 도착하는지, 최대로 늦으면 언제 오는지, 버스 내부에 사람들은 얼마나 많이 있는지 그리고 해당 버스가 전기 버스인지 확률 또한 출력해볼 수 있겠습니다. 이렇게 원하는 데이터 가짓수를 입력과 출력으로 지정할 수 있습니다.

 그렇다면 노란색으로 표시한 은닉층은 어떤 역할을 하는걸까요? 은닉층은 입력을 이용해서 출력을 만들어내기 위해 내부적으로 계산하게되는 이라고 표현할 수 있습니다. 우리가 일반적으로 배우는 수학 식과 같은 말입니다.

 

 어떠한 식일까요? 답은 놀랍게도 간단합니다.

 

 어떤가요? 중학교에서 배우는 간단한 식으로 계산됩니다. 은닉층에 보이는 동그라미 하나, 하나가 각기 다른 A 값을 갖고 있으며, 입력되는 X에 대해서 A를 곱해서 뒤로 전달하게 됩니다. 전달 받은 숫자는 모두 더해서 또 다시 한번, 뒤로 전달합니다. 이러한 계산을 그림으로 나타내보면 아래와 같습니다.

 

 

 이러한 그림처럼 계산이 됩니다. 하지만 이는 실제 계산을 모두 표현한게 아니고 계산 중 아주 일부만 표현한 것이기 때문에 곱하고 전달된다는 것만 이해하면 됩니다. 실제로는 2번째 줄에 있는 것 뿐만 아니라, 모든 연결된 선에 대해서 계산하기 때문에 사실은 엄청나게 많은 계산이 필요한 것이죠.

 

 딥러닝 모델은 위 그림처럼, 입력과 은닉층간의 곱과 합을 통해 출력층의 값을 계산하게 됩니다. 

 

 

노란색 은닉층은 어떤 기준으로 저런 숫자가 나왔고 또 저 숫자는 바뀌지 않는 것인가..?

 

 위 그림에서 이러한 의문이 들었을 수 있습니다. 결과적으로 얘기하자면 우리가 인공지능이라고 부르는 실제 모델은 저 노란색 은닉층이 어떤 숫자를 갖고 있느냐는 것입니다. 저 숫자가 달라지면 다른 모델이라는 것이죠.

 

 그렇다면 저 숫자들은 어떻게 정의되고 있는 것일까요? 이를 설명하기 위해서는 수학적인 기법이 필요합니다. 하지만 우리는 최대한 간단하게 알아볼거예요.

 

 AI의 학습이란 말을 들어봤나요? AI는 처음부터 완성형으로 나오는 프로그램이 아닌, 학습을 통해서 계산 방법을 배우게 됩니다. 사람이 학습하는 방법과는 조금 차이가 있는데요, 아래 그림과 같습니다.

 

출처 Freepik작가 rawpixel.com

출처 Freepik

 

 사람은 선생님으로부터 식(Equation)을 배우고, 그 식대로 입력(Input)에 대한 정답(Result)를 찾습니다. 하지만 AI는 선생님으로부터 입력(Input)과 정답(Result)를 받고, 입력과 정답을 보고 그 식을 유추해냅니다. 한 가지의 입력과 답을 알려주어서는 정확한 계산을 하기 어렵기 때문에, 같은 식을 가지는 입력과 정답을 최대한 많이 알려줍니다. 그러면 AI는 전달 받은 입력과 정답을 갖고 이리 저리 숫자를 넣어봐서 알려준 입력과 정답에 해당하는 식을 찾아갑니다.

 

 이때, AI가 찾는 식에 해당하는 부분이 바로 위에서 언급한 은닉층에 해당하며, 은닉층 각 동그라미마다 곱해지는 숫자(계수)를 찾아나가는 것이죠.

 

 아주 간단한 예시를 하나 들어볼까요?

 

 

 이러한 입력과 출력에 해당하는 모델이 있다고 하면, 우리는 은닉층에 해당하는 숫자가 2라는 것을 금방 알아챌 수 있습니다. 하지만 AI는 바로 알 수 없고 직접 계산을 통해 알아내야 합니다. 앞서 설명한 계수들을 곱해봐서 알아내야 하죠.

 

 그러면 어떻게 숫자를 찾아가느냐!

 

 맨 처음으로는 임의(random)의 숫자를 넣습니다. 별 수 있나요.. 모르면 우선 찍어봐야죠.

그리고나서 한번 계산 해봅니다. 입력과 출력의 예시가 있으니 한번 테스트 해보는거죠. 만약 답이 틀렸다면, 틀린 답과 정답의 오차가 발생하게 됩니다. 이렇게 발생한 오차를 가지고 미분을 통해 은닉층의 각 숫자를 업데이트합니다. 이는 역전파라고 하는 알고리즘인데, 식이 상당히 길고 복잡하니 궁금하신 분만 찾아보시면 됩니다. 이 알고리즘에서 AI는 답에 가까워지는 방향으로 은닉층의 계수를 수정합니다.

 

 이러한 계산을 원하는 결과가 나올 때 까지 반복합니다. 주로 미리 전달 받은 모든 입력과 출력에 대해서 정상적인 동작을 하는 것을 목표로 학습하고 이러한 학습이 종료된 뒤에 AI 전문가가 이전과 다른 입력과 출력을 입력해본 뒤에 성능을 평가하게 됩니다.

 

 이러한 방식 때문에 AI는 어떤 수식을 찾기 위한 프로그램이라고 이해할 수 있고, 데이터가 미치는 영향이 상당히 크게 될 수 밖에 없는 구조입니다. 만약 학습 과정에서 정답이 아닌 오류 데이터가 들어가게 되면, 성능이 상당히 감소될 수 있는 것이죠. 

 

이제 알았다.

 

입력과 출력 데이터만 줬을 때, 그 방법을 스스로 찾아가는 인공지능의 특성 때문에 다양한 사례에 응용할 수 있으며 데이터 의존도가 상당히 높다는 것까지 이해하게 되었습니다.

 

 인공지능을 공부하기 위해서는 프로그래밍적인 기법보다 수학적인 사고력과 이해력이 필요합니다. 데이터의 특징에 따라 다양한 기법을 적용할 수 있습니다. 데이터의 특징을 수학적으로 구분하고 구분한 데이터 특징에 따라 적합한 알고리즘 적용이 인공지능 모델의 핵심이라 할 수 있습니다.

 

 

'IT' 카테고리의 다른 글

주식 초보를 위한 AI와 NVIDIA의 관계 알아보기  (0) 2024.02.18