SK하이닉스 뉴스룸 기사

[All Around AI 3편] 머신러닝의 이해

Written by 한국인공지능학회 KAIST 윤철희 교수 | 2024. 6. 25 오전 12:00:00

우리 삶을 혁신적으로 바꾸고 있는 인공지능(Artificial Intelligence, AI). AI를 알고, 이해하고 또 활용하고 싶은 이들을 위해 <AAA - All Around AI>에서 AI 기술에 대한 모든 것을 알려드립니다. 앞선 회차에서 인공지능의 발전 역사와 동작 원리를 알아보았습니다. 이번에는 인공지능의 가장 큰 줄기를 이루고 있는 머신 러닝(Machine Learning, 기계 학습)에 대해 조금 더 자세히 살펴봅니다.

머신 러닝의 개념

[All Around AI 1편]에서 언급했듯 머신 러닝은 데이터의 패턴을 스스로 학습해 예측을 수행하는 알고리즘이다. 이 기술은 데이터의 폭발적인 증가와 함께 대표적인 인공지능 방법론으로 자리매김했다. 기존의 전통적인 인공지능은 인간이 규칙과 논리를 명확히 프로그래밍해야 했다. 이는 간단한 보드게임 같이 명확한 규칙이 있는 문제에는 효과적이었지만, 복잡한 데이터나 규칙을 다루는 경우 한계를 보였다. 예를 들어, 사진에서 고양이를 구별할 수 있는 인공지능을 만든다고 생각해 보자. 사진 속 수많은 픽셀에서 RGB 값이나 고양이의 패턴을 어떻게 처리할지, 어떤 방식으로 규칙을 설정할지 고민해 보면 이를 프로그래밍하는 일이 얼마나 어려운지를 실감하게 된다.

머신 러닝은 데이터 안에 숨겨진 복잡한 구조나 패턴을 발견하고, 이를 스스로 학습해 새로운 데이터의 예측을 수행하는 방식이다. 예를 들어 고양이의 유무를 판단하는 인공지능을 머신 러닝으로 만드는 경우, 다양한 사진(데이터)을 모아 알고리즘으로 학습시켜서, 고양이를 판단하는 방법을 스스로 파악하게 한다.

머신 러닝을 구현하는 과정은 크게 데이터 수집, 학습 모델 선택, 목적 함수 정의, 파라미터 학습 단계로 나눌 수 있다. 데이터 수집 단계에서는 학습에 필요한 데이터를 모으고, 학습 모델 선택 단계에서는 수집한 데이터를 가장 잘 표현할 수 있는 학습 모델을 선택한다. 목적 함수 정의 단계에서는 모델의 성능을 측정하기 위한 기준을 설정한다. 주로 모델의 예측이 실제 데이터와 얼마나 잘 일치하는지를 나타내는 손실 함수*로 표현된다. 마지막으로 파라미터 학습 단계에서는 파라미터를 조정하며 손실 함수를 최소화하는 방향으로 학습을 진행한다. [All Around AI 2편]에서 자세히 보기

* 손실 함수(Loss Function): 모델의 예측이 실제 데이터와 얼마나 차이 나는지를 측정하는 지표. 모델 학습을 통해 최소화되어야 할 핵심 값으로, 예측 정확도를 향상시키는 데 중요한 역할을 한다.

머신 러닝 알고리즘의 종류와 특징

머신 러닝 알고리즘은 실세계에 내재한 확률 분포*에서 데이터를 추출하고, 이 데이터를 기반으로 모델을 훈련해 문제를 해결하는 것이 핵심이다. 학습하려는 문제의 유형에 따라 크게 세 가지로 나뉘며, 각각 고유한 특성과 응용 분야를 가지고 있다.

* 확률 분포(Probability Distribution): 데이터를 수학적으로 설명하는 모델로 이를 통해 데이터의 패턴과 구조를 파악한다.
 

1) 지도 학습(Supervised Learning)

지도 학습은 입력 데이터와 함께 ‘정답(라벨, label)’을 학습하는 방식이다. 모델은 이 데이터-라벨을 쌍으로 학습하여 새로운 데이터에 대한 정답을 예측한다. 예를 들어 사진 속 인물의 성별을 예측하는 인공지능 개발은 지도 학습의 예시로 볼 수 있다. 이때, 사진은 입력 데이터로 성별은 ‘정답’으로 제공된다. 이를 통해 모델은 남성과 여성을 구별하는 패턴을 학습하고, 추후 새로운 사진의 성별을 예측한다. 지도 학습은 라벨의 속성에 따라 다시 두 가지 유형으로 나뉜다.

• 분류(Classification): 라벨이 이산적(Discrete)으로 주어지는 경우다. 예를 들어 사진 속 강아지의 유무를 판단하는 문제, 손으로 쓴 글씨를 보고 알파벳을 구분하는 문제 등이 여기에 해당한다. 이 경우 데이터는 특정 카테고리에 속하며, 소속 카테고리가 라벨로 지정된다.

