인공신경망(MLP)
입력층과 하나 이상의 은닉층, 출력층을 거치며 예측 오차가 줄어들도록 가중치를 조정하는 모델입니다.
고객의 서비스 이용 기간이 짧으면 해지할 가능성이 높을까요? 월 요금이 비싼 고객은 서비스를 더 자주 해지할까요? 그렇다면 이용 기간은 짧지만 할인 혜택을 많이 받고, 서비스 이용 횟수도 높은 고객은 어떻게 예측해야 할까요?
실제 데이터에서는 하나의 변수만으로 결과를 설명하기 어려운 경우가 많습니다. 이용 기간과 월 요금, 계약 유형, 서비스 이용 횟수처럼 여러 변수가 서로 영향을 주고받으며 복잡한 패턴을 형성할 수 있습니다.
이러한 관계를 학습하기 위해 사용하는 대표적인 방법이 다층 퍼셉트론(Multilayer Perceptron, MLP)입니다.
MLP는 인공신경망(Artificial Neural Network)의 한 종류로, 입력층과 하나 이상의 은닉층, 출력층으로 구성됩니다. 각 층은 이전 층에서 전달된 정보를 계산하고 변환하며, 학습 과정에서는 예측 오차가 줄어들도록 가중치를 반복적으로 조정합니다.
MLP는 고객 이탈 여부와 같은 분류 문제뿐 아니라 구매 금액이나 매출처럼 연속형 수치를 예측하는 회귀 문제에도 활용할 수 있습니다.
이번 글에서는 MLP의 기본 구조부터 뉴런과 가중치, 활성화 함수, 순전파와 역전파, 주요 하이퍼파라미터, 실제 분석 사례, 예측 성능 평가와 해석 시 주의사항까지 살펴보겠습니다.
인공신경망(MLP)이란 무엇인가요?
다층 퍼셉트론(MLP)은 여러 층으로 구성된 인공신경망을 이용해 입력변수와 예측 결과 사이의 관계를 학습하는 지도학습 모델입니다.
일반적인 선형회귀분석은 입력변수와 결과 사이의 관계를 선형식으로 표현합니다. 반면 MLP는 은닉층과 비선형 활성화 함수를 이용해 더 복잡한 관계를 학습할 수 있습니다.
예를 들어 고객의 서비스 해지 여부를 예측한다고 가정해 보겠습니다. 이용 기간과 월 요금, 계약 유형, 고객센터 문의 횟수, 최근 이용 횟수를 입력하면 MLP는 여러 층의 계산을 거쳐 해당 고객의 해지 확률을 예측할 수 있습니다.
학습 과정에서는 예측값과 실제 해지 여부를 비교하여 오차를 계산하고, 이 오차를 줄이도록 각 연결의 가중치를 조정합니다.
다만 MLP가 복잡한 관계를 학습할 수 있다는 것이 모든 데이터에서 더 높은 정확도를 보장한다는 뜻은 아닙니다. 데이터가 적거나 변수 사이의 관계가 비교적 단순하다면 로지스틱 회귀나 트리 기반 모델이 더 적합할 수도 있습니다.
MLP의 구조와 뉴런·가중치 이해하기
MLP는 기본적으로 입력층(Input Layer), 은닉층(Hidden Layer), 출력층(Output Layer)으로 구성됩니다.
입력층은 분석에 사용하는 변수를 받아들이고, 은닉층은 입력된 정보를 여러 단계에 걸쳐 변환합니다. 출력층에서는 최종 예측값을 계산합니다.
예를 들어 입력변수가 5개이고 첫 번째 은닉층에 뉴런 16개, 두 번째 은닉층에 뉴런 8개를 배치할 수 있습니다. 이 경우 각 은닉층의 뉴런은 이전 층에서 전달된 값을 가중합으로 계산한 뒤 활성화 함수를 적용합니다.
출력층의 구조는 예측하려는 결과에 따라 달라집니다. 이항분류에서는 하나의 출력 뉴런으로 사건 발생 확률을 추정할 수 있고, 회귀 문제에서는 연속형 예측값을 출력할 수 있습니다. MLP를 설계할 때는 은닉층의 개수뿐 아니라 각 층에 배치할 뉴런 수와 활성화 함수도 중요한 설정입니다.
뉴런(Neuron)과 가중치(Weight)는 무엇인가요?
MLP에서 뉴런은 입력된 값을 받아 계산한 뒤 다음 층으로 전달하는 기본 계산 단위입니다.
하나의 뉴런은 여러 입력값에 각각 가중치를 곱한 뒤 이를 합산합니다. 여기에 편향(Bias)을 더하고 활성화 함수를 적용하여 출력값을 계산합니다. 이를 간단한 식으로 표현하면 다음과 같습니다.
뉴런의 출력 = 활성화 함수(입력값의 가중합 + 편향)
예를 들어 이용 기간, 월 요금, 고객센터 문의 횟수를 입력받는 뉴런이 있다고 가정하겠습니다.
| 입력변수 | 표준화된 입력값 | 가중치 |
|---|---|---|
| 이용 기간 | -0.8 | -0.5 |
| 월 요금 | 1.2 | 0.4 |
| 문의 횟수 | 1.5 | 0.7 |
편향을 0.1로 가정하면 가중합은 다음과 같습니다. (-0.8 × -0.5) + (1.2 × 0.4) + (1.5 × 0.7) + 0.1 = 2.03
이후 뉴런은 활성화 함수를 적용하여 다음 층으로 전달할 값을 계산합니다. 중요한 점은 이러한 가중치를 분석자가 일일이 정하는 것이 아니라 학습 과정에서 데이터에 맞춰 추정한다는 사실입니다.
또한 위 예시의 가중치는 하나의 뉴런에 연결된 값일 뿐입니다. 이 값을 일반적인 회귀계수처럼 해석하여 이용 기간의 독립적인 효과를 직접 설명해서는 안 됩니다.
활성화 함수(Activation Function)는 왜 필요한가요?
활성화 함수는 뉴런이 계산한 값을 변환하여 다음 층으로 전달하는 역할을 합니다.
MLP에서 비선형 활성화 함수를 사용하는 중요한 이유는 복잡한 비선형관계를 학습하기 위해서입니다. 은닉층이 여러 개 있더라도 각 층에서 선형 계산만 수행한다면 전체 계산은 하나의 선형 변환으로 합쳐질 수 있습니다. 따라서 여러 층을 쌓는 것만으로 복잡한 비선형 패턴을 충분히 표현할 수는 없습니다.
대표적인 활성화 함수는 다음과 같습니다.
| 활성화 함수 | 특징 | 주요 활용 |
|---|---|---|
| ReLU | 음수는 0, 양수는 그대로 출력 | 은닉층에서 널리 사용 |
| Tanh | 출력값을 -1에서 1 사이로 변환 | 은닉층 |
| Sigmoid | 출력값을 0에서 1 사이로 변환 | 이항분류 출력층 |
| Softmax | 여러 출력값을 합계 1인 확률 형태로 변환 | 다중분류 출력층 |
| Linear | 선형 출력을 유지 | 일반적인 회귀 출력층 |
예를 들어 ReLU 함수는 입력값이 -2라면 0을, 입력값이 3이라면 3을 출력합니다. 이렇게 비선형 변환을 반복하면 MLP는 입력변수 사이의 복잡한 관계와 상호작용을 표현할 수 있습니다. 다만 활성화 함수의 선택은 학습 속도와 예측 성능에 영향을 줄 수 있으므로 데이터와 모형 구조에 맞춰 결정해야 합니다.
순전파(Forward Propagation)란 무엇인가요?
순전파는 입력층에서 시작해 은닉층을 거쳐 출력층까지 계산을 진행하는 과정입니다.
예를 들어 고객의 이용 기간이 8개월이고 월 요금이 7만 원이며 최근 한 달간 서비스를 3회 이용했다고 가정해 보겠습니다. MLP는 먼저 이러한 값을 입력받습니다. 이후 첫 번째 은닉층에서 여러 가중합과 활성화 함수 계산을 수행하고, 그 결과를 다음 은닉층으로 전달합니다.
마지막으로 출력층에서 해당 고객의 서비스 해지 확률을 계산합니다. 예를 들어 출력값이 0.72라면, 확률로 해석하도록 구성된 모형에서는 해당 고객의 예측 해지 확률을 72%로 나타낼 수 있습니다. 하지만 이 단계의 예측이 정확한지 알려면 실제 해지 여부와 비교해야 합니다.
학습 과정에서는 순전파를 통해 예측값을 계산한 뒤 손실함수를 이용하여 예측 오차를 측정합니다. 따라서 순전파는 현재 모형의 가중치를 이용해 예측을 만드는 과정이며, 학습은 이러한 예측과 실제값의 차이를 이용해 가중치를 조정하는 과정까지 포함합니다.
역전파(Backpropagation)란 무엇인가요?
역전파는 예측 오차를 줄이기 위해 각 가중치를 어떤 방향으로 조정해야 하는지 계산하는 과정입니다.
MLP에서는 먼저 순전파를 통해 예측값을 계산합니다. 이후 손실함수를 이용하여 실제값과 예측값의 차이를 측정합니다. 역전파는 이 손실함수의 기울기를 출력층에서 입력층 방향으로 계산합니다. 이때 미분의 연쇄법칙(Chain Rule)을 이용하여 각 가중치가 손실에 얼마나 기여하는지 구합니다.
계산된 기울기는 경사하강법(Gradient Descent)이나 Adam과 같은 최적화 알고리즘에서 가중치를 갱신하는 데 사용합니다. 학습 과정은 일반적으로 다음과 같이 진행됩니다.
- 입력변수를 이용하여 예측값을 계산합니다.
- 예측값과 실제값을 비교하여 손실을 계산합니다.
- 역전파를 통해 가중치별 기울기를 계산합니다.
- 최적화 알고리즘이 가중치를 갱신합니다.
- 이 과정을 반복하면서 손실을 줄입니다.
예를 들어 실제로 서비스를 해지한 고객의 예측 해지 확률이 20%로 나타났다면 모형은 큰 예측 오류를 기록할 수 있습니다. 학습 알고리즘은 이러한 오류를 줄이도록 가중치를 조정합니다.
다만 가중치를 갱신할 때마다 손실이 반드시 감소하는 것은 아닙니다. 학습률이나 최적화 방법, 미니배치의 구성에 따라 손실이 일시적으로 증가하거나 변동할 수 있습니다.
MLP의 예측 유형과 실제 활용 사례
MLP는 예측하려는 결과변수의 형태에 따라 분류모형과 회귀모형으로 사용할 수 있습니다.
MLP 분류(Classification)
분류 문제에서는 관측값이 어떤 범주에 속하는지 예측합니다. 예를 들어 고객의 해지 여부, 대출 연체 여부, 제품 불량 여부를 예측할 수 있습니다.
이항분류에서는 일반적으로 시그모이드 출력과 이항 교차엔트로피 손실을 사용할 수 있습니다. 다중분류에서는 Softmax 출력과 다중분류 교차엔트로피 손실을 사용하는 방식이 흔합니다.
MLP 회귀(Regression)
회귀 문제에서는 연속형 수치를 예측합니다. 예를 들어 고객의 다음 달 구매 금액, 주택 가격, 제품 생산량, 시험 점수 등을 예측할 수 있습니다. 일반적인 회귀 MLP에서는 선형 출력층과 평균제곱오차(MSE) 등의 손실함수를 사용할 수 있습니다.
| 구분 | MLP 분류 | MLP 회귀 |
|---|---|---|
| 예측 대상 | 범주형 결과 | 연속형 수치 |
| 대표 사례 | 고객 해지 여부 | 고객 구매 금액 |
| 출력 | 범주별 확률 또는 점수 | 예측 수치 |
| 대표 손실함수 | 교차엔트로피 | 제곱오차 |
| 평가 지표 | 정밀도, 재현율, ROC-AUC, PR-AUC | MAE, RMSE, R² |
따라서 MLP는 특정 유형의 결과변수만 분석하는 방법이 아니라, 출력층과 손실함수를 적절하게 설정하여 다양한 예측 문제에 적용할 수 있는 모델입니다.
실제 사례: 고객의 서비스 해지를 예측한다면?
한 구독 서비스 기업에서 고객 5,000명의 데이터를 이용해 다음 달 서비스 해지 여부를 예측한다고 가정해 보겠습니다.
전체 고객 중 650명은 서비스를 해지했고, 나머지 4,350명은 서비스를 유지했습니다. 전체 해지율은 13%입니다. 분석에는 다음 변수를 사용했습니다.
| 변수 | 데이터 형태 | 설명 |
|---|---|---|
| 이용 기간 | 수치형 | 서비스 이용 개월 수 |
| 월 요금 | 수치형 | 매월 지불하는 요금 |
| 계약 유형 | 범주형 | 월 단위·연 단위 |
| 서비스 이용 횟수 | 수치형 | 최근 30일 이용 횟수 |
| 고객센터 문의 횟수 | 수치형 | 최근 90일 문의 횟수 |
| 해지 여부 | 이항 범주형 | 해지·유지 |
연구 질문은 다음과 같습니다.
"고객의 이용 특성 사이에 존재하는 비선형관계를 학습하여 다음 달 서비스 해지 여부를 예측할 수 있을까?"
전체 데이터를 학습용 4,000명과 최종 평가용 1,000명으로 나누었다고 가정하겠습니다. 학습 데이터 내부에서 표준화와 범주형 변수 인코딩을 수행하고, 은닉층 구조와 학습률 등의 하이퍼파라미터를 선택했습니다. 이후 최종 평가용 1,000명의 데이터에서 예측 성능을 확인했습니다.
실제 MLP 분석 결과는 어떻게 해석하나요?
앞선 고객 이탈 예측 사례에서 로지스틱 회귀, 랜덤 포레스트, MLP를 비교했다고 가정해 보겠습니다.
세 모형은 동일한 학습·평가 데이터 분할을 사용했으며, 하이퍼파라미터는 학습 데이터 내부의 교차검증을 통해 선택했습니다.
모델별 예측 성능
| 알고리즘 | ROC-AUC | PR-AUC | 로그 손실 |
|---|---|---|---|
| 로지스틱 회귀 | 0.81 | 0.40 | 0.328 |
| 랜덤 포레스트 | 0.84 | 0.47 | 0.309 |
| MLP | 0.86 | 0.51 | 0.297 |
이 수치는 알고리즘의 일반적인 우열을 의미하지 않습니다.
이 사례에서 MLP의 ROC-AUC는 0.86으로 가장 높았으며 PR-AUC도 0.51로 나타났습니다. 이는 해당 평가 데이터에서 MLP가 두 비교 모형보다 해지 고객을 구분하는 데 유용한 예측 순위를 제공했음을 의미합니다.
또한 로그 손실은 0.297로 가장 낮았습니다. 로그 손실이 낮다는 것은 실제 범주에 부여한 예측 확률의 관점에서도 상대적으로 좋은 결과를 보였다는 뜻입니다. 하지만 이 결과만으로 MLP가 모든 고객 이탈 예측 문제에서 가장 좋은 알고리즘이라고 판단할 수는 없습니다.
MLP는 학습 설정과 초기 가중치, 데이터 크기 등에 따라 결과가 달라질 수 있습니다. 따라서 가능하면 여러 초기값이나 반복 평가를 통해 성능의 안정성도 확인하는 것이 좋습니다.
은닉층·뉴런 수와 학습 설정은 어떻게 정하나요?
MLP를 설계할 때 중요한 설정 중 하나는 은닉층의 수와 각 층에 배치할 뉴런 수입니다.
은닉층과 뉴런 수를 늘리면 모델이 표현할 수 있는 관계가 복잡해집니다. 하지만 필요한 학습 데이터와 계산량이 증가할 수 있으며 과적합 위험도 높아질 수 있습니다. 예를 들어 다음과 같은 구조를 비교할 수 있습니다.
| 모델 | 은닉층 구조 | 의미 |
|---|---|---|
| A | (16) | 뉴런 16개를 가진 은닉층 1개 |
| B | (32, 16) | 뉴런 32개와 16개를 가진 은닉층 2개 |
| C | (64, 32, 16) | 은닉층 3개 |
| D | (128, 64, 32) | 비교적 큰 은닉층 3개 |
괄호 안의 숫자는 각 은닉층에 포함된 뉴런 수를 나타냅니다.
모델 A는 구조가 단순하여 학습 속도가 빠르고 과적합 위험이 상대적으로 낮을 수 있습니다. 반면 모델 D는 더 복잡한 패턴을 표현할 수 있지만 관측값 수가 적다면 불필요하게 복잡한 모형이 될 수 있습니다. 중요한 점은 은닉층이 많을수록 예측 성능이 무조건 좋아지는 것은 아니라는 사실입니다.
따라서 은닉층 구조는 교차검증이나 검증 데이터의 성능을 바탕으로 선택하는 것이 좋습니다.
학습률(Learning Rate)은 무엇인가요?
학습률은 가중치를 업데이트할 때 얼마나 큰 폭으로 조정할지 결정하는 설정입니다.
예를 들어 학습률이 크면 가중치가 빠르게 변할 수 있어 학습 초기에는 손실이 빠르게 감소할 수 있습니다. 하지만 학습률이 지나치게 크면 최적점 주변에서 반복적으로 진동하거나 학습이 불안정해질 수 있습니다. 반대로 학습률이 너무 작으면 가중치가 천천히 변하므로 학습에 오랜 시간이 걸릴 수 있습니다.
| 학습률 설정 | 일반적인 특징 |
|---|---|
| 지나치게 큼 | 학습 불안정 또는 발산 가능 |
| 적절한 수준 | 비교적 안정적인 손실 감소 |
| 지나치게 작음 | 학습 속도가 느리거나 충분히 수렴하지 못할 수 있음 |
학습률은 최적화 알고리즘과 함께 고려해야 합니다. 예를 들어 SGD와 Adam은 가중치를 조정하는 방식이 다르며, 적절한 학습률의 범위도 서로 다를 수 있습니다. 따라서 특정 학습률이 모든 MLP에 적합하다고 판단해서는 안 됩니다.
에포크(Epoch)와 배치 크기(Batch Size)는 무엇인가요?
MLP에서는 학습을 얼마나 반복할지, 한 번에 몇 개의 관측값을 처리할지 설정할 수 있습니다.
에포크(Epoch)
에포크는 전체 학습 데이터를 한 번 학습에 사용하는 단위를 의미합니다. 예를 들어 학습 데이터가 4,000개이고 100에포크를 설정했다면 전체 학습 데이터에 대해 100회의 학습 순환을 수행하도록 설정한 것입니다.
다만 실제 구현에서는 데이터 섞기나 미니배치 구성 등에 따라 구체적인 학습 과정이 달라질 수 있습니다.
배치 크기(Batch Size)
배치 크기는 한 번의 가중치 업데이트에 사용하는 관측값의 수입니다. 예를 들어 학습 데이터가 4,000개이고 배치 크기가 100이라면 일반적인 미니배치 학습에서는 한 에포크당 약 40번의 업데이트가 이루어질 수 있습니다. 배치 크기가 작으면 업데이트 횟수가 늘어나고 기울기 추정에 변동성이 커질 수 있습니다.
반대로 배치 크기가 크면 한 번에 더 많은 데이터를 처리하므로 메모리 사용량이 증가할 수 있습니다. 에포크와 배치 크기는 학습 시간과 수렴 과정, 일반화 성능에 영향을 줄 수 있으므로 다른 설정과 함께 검토해야 합니다.
MLP에서는 왜 데이터 표준화가 중요한가요?
MLP는 입력값에 가중치를 곱하고 여러 층을 거쳐 계산하기 때문에 변수의 크기와 측정 단위에 영향을 받을 수 있습니다.
예를 들어 이용 기간은 1개월에서 60개월 사이이고, 월 요금은 수만 원 단위이며 고객센터 문의 횟수는 0회에서 10회 정도라고 가정해 보겠습니다. 이처럼 입력변수의 값 범위가 크게 다르면 가중치 최적화 과정이 비효율적으로 진행되거나 학습이 불안정해질 수 있습니다.
따라서 MLP에서는 일반적으로 수치형 입력변수를 표준화(Standardization)하거나 적절한 방식으로 스케일링하는 것이 좋습니다. 대표적인 방법은 Z점수 표준화입니다.
표준화 값 = (관측값 - 학습 데이터 평균) ÷ 학습 데이터 표준편차
예를 들어 학습 데이터에서 이용 기간의 평균이 24개월이고 표준편차가 12개월이라면 이용 기간 36개월인 고객의 표준화 값은 1입니다.
다만 반드시 학습 데이터에서 평균과 표준편차를 계산해야 합니다.
전체 데이터를 먼저 표준화한 뒤 학습·평가 데이터를 나누면 평가 데이터의 정보가 학습 과정에 반영되는 데이터 누수(Data Leakage)가 발생할 수 있습니다.
따라서 데이터 분할을 먼저 수행하고, 학습 데이터에서 계산한 전처리 기준을 검증·평가 데이터에 동일하게 적용해야 합니다.
MLP의 과적합과 방지 방법
MLP는 여러 은닉층과 많은 뉴런을 사용할 수 있어 복잡한 패턴을 학습하는 데 유리합니다.
하지만 모형이 지나치게 복잡하거나 학습 데이터가 충분하지 않다면 학습 데이터의 우연한 패턴까지 학습하는 과적합이 발생할 수 있습니다. 예를 들어 다음과 같은 결과가 나타났다고 가정해 보겠습니다.
학습 반복에 따른 예측 성능
| 에포크 | 학습 ROC-AUC | 검증 ROC-AUC |
|---|---|---|
| 10 | 0.76 | 0.74 |
| 30 | 0.83 | 0.81 |
| 60 | 0.89 | 0.85 |
| 100 | 0.95 | 0.82 |
| 150 | 0.99 | 0.77 |
학습 데이터의 ROC-AUC는 에포크가 증가하면서 계속 높아졌습니다. 반면 검증 데이터의 ROC-AUC는 60에포크에서 가장 높았고 이후에는 감소했습니다. 이는 학습을 오래 진행하면서 새로운 데이터에 대한 일반화 성능이 나빠졌을 가능성을 보여줍니다.
따라서 MLP에서는 학습 데이터의 성능만 확인하지 않고 검증 데이터의 성능 변화를 함께 살펴봐야 합니다.
과적합을 줄이기 위해 어떤 방법을 사용하나요?
MLP에서는 과적합을 완화하기 위한 다양한 규제화(Regularization) 방법을 사용할 수 있습니다.
L2 규제(Weight Decay)
L2 규제는 가중치가 지나치게 커지는 것을 제한하는 방법입니다. 모형이 일부 가중치에 과도하게 의존하는 것을 줄이고, 보다 단순한 파라미터 구성을 유도할 수 있습니다.
드롭아웃(Dropout)
드롭아웃은 학습 과정에서 일부 뉴런의 출력을 확률적으로 제외하는 방법입니다. 특정 뉴런이나 연결에 지나치게 의존하는 현상을 줄여 과적합을 완화하는 데 도움이 될 수 있습니다. 다만 모든 MLP 구현에서 드롭아웃을 지원하는 것은 아니므로 사용하는 라이브러리의 기능을 확인해야 합니다.
조기 종료(Early Stopping)
조기 종료는 검증 데이터의 성능이 더 이상 개선되지 않으면 학습을 중단하는 방법입니다. 예를 들어 100에포크까지 학습할 수 있도록 설정했더라도 60에포크 이후 검증 성능이 지속적으로 나빠진다면 더 이른 시점의 모델을 선택할 수 있습니다.
모델 복잡도 제한
은닉층의 수와 뉴런 수를 줄여 모형의 복잡도를 제한하는 것도 방법입니다. 데이터 규모에 비해 지나치게 큰 신경망을 사용하는 것보다 적절한 크기의 모델을 사용하는 편이 새로운 데이터에서 좋은 성능을 보일 수 있습니다.
이러한 방법들은 서로 함께 사용할 수 있지만, 실제 성능 개선 여부는 검증 데이터를 통해 확인해야 합니다.
MLP의 결과는 어떻게 해석하나요?
MLP는 여러 층에서 복잡한 계산을 수행하므로 일반적인 선형회귀처럼 개별 계수만 보고 변수의 영향을 설명하기 어렵습니다.
예를 들어 이용 기간이 짧은 고객의 해지 예측 확률이 높게 나타났더라도, 특정 은닉층의 가중치 하나만으로 이용 기간이 예측에 얼마나 기여했는지 직접 해석하기는 어렵습니다. 따라서 MLP에서는 변수 중요도와 예측 설명 기법을 함께 사용할 수 있습니다.
순열 중요도(Permutation Importance)
순열 중요도는 특정 변수의 값을 무작위로 섞었을 때 모형의 예측 성능이 얼마나 감소하는지 확인하는 방법입니다. 예를 들어 계약 유형을 섞었더니 PR-AUC가 0.51에서 0.41로 감소했다면 해당 변수가 모형의 예측에 중요한 정보를 제공했을 가능성이 있습니다.
다만 변수 사이의 상관관계가 높으면 개별 중요도를 해석하기 어려울 수 있습니다.
SHAP
SHAP은 특정 예측값에 각 변수가 어느 정도 기여했는지 설명하는 방법입니다. 예를 들어 특정 고객의 해지 예측 확률이 높게 나타났다면 이용 기간, 월 요금, 고객센터 문의 횟수 등이 예측 점수를 높이거나 낮추는 데 어떻게 기여했는지 살펴볼 수 있습니다.
다만 SHAP의 결과는 사용하는 모형 설명 방식과 배경 데이터, 출력 척도 등에 따라 달라질 수 있습니다.
부분의존도(PDP)
PDP는 특정 변수의 값을 변화시키면서 모형의 평균적인 예측이 어떻게 달라지는지 보여줍니다. 예를 들어 이용 기간이 길어질수록 평균 예측 해지 확률이 어떻게 변하는지 확인할 수 있습니다.
하지만 이러한 결과는 모형이 학습한 예측 관계를 설명하는 것이지, 이용 기간을 실제로 변경하면 해지율이 같은 방식으로 변화한다는 인과적 의미는 아닙니다.
MLP와 다른 예측 알고리즘은 어떻게 다른가요?
MLP는 여러 변수 사이의 복잡한 관계를 학습하는 데 유용하지만 모든 상황에서 가장 적절한 알고리즘은 아닙니다.
데이터의 특성과 분석 목적에 따라 로지스틱 회귀, 의사결정나무, 랜덤 포레스트, 그래디언트 부스팅 등과 비교할 수 있습니다.
| 구분 | 로지스틱 회귀 | 랜덤 포레스트 | MLP |
|---|---|---|---|
| 기본 원리 | 로그 오즈를 모형화 | 여러 나무의 예측 결합 | 여러 층에서 비선형 변환 |
| 비선형관계 | 별도 항 추가 등이 필요할 수 있음 | 분할 구조로 학습 | 활성화 함수와 은닉층으로 학습 |
| 전처리 | 변수 구조에 따라 필요 | 상대적으로 적을 수 있음 | 일반적으로 스케일링 중요 |
| 해석 가능성 | 계수와 오즈비 해석 | 변수 중요도 등 활용 | 설명 기법이 필요한 경우 많음 |
| 주요 설정 | 규제 강도 등 | 나무 수, 깊이 등 | 은닉층, 뉴런 수, 학습률 등 |
로지스틱 회귀는 변수와 결과 사이의 관계를 비교적 명확하게 설명하고 싶을 때 유용할 수 있습니다. 랜덤 포레스트는 비선형관계와 변수 간 상호작용을 학습하면서 비교적 안정적인 예측을 제공할 수 있습니다.
MLP는 여러 층의 계산을 통해 더 복잡한 패턴을 표현할 수 있지만, 설정에 민감하고 학습 데이터의 크기와 전처리 방식에 영향을 받을 수 있습니다. 특히 일반적인 정형 데이터에서는 트리 기반 앙상블이 MLP와 비슷하거나 더 높은 성능을 보이는 경우도 있으므로 실제 성능을 비교하는 것이 중요합니다.
MLP 분석에서 주의해야 할 점
MLP는 유연한 예측모형이지만 결과를 신뢰하기 위해서는 여러 사항을 점검해야 합니다.
데이터 규모와 모델 복잡도를 함께 고려해야 합니다.
은닉층과 뉴런이 많아질수록 모형의 표현 능력은 커지지만 학습해야 할 가중치 수도 증가합니다. 관측값이 적은 상황에서 지나치게 큰 모형을 사용하면 과적합이 발생할 가능성이 높아집니다. 따라서 데이터 규모에 맞는 신경망 구조를 선택해야 합니다.
학습 결과가 초기값에 따라 달라질 수 있습니다.
MLP는 일반적으로 가중치를 무작위로 초기화한 뒤 학습합니다. 같은 데이터와 설정을 사용해도 초기값이나 미니배치 순서에 따라 최종 모델의 성능이 조금씩 달라질 수 있습니다. 따라서 난수 시드를 관리하고 필요에 따라 여러 초기값으로 반복 학습하여 결과의 안정성을 확인하는 것이 좋습니다.
클래스 불균형을 확인해야 합니다.
고객 이탈처럼 관심 범주의 비율이 낮은 데이터에서는 정확도만으로 성능을 판단하기 어렵습니다. 예를 들어 해지 고객이 전체의 13%라면 모든 고객을 유지로 예측해도 정확도는 87%입니다. 따라서 정밀도, 재현율, F1 점수, PR-AUC 등을 함께 확인해야 합니다.
예측 확률을 그대로 신뢰해서는 안 됩니다.
MLP의 출력층에서 0.8이라는 확률이 나왔다고 해서 실제로 유사한 고객 10명 중 정확히 8명이 해당 사건을 경험한다고 보장되는 것은 아닙니다. 예측 확률을 실제 의사결정에 사용할 때는 별도의 평가 데이터에서 확률 보정(Calibration) 상태를 확인하는 것이 좋습니다.
데이터 누수에 주의해야 합니다.
표준화, 결측값 대체, 범주형 변수 인코딩 등을 전체 데이터에 먼저 적용하면 평가 데이터의 정보가 학습 과정에 반영될 수 있습니다. 따라서 데이터 분할을 먼저 수행하고 전처리 기준은 학습 데이터에서만 추정해야 합니다. 또한 최종 평가 데이터는 하이퍼파라미터 조정이나 조기 종료에 사용하지 않아야 합니다.
MLP 결과 보고와 활용 분야
MLP 분석 결과를 보고할 때는 사용한 데이터와 입력변수, 신경망 구조, 학습 설정, 평가 방법, 최종 예측 성능을 함께 제시하는 것이 좋습니다.
특히 MLP는 은닉층과 뉴런 수, 활성화 함수, 최적화 알고리즘, 학습률 등에 따라 결과가 달라질 수 있으므로 설정을 명확하게 보고해야 합니다. 앞서 살펴본 고객 이탈 예측 사례를 이용하면 다음과 같이 작성할 수 있습니다.
결과 보고 예시
고객의 다음 달 서비스 해지 여부를 예측하기 위해 다층 퍼셉트론(MLP) 분류모형을 구축하였다. 전체 5,000명의 고객 중 4,000명을 학습에 사용하고 1,000명을 최종 평가에 활용하였다. 입력변수는 학습 데이터에서 추정한 기준을 이용하여 전처리하였으며, 은닉층 구조와 학습률 등의 하이퍼파라미터는 학습 데이터 내부의 검증을 통해 선택하였다. 최종 평가 결과 MLP의 ROC-AUC는 0.86, PR-AUC는 0.51, 로그 손실은 0.297로 나타났다. 같은 평가 데이터에서 로지스틱 회귀와 랜덤 포레스트의 PR-AUC는 각각 0.40과 0.47로 나타나, 이 예시에서는 MLP가 비교한 모델 중 가장 높은 예측 순위 성능을 보였다.
실제 연구에서는 최종 선택한 은닉층 구조, 활성화 함수, 최적화 알고리즘, 학습률, 에포크 수, 배치 크기, 규제 설정 등을 함께 보고하는 것이 좋습니다. 또한 학습 성능과 검증 성능의 차이를 확인하여 과적합 가능성을 검토하고, 필요한 경우 반복 학습의 평균 성능이나 변동성을 제시할 수 있습니다.
MLP는 어디에 활용할 수 있나요?
MLP는 여러 입력변수 사이의 복잡한 관계를 학습해야 하는 분류 및 회귀 문제에 사용할 수 있습니다.
마케팅 및 고객 분석
고객의 서비스 해지 여부, 구매 가능성, 재구매 금액, 고객 생애가치 등을 예측할 수 있습니다.
금융 및 경제
대출 연체 위험, 채무불이행 가능성, 금융 거래 이상 여부, 연속형 재무성과 등을 예측하는 연구에 활용할 수 있습니다.
보건 및 의료 연구
여러 검사 수치와 환자 특성을 이용하여 특정 건강 결과나 위험 수준을 예측할 수 있습니다. 다만 실제 의료 현장에 적용하려면 충분한 외부 검증과 안전성 평가가 필요합니다.
교육 연구
학생의 학업 성취도, 중도 탈락 가능성, 교육 프로그램 수료 여부 등을 예측할 수 있습니다.
제조업 및 품질관리
제품의 불량 여부, 품질 지표, 설비 고장 가능성, 생산량 등을 예측하는 데 사용할 수 있습니다.
서비스 운영 및 정보기술
고객 문의량, 서비스 이용 패턴, 시스템 이상 상태 등의 예측에 활용할 수 있습니다. 이처럼 MLP는 다양한 분야에서 사용할 수 있지만, 데이터 규모와 구조에 따라 더 단순한 통계모형이나 다른 머신러닝 알고리즘이 적절할 수도 있습니다.
따라서 MLP를 적용할 때는 모델의 복잡도 자체보다 실제 예측 목적과 검증 성능을 중요하게 고려해야 합니다.
MLP는 여러 층의 계산을 통해 복잡한 예측 관계를 학습합니다.
다층 퍼셉트론(MLP)은 입력층과 하나 이상의 은닉층, 출력층으로 구성된 인공신경망 모델입니다.
각 뉴런은 입력값에 가중치를 적용하고 활성화 함수를 통해 정보를 변환합니다. 학습 과정에서는 순전파로 예측값을 계산하고, 역전파와 최적화 알고리즘을 이용하여 손실을 줄이는 방향으로 가중치를 조정합니다.
MLP는 분류와 회귀 문제에 모두 사용할 수 있으며, 여러 입력변수 사이에 복잡한 비선형관계와 상호작용이 존재하는 데이터를 학습하는 데 유용합니다.
하지만 은닉층이나 뉴런 수가 많다고 해서 항상 좋은 예측모형이 만들어지는 것은 아닙니다. 데이터 규모에 맞는 모델 구조를 선택하고, 표준화와 규제화, 조기 종료 등을 활용하여 과적합을 방지해야 합니다.
또한 MLP의 예측 성능은 초기 가중치와 학습 설정에 따라 달라질 수 있으므로 동일한 평가 조건에서 다른 알고리즘과 성능을 비교하는 것이 좋습니다.
MLP의 핵심은 신경망을 복잡하게 만드는 것이 아니라, 여러 변수 사이에 존재하는 비선형 패턴을 학습하여 새로운 데이터에서도 정확하고 안정적인 예측을 수행하는 데 있습니다.