우리 삶을 혁신적으로 바꾸고 있는 인공지능(Artificial Intelligence, AI). AI를 알고, 이해하고 또 활용하고 싶은 이들을 위해 <AAA - All Around AI>에서 AI 기술에 대한 모든 것을 알려드립니다. 2화부터는 한국인공지능학회와 함께 더욱 깊이 있고 기술적인 인사이트를 제공하고자 합니다. 이번 회차에서는 AI 알고리즘이란 무엇인지, AI 알고리즘은 어떤 과정을 거쳐 작동하는지 기본 개념을 살펴봅니다.
인공지능 알고리즘이란 무엇인가?
인공지능이란 특정 목적을 위해 설계된 컴퓨터 알고리즘*으로, 주어진 입력에 기반해 자동으로 과업을 처리한다. 이는 개발자가 직접 컴퓨터에 알고리즘을 입력하는 기존의 방법과 달리, 데이터를 기반으로 컴퓨터가 스스로 알고리즘을 학습한다는 점에서 큰 차이가 있다. 그래서 인공지능 알고리즘을 ‘알고리즘을 위한 알고리즘’이라고도 부른다.
* 알고리즘(Algorithm): 컴퓨터를 활용한 문제 해결 과정에서, 어떤 문제를 해결하기 위해 정의된 절차, 방법, 명령어 등의 집합.
학습 알고리즘에서 ‘학습(Learning)’은 주어진 데이터를 분석해 특정 작업을 수행할 수 있는 규칙이나 패턴을 발견하는 과정을 뜻한다. 학습 알고리즘의 역할은 데이터로부터 주어진 과업을 수행할 알고리즘을 찾아내는 것이다. 예측 알고리즘에서 ‘예측(Prediction)’은 학습된 모형*을 사용하여 새로운 데이터에 대한 결과를 추론하는 과정을 말한다. 즉, 예측 알고리즘은 학습 알고리즘을 통해 학습되며, 특정 과업을 수행하는 역할을 한다. 이 두 알고리즘의 역할과 작동 원리를 이해하는 것은 인공지능의 기본 원리를 이해하는 데 매우 중요하다.
* 모형(Model): 학습된 규칙이나 패턴을 표현하는 수학적 또는 계산적인 구조
▲ 그림 1. 인공지능 시스템 구성도
주어진 숫자 데이터를 내림차순으로 정렬하는 알고리즘을 생각해보자. 기존 방식에서는 개발자가 수학적 지식을 바탕으로 정렬 알고리즘을 설계하고, 이를 컴퓨터 프로그램으로 구현한다. 이를 인공지능의 관점에서 ‘학습’이라 할 수 있다. 이후, 개발자가 만든 정렬 알고리즘에 숫자 데이터를 입력하면, 큰 숫자부터 작은 숫자 순으로 정렬된 새로운 데이터가 출력된다. 이것은 ‘예측’에 해당하며, 개발자가 구현한 것은 예측 알고리즘으로 이해할 수 있다.
위에서 살펴본 정렬 알고리즘 개발 프로세스에서, 컴퓨터가 ‘스스로’ 개발자 역할을 수행하도록 하는 것이 인공지능의 핵심이다. 그럼 컴퓨터는 어떻게 수학적 지식 없이 정렬 알고리즘을 만들 수 있을까? 여기에 필요한 것이 학습 데이터와 학습 알고리즘이다. 정렬되기 전과 후의 다양한 데이터를 컴퓨터에 입력하면, 인공지능 학습 알고리즘이 이 데이터들을 분석하고 스스로 정렬 알고리즘을 찾아낸다. [그림 2]는 기존의 정렬 알고리즘과 인공지능이 학습한 정렬 알고리즘을 비교해서 보여준다.
▲ 그림 2. 기존 알고리즘과 인공지능 알고리즘의 비교
인공지능의 놀라운 점은 알고리즘을 스스로 찾아낸다는 것이다. 예를 들어, 과거에는 언어 번역 알고리즘을 만들기 위해 컴퓨터 전문가와 언어학자들이 다양한 규칙을 개발하고 적용해 왔다. 하지만 인간의 논리로는 이해하기 어려운 언어의 복잡성 때문에 성능은 그리 좋지 않았다. 그러나 수십 만 개의 문서에서 스스로 문법을 찾아내는 인공지능 학습 알고리즘의 등장으로 자동 언어 번역의 성능은 인간과 유사한 수준까지 도달했다. 최근 화제를 모았던 챗GPT도 이렇게 학습된 언어이해 알고리즘이다.
인공지능 작동 과정의 이해
인공지능 프로세스는 주어진 학습 데이터에서 학습 알고리즘을 이용해 예측 알고리즘을 만드는 일련의 과정으로 이해할 수 있다([그림 1] 참조). 이를 다음과 같이 간략하게 정리할 수 있다.
1) 문제 정의
인공지능은 인간이 수행하기 힘든 특정 업무를 학습 데이터 기반으로 컴퓨터를 학습 시켜 자동화하는 것이 목적이다. 따라서 인공지능 프로세스는 문제를 정확히 정의하는 것으로 시작한다. 이 단계는 매우 중요하다. 문제 정의가 제대로 되지 않는다면, 이후의 과정이 잘 진행되더라도 원하는 결과를 얻지 못할 수 있기 때문이다.
예를 들어, 주차장에 자동화 시스템을 구축하기 위해 번호판을 인식하는 인공지능 알고리즘을 개발한다고 가정해 보자. 번호판은 숫자와 문자로 이루어져 있기 때문에, 이를 수집하고 인식하는 알고리즘으로 시스템을 구축할 수 있다. 하지만 이 알고리즘은 번호판 이외의 이미지에서도 숫자와 문자를 인식할 수 있어, 불필요한 정보가 입력될 수 있다. 때문에 문제 정의는 ‘숫자와 문자의 인식’이 아니라 ‘자동차 번호판의 숫자와 문자의 인식’이 되어야 한다. 따라서 숫자와 문자 뿐만 아니라 번호판의 모양을 인식하는 예측 모형도 필요하다.
2) 데이터 수집
▲ 그림 3. 학습을 위한 데이터 수집 과정
문제가 잘 정의되었다면, 컴퓨터가 학습할 수 있게 데이터를 수집해야 한다. 데이터는 문제 정의에 따라 계획적으로 수집돼야 한다. 예를 들어, 이미지에서 남성과 여성을 구분하는 인공지능 모형을 학습시키기 위해서는 라벨(남성, 여성)*이 분류된 이미지를 수집해야 한다. 데이터 수집에서 중요한 점은 데이터가 모집단 전체를 대표할 수 있어야 한다는 것이다. 만약 청소년 등 특정 연령층의 이미지만 학습한다면, 다른 연령층에서는 인식률이 떨어질 수 있다. 따라서 컴퓨터가 학습할 수 있는 양질의 대규모 데이터를 구축하는 것이 인공지능 알고리즘 성패의 핵심이 된다.
* 라벨(Label): 학습 데이터에서 원하는 출력 또는 목표 값을 나타내는 정보
3) 학습 알고리즘
다음은 수집한 데이터를 이용하여 학습시키는 과정이다. 이때 학습 알고리즘은 목적과 방식에 따라 다양하게 선택할 수 있다. 예를 들어, 인물 이미지의 성별을 분류하는 것과 같이 주어진 상황에서 자동으로 판단해야 하는 경우는 분류 모형에 특화된 학습 알고리즘을 사용한다. 반면에 새로운 사진이나 문서를 생성하는 경우는 챗GPT와 같은 생성형 인공지능 알고리즘을 사용한다. 또한, 게임이나 바둑과 같이 상호작용이 필요한 상황에서는 강화 학습 알고리즘*을 사용한다.
* 강화 학습 알고리즘: 에이전트가 환경과 상호작용하며, 행동의 결과로 얻은 보상을 통해 최적의 결정 방법을 배우는 알고리즘
기본적으로 학습 알고리즘은 학습 데이터를 입력으로 받아서 예측 알고리즘을 출력으로 제공한다. 따라서 학습 알고리즘이 어떤 방식으로 학습 데이터를 처리하여 예측 알고리즘으로 바꾸는지 이해하는 것이 중요하다. 이를 위해서는 먼저 예측 알고리즘이 무엇인지 알아야 한다.
▲ 그림 4. 인물 이미지의 성별 예측 알고리즘 출력 과정
예측 알고리즘은 새로운 정보를 입력으로 받아 최적의 의사결정을 출력한다. 예를 들어, 인물 이미지의 성별을 분류하는 인공지능에서는 이미지를 입력으로 받아 성별을 출력으로 제공한다. 이를 위해서는 이미지와 성별 라벨이 함께 있는 학습 데이터가 필요하며, 각 이미지는 픽셀의 색깔과 명도를 수치화한 데이터로 변환된다. 학습 알고리즘은 이 숫자들의 나열, 즉 벡터를 입력으로 받아 가장 정확하게 성별을 출력할 수 있는 함수를 찾는 것이다.
즉, 예측 알고리즘은 입력 벡터와 출력 데이터 사이의 관계를 최대한 정확히 매칭하는 수학적 함수로 이해할 수 있으며, 학습 알고리즘은 이러한 함수를 찾아내는 과정이라 할 수 있다.
(i) 학습 모형의 선택
모든 함수 중에서 예측을 가장 잘하는 함수를 찾는 것은 거의 불가능하다. 이유는 가능한 함수가 너무 많기 때문이다. 이 문제를 해결하는 방법이 바로 모형을 사용하는 것이다. 인공지능 모형이란 입력 변수(데이터)로부터 출력 변수(결과)를 예측하는 함수 중에 특정한 ‘파라미터(Parameter)’로 표현되는 함수를 가리킨다. 여기서 파라미터란 함수의 특정한 성질을 나타내는 변수로, 모형이 어떻게 작동할지를 결정하는 유한개의 숫자다.
▲ 그림 5. 선형 회귀 모델의 데이터 특성을 보여주는 1차 함수 그래프
가장 간단한 인공지능 모형은 데이터의 특성과 결과 사이에 선형 관계를 보이는 ‘선형 모형’이다. 그 중 선형 회귀* 모형의 함수 y=ax+b를 예로 들자. 파라미터는 a와 b로, 이 값을 통해 데이터의 선형 관계를 이해할 수 있으며, 모형이 데이터를 어떻게 처리할지 알 수 있다.
* 선형 회귀(Linear Regression): 선형 모형 중 연속적인 값을 예측하는 모형으로, 주어진 데이터에 대해 최소제곱법을 사용하여 에러의 제곱 합을 최소화하는 방식으로 파라미터를 학습한다.
학습 모형의 선택은 문제의 종류(분류, 회귀 등) 및 데이터의 특성, 사용 가능한 컴퓨팅 자원 등을 고려해서 이루어진다. 선형 모형은 일반적으로 정확도가 낮은 편이다. 따라서 보다 복잡한 문제를 해결하기 위해 다양한 함수를 사용하는 모형들이 개발되었다. 그중 가장 많이 사용되는 모형이 바로 심층신경망, 딥러닝이다. 딥러닝은 여러 층의 선형과 비선형 변환을 거쳐 출력을 내는 함수를 통칭한다.
▲ 그림 6. 심층신경망의 구조
딥러닝은 문제의 종류와 난이도 등에 따라 다양한 형태로 발전해왔다. 예를 들어, 이미지 분류나 생성과 같은 문제에는 이미지 데이터에 특화된 딥러닝 모형인 CNN*이 사용된다. CNN은 이미지에서 불필요한 정보(배경 등)를 제거하고 중요한 부분에 집중함으로써 성능을 높인 것이다.
문서 데이터에서는 단어 간의 순서를 고려하여 모형화한 RNN*이 주로 사용됐다. 최근에는 단어 간의 연관성을 자동으로 탐지해 각 단어를 벡터로 변환하는 트랜스포머(Transformer) 모형이 각광받고 있다. 챗GPT와 같은 대형 언어 모델도 트랜스포머를 기반으로 개발되었다.
* CNN(Convolutional Neural Network, 합성곱 신경망): 이미지와 같은 고차원 데이터에서 유용한 특징을 자동으로 감지하고 학습할 수 있는 딥러닝 모델로 합성곱 계층을 사용하여 입력 데이터에서 중요한 특징을 추출하여 이미지 분류, 객체 인식 등의 작업을 수행한다.
* RNN(Recurrent Neural Network, 순환 신경망): 이전에 처리한 정보를 기억하고 이를 바탕으로 현재의 입력과 결합하여 출력을 생성하는 딥러닝 모델로, 자연어 처리, 음성 인식, 시계열 예측 등 시간적 연속성이 중요한 데이터를 다루는 작업에 주로 사용된다.
(ii) 파라미터의 학습
학습 모형을 선택했다면, 다음은 모형에서 예측을 가장 잘하는 파라미터를 찾아야 한다. 이를 ‘인공지능의 학습’이라고 한다. 파라미터는 데이터의 학습을 통해 찾을 수 있는 내부 변수로, 모형의 성능에 직접적인 영향을 미친다. 따라서 인공지능의 학습은 데이터로부터 정보를 추출하고 이를 이용해 모형의 파라미터를 최적화하는 과정이라 할 수 있으며, 이를 통해 모형은 주어진 데이터에 최적화되어 더 정확하게 예측하거나 분류할 수 있게 된다.
파라미터의 학습을 위해서는 먼저 목적함수를 정의해야 한다. 목적함수는 모형의 성능을 정량적으로 평가하며, 모형의 학습 방향을 제시하는 중요한 역할을 한다. 목적함수는 모형의 예측값과 실제 데이터 사이의 오차를 계산하는데, 이 오차를 최소화하는 방향으로 모형의 파라미터를 조정하여 성능을 높이는 것이다.
목적함수는 주어진 문제와 선택된 모형에 따라 달라진다. 예를 들어, 회귀 문제에서는 예측값과 실제값의 차이를 제곱하여 평균을 내는 방식으로 작동하는 평균 제곱 오차(Mean Squared Error, MSE)가 자주 사용되고, 분류 문제에서는 예측이 실제 레이블의 분포와 얼마나 잘 일치하는지를 측정하는 교차 엔트로피 손실(Cross-Entropy Loss)이 흔히 사용된다. 특히, 다양한 학습 모형 중 딥러닝 모형은 비선형 함수이기 때문에 최적화가 매우 어렵고, 이 문제를 해결하기 위한 다양한 최적화 알고리즘이 연구·개발되고 있다. 파라미터 학습에 관한 내용은 다음 챕터에서 더욱 자세하게 다루도록 하겠다.
(iii) 예측성능 측정
인공지능 학습의 어려운 점은, 주어진 학습 데이터에서 예측을 잘하는 모형을 찾는 것이 아니라, 미래의 데이터(이하 예측 데이터, Test Data)에서 예측을 잘하는 모형을 찾는 것이 최종 목표라는 점이다. 보통 학습 데이터에서 예측을 잘하는 모형이 예측 데이터에서도 잘 작동한다. 그러나 너무 복잡한 모형을 사용하거나, 학습 데이터가 잘못 구성된 경우에는 학습 데이터에서 예측을 잘하는 모형이 예측 데이터에서는 나쁜 성능을 보일 수 있다. 이 문제를 해결하는 것이 인공지능 학습 방법론의 중요한 연구주제이다.
예측 모형이 제대로 학습되었는지 확인하기 위해서는 예측 데이터가 필요한데, 일반적으로 학습 당시에는 예측 데이터가 존재하지 않는다. 이 문제를 해결하기 위해서는 주어진 데이터를 임의로 학습 데이터와 예측 데이터로 나누는 방법이 자주 쓰인다. 학습 데이터로 모형을 학습시킨 후, 예측 데이터를 사용하여 모형의 성능을 확인하는 것이다.
이러한 과정을 통해 성능이 원하는 만큼 나온다면 학습된 예측 모형을 사용할 수 있다. 그러나 성능이 기준에 미치지 못한다면 그 이유를 확인해야 한다. 알고리즘의 선택이 잘못되었을 수 있고, 데이터에도 문제가 있을 수 있다. 나아가 주식 가격 예측같이, 문제 자체가 예측이 어려운 문제일 수 있다. 따라서 원점으로 되돌아가 문제의 정의, 수집된 데이터나 알고리즘의 선택을 다시 고려해야 한다.
4) 예측 및 모니터링
예측 성능 측정 단계에서 원하는 결과가 나온다면 모형을 실제 업무에 적용한다. 즉, 문제를 해결하기 위해 학습 알고리즘이 만들어 낸 예측 모형을 사용하는 것이다. 이때, 새로운 입력 정보를 예측 모형에 넣어서 출력값을 얻는 일련의 과정을 예측 알고리즘이라고 한다. 이미지 분류에서는 라벨이 알려지지 않은 새로운 이미지를 넣으면 예측 모형은 출력값으로 라벨을 제공한다.
이때 원하는 성능이 꾸준히 나오는지에 대한 모니터링은 필수다. 데이터는 시간에 따라 분포가 바뀔 수 있기 때문에 모형이 학습될 때 고려하지 않던 새로운 정보가 생길 수 있다. 따라서 모형을 꾸준히 모니터링하고, 필요한 경우 새로운 데이터를 추가하여 재학습을 고려해야 한다. 모든 학습 프로세스를 다시 수행하지 않고, 현재의 예측 모형과 새로운 데이터를 결합해 꾸준히 학습하는 방법도 개발되고 있다. 관련 분야로는 연속적 학습(Continual Learning)*, 전이 학습(Transfer Learning)*, 도메인 적응(Domain Adaptation)* 등이 있다.
* 연속적 학습(Continual Learning): 지속해서 변하는 환경에서 이전 데이터의 재학습 없이 새로운 데이터를 학습하는 기법. 로봇공학, 자연어 처리 등의 분야에서 중요하게 다루어진다.
* 전이 학습(Transfer Learning): 한 작업에서 학습된 지식을 다른 작업에 적용하여 학습 시간을 단축하고 성능을 높이는 학습 기법. 충분한 훈련 데이터를 확보하기 어려운 작업에 유용하게 쓰인다.
* 도메인 적응(Domain Adaptation): 특정 도메인에서 학습된 모형을 다른 도메인(타깃 도메인)에서도 잘 작동하도록 조정하는 학습 기법. 의료 이미징, 음성 인식 등 데이터 환경이 끊임없이 변하는 환경에 유용하게 쓰인다.
※ 본 칼럼은 반도체/ICT에 관한 인사이트를 제공하는 외부 전문가 칼럼으로, SK하이닉스의 공식 입장과는 다를 수 있습니다.