• 회귀(Regression): 라벨이 연속적인 숫자로 주어지는 경우다. 예를 들어 집의 평수와 위치 등을 바탕으로 집값을 예측하는 문제, 기상 데이터로부터 다음날의 기온을 예측하는 문제 등 정답이 될 숫자를 가능한 정확하게 예측해야 하는 상황에 해당한다.

2) 비지도 학습(Unsupervised Learning)

명칭에서 알 수 있듯이, 비지도 학습은 지도 학습과 달리 명시적인 ‘지도(Supervision)’, 즉 라벨이 없이 데이터만을 학습한다. 이 방법은 데이터가 나타내는 확률 분포의 특성을 파악해 학습하는 것을 목표로 한다. 비지도 학습의 주요 방법은 다음과 같다.

• 군집화(Clustering): 비슷한 특성을 가진 데이터를 그룹으로 묶어 확률 분포에 숨은 패턴을 파악하는 데 목적이 있다. 실제 반도체 공정에서 불량으로 판정된 웨이퍼 사진을 모아 군집화 알고리즘을 적용한 결과, 불량 원인에 따라 몇 가지 유형으로 분류할 수 있었다.

• 차원 축소(Dimensionality Reduction): 고차원 데이터를 저차원으로 축소해 복잡한 데이터에서 중요한 정보만을 남기고 단순화하는 기술이다. 이는 데이터 분석과 시각화에 도움이 된다. 대표적으로 주성분 분석*이 있다.

* 주성분 분석(Principal Component Analysis): 고차원 데이터를 저차원으로 축소하는 통계적 기법. 데이터의 차원을 축소함으로써, 계산 효율성을 높이고, 불필요한 정보(노이즈 등)를 제거하여 데이터의 핵심 특성을 더욱 명확하게 이해할 수 있게 한다.

최근 주목 받는 생성형 AI 기술도 비지도 학습의 범주에 포함할 수 있다. 이는 데이터로부터 확률 분포를 학습하고, 이를 통해 새로운 데이터를 생성하는 것으로 볼 수 있기 때문이다. 예를 들어 챗GPT는 ‘자연어 확률 분포’를 학습하고, 이를 통해 주어진 텍스트의 다음 단어를 예측한다고 볼 수 있다. 그러나 생성형 AI를 훈련하기 위해 지도 학습 기법이 사용되기도 하므로 완전한 비지도 학습으로 볼 수 있는지는 이견의 여지가 있다.

3) 강화 학습(Reinforcement Learning)

모델이 주변 환경과 상호작용을 하며 최대한 많은 ‘보상’을 받도록 학습하는 것이 목표다. 특히 문제가 순차적 의사결정이 필요한 곳에서 효과적이다. 예컨대 로봇이 주어진 환경에서 장애물을 피하며 목적지까지 이동하는 최적의 경로를 찾는 경우와 같이 로보틱스 분야나 자율 주행, 게임 AI 등에 많이 활용된다. 최근에는 챗GPT 등의 대형 언어 모델을 인간의 선호와 일치시키기 위해 인간 피드백을 통한 강화 학습*도 많은 주목을 받고 있다.

* 인간 피드백을 통한 강화 학습(Reinforcement Learning With Human Feedback): 인간의 피드백을 기반으로 보상받으며 학습하는 방법. 모델이 생성한 결과에 대한 인간의 반응이나 평가를 통해 보상을 조정하고, 이를 통해 모델은 인간에게 맞춰진 반응을 할 수 있게 학습한다.
▲ 인공지능의 벽돌 깨기 게임 영상. 대표적인 강화 학습 사례로 인공지능에게 ‘벽돌을 많이 깨면 더 높은 점수를 올릴 수 있다’는 규칙을 주자 인공지능 스스로 벽돌을 더 많이 깰 수 있는 방법을 터득한다.

머신 러닝의 성능 평가

머신 러닝의 궁극적인 목표는 실제 환경에서 처음 보는 데이터에도 우수한 성능을 보이게 하는 것이다. 즉, 모델이 일반화(Generalization) 능력을 갖추는 것이 중요하다. 이를 위해서는 모델의 성능을 정확하게 평가하고 검증하는 것이 필수다. 그렇다면 모델의 성능은 어떻게 평가해야 할까?

1) 성능 지표 선택

머신 러닝의 성능을 평가하는 데는 문제의 유형에 따라 다양한 지표를 사용한다. 분류 문제의 경우 일반적으로 정확도(Accuracy), 정밀도(Precision), 재현율(Recall)을 성능 지표로 활용한다.

먼저, 정확도는 전체 예측 중 올바르게 예측한 비율을 나타낸다. 가령 의료 진단 테스트에서 100번의 테스트 중 95번을 정확하게 진단했다면 정확도는 95%이다. 그러나 이를 위해서는 균형 잡힌 데이터셋이 필요하다. 만약 100개의 샘플 중 95개가 음성이고 5개만 양성이라고 하자. 이 경우 모델이 모든 샘플을 음성으로 예측해도 정확도는 95%가 된다. 이는 높은 정확도처럼 보이지만, 실제로 모델은 양성 샘플을 전혀 예측하지 못했을 수 있다.

정밀도는 ‘모델이 양성으로 예측한 것’ 중 ‘실제로 양성인 것’의 비율을, 재현율은 ‘실제 양성’ 중 ‘모델이 양성으로 예측한’ 비율이다. 이들은 서로 트레이드 오프 관계, 즉 하나를 높이면 다른 하나는 낮아질 수 있어, 둘 사이의 균형과 목적을 고려해 모델을 최적화한다. 이를 테면, 의료 검사에서는 재현율을 높이는 것이, 이메일 스팸 필터에서는 정밀도를 더 중요하게 생각하는 식이다. 이 문제를 해결하기 위해 정밀도와 재현율의 조화를 평가하는 F1 스코어*를 사용하기도 한다.

* F1 스코어(F1-Score): 정밀도와 재현율의 조화평균으로 데이터 분류 클래스의 불균형이 심할 때 사용한다. 0과 1 사이의 값이며 1에 가까울수록 분류 성능이 좋고 할 수 있다.

회귀 문제의 경우는 평균 제곱 오차*, 제곱근 평균 제곱 오차*, 평균 절대 오차* 등을 사용해서 모델의 성능을 평가한다.

* 평균 제곱 오차(MSE): 예측값과 실제값의 차이를 제곱한 후 평균을 낸 값
* 제곱근 평균 제곱 오차(RMSE): MSE의 제곱근으로, 오차의 크기를 실제 값의 단위와 동일하게 표현
* 평균 절대 오차(MAE): 예측값과 실제값 차이의 절댓값을 평균한 값

2) 성능 평가 방법

머신 러닝 모델의 평가는 주로 데이터를 훈련 세트와 테스트 세트로 나누어 진행한다. 이 과정을 통해 모델이 새로운 데이터를 얼마나 잘 일반화할 수 있는지 확인할 수 있다.

• 훈련-테스트 분할법(Train-Test Split): 가장 간단한 방법의 하나는 수집된 데이터를 훈련 세트와 테스트 세트로 나누는 방법이다. 훈련 세트로 모델을 훈련한 후, 테스트 세트로 모델의 예측 성능을 평가해 일반화 성능을 가늠한다. 일반적으로 전체 데이터 중 약 70~80%를 훈련 세트에 활용한다.

• 교차 검증(Cross Validation): 교차 검증은 데이터를 K개의 세트로 나눠서, K개 중 한 세트를 제외한 나머지로 모델을 훈련한 뒤, 제외한 세트로 성능을 평가한다. 이 과정을 K번 반복해 평균 성능을 구한다. 교차 검증법은 전통적인 기계 학습에서 많이 사용하던 방법이지만, 시간이 많이 소요되어 심층 학습에서는 훈련-테스트 분할법을 더 선호한다.

3) 성능 평가 및 해석

위 평가 방법을 통해 얻어진 결과는 모델의 성능 향상을 위한 중요한 피드백을 제공하며, 문제가 있을 때는 주로 두 가지 현상이 나타난다.

 

• 과소적합(Underfitting): 모델이 너무 단순해서 데이터의 기본적인 패턴을 학습하지 못하는 경우로 훈련 및 테스트 세트 모두에서 성능이 미달일 경우 과소적합이 발생했다고 볼 수 있다. 가령 회귀 문제에서 실제 데이터가 2차 함수인데 예측 모델을 1차 함수로 설정했다면, 데이터의 패턴을 포착하기 위한 표현력(Expressivity)이 부족해서 과소적합으로 이어질 수 있다.

• 과대적합(Overfitting): 모델이 너무 복잡해서 기본적인 패턴뿐 아니라 노이즈 등 불필요한 부분까지 학습해 발생한다. 이에 따라 모델은 학습 데이터에 대해서는 높은 성능을 보이지만, 테스트 데이터나 새로운 데이터에서는 성능이 떨어지는 특성을 보인다. 이를 방지하고 모델의 일반화 성능을 더 정확하게 평가하기 위해 앞서 말한 교차 검증을 사용할 수 있다. 이렇게 다양한 데이터 분할에서 모델의 성능을 평가하면, 과대적합 여부를 더 정확하게 판단하고 모델 복잡도를 선택할 수 있다.

한편, 일반화 성능이 좋은 모델을 구축하기 위해서는 정규화* 등의 방법으로 과소/과대 적합 사이의 균형을 찾는 것이 중요하다고 알려져 왔다. 그러나, 최근 심층 학습에서는 과대적합이 일어난 이후에 모델의 크기를 더욱 더 키우면 과대적합이 더 심해지는 게 아니라 오히려 일반화 성능이 개선된다는 이중 하강 현상*이 발견되어 이에 대한 활발한 연구가 진행되고 있다.

* 정규화(Regularization): 모델의 과대적합을 방지하기 위해 모델의 복잡도를 제한하거나 페널티를 부과하는 학습 방법.
* 이중 하강(Double Descent) 현상: 모델의 크기가 커질수록 성능이 먼저 저하되다가 일정 크기를 넘어서면 다시 개선되는 현상을 말한다. 이는 전통적인 통계학의 과대적합 개념에 도전하는 현상으로, 딥러닝 분야에서 새롭게 관찰되었다. 하지만 이론적으로는 아직 완전히 이해되지 않은 상태다.