본문 바로가기
AI/인공지능(CNN)

[인공지능] XOR 문제를 넘어 : 비선형 데이터 분류를 위한 MLP 설계와 작동 원리

by Yoon_estar 2025. 10. 26.
728x90
반응형

이번 포스팅에서는 XOR 문제처럼 단일 직선으로는 분류할 수 없는 복잡한 비선형 데이터셋을 다루고, 이를 해결하기 위해 필수적인 인공신경망 모델인 다층 퍼센트론(MLP, Multi-Layer Perceptron)을 설계하고 학습하는 과정을 상세히 설명합니다. 특히 make_moons와 같은 비선형 데이터셋을 MLP의 은닉층과 비선형 활성화 함수를 사용하여 어떻게 성공적으로 분류하는지 그 원리를 깊이 이해하는 데 초점을 맞춥니다. 

비선형 데이터셋 분류

주요 개념은 비선형성(Non-linearity)을 가진 데이터를 비선형 함수를 포함하는 다층 신경망을 이용해 분류하는 것입니다. 단일 퍼센트론은 선형(직선) 경계만 학습할 수 있지만, MLP는 여러 층과 비선형 활성화 함수를 통해 곡선이나 복잡한 모양의 결정 경계를 만들 수 있습니다. 

용어 정리 

용어 실제 단어 의미 IT에서 개념
퍼센트론(Perceptron) 인지하다, 감지하다 인공신경망의 가장 단순한 형태
다수의 입력을 받아 하나의 출력을 내는 선형 분류기 단위
MLP(Multi-Layer Perceptron) 다층 퍼셉트론 입력층, 하나 이상의 은닉층, 출력층으로 구성된 신경망
비선형 문제를 해결할 수 있는 가장 기본적인 심층 학습(Deep Learning) 모델
비선형성(Non-linearity) 선형(직선)이 아님 데이터의 관계가 직선으로 설명되지 않는 특성.
MLP에서 활성화 함수를 통해 도입되어 복잡한 패턴 학습을 가능하게 함
활성화 함수(Activation Function) 활성화 + 함수 신경망에서 뉴런의 출력 값을 결정하는 함수
특히 ReLU나 Sigmoid 같은 비선형 함수가 층 사이에 삽입되어 비선형 결정 경계를 생성함

make_moons 만들다 + 달 scikit-learn에서 제공하는 비선형 이진 분류 문제 예시 데이터셋
두 개의 겹치는 반달 형태로 구성되어 선형 분리가 불가능함

사용 사례 및 예시

이해를 돕기 위한 사용 사례 및 예시 (과일 바구니 분류)

  • 선형 분류(단일 퍼센트론) : 무게만으로 사과(무거움)와 딸기(가벼움)를 분리하는 것 → 직선(무게 기준선)으로 쉽게 분리 가능
  • 비선형 분류(MLP) : 사과, 딸기 외에 적당히 무거운 바나나가 있고, 작은 미니어처 사과가 섞여 있어 무게와 색깔만으로는 복잡하게 얽혀있는 경우 → MLP는 여러 기준(층)과 복잡한 판단(비선형 함수)을 조합하여, 무게가 중간이고 붉은 색이면 딸기가 아닐 확률이 높다와 같은 복잡한 비선형 판단 경계를 만듭니다. 

왜?(사용 목적과 필요성)

왜 사용하는지

  • 복잡한 현실 문제 해결 : 대부분의 현실 데이터는 선형적이지 않습니다. 이미지 인식, 음성 처리, 복잡한 패턴 인식 등은 비선형적인 관계를 내포하며, 이를 해결하기 위해선 비선형적인 결정 경계를 만들 수 있는 MLPrk 필수적입니다. 
  • 표현 능력 향상 : 은닉층을 추가하고 비선형 활성화 함수를 사용함으로써, MLP는 어떤 복잡한 연속 함수라도 근사할 수 있는 능력(범용 근사 정리, Universal Approximation Theorem)을 갖게 됩니다. 

왜 필요한지

단일 퍼셉트론으로는 XOR 문제나 make_moons 데이터셋을 분류할 수 없습니다. MLP의 비선형 활성화 함수는 데이터를 고차원 공간으로 매핑하거나 복잡하게 변환하여 원래 공간에서 분리 불가능했던 데이터(예 : XOR)를 새로운 공간에서 선형적으로 분리 가능하도록 만들어 주기 때문에 필요합니다. 

언제 사용하는지

  • 선형 분리가 불가능한 이진 또는 다중 클래스 분류 문제를 해결할 때
  • 가장 기초적인 인공신경망 모델로, 심층 학습(Deep Learning)을 시작할 때 기초 모델로 사용합니다. 
  • 데이터 특성(Feature)이 이미 잘 정의되어 있고, 이미지나 시퀀스 데이터처럼 특수한 구조가 없을 때 주로 사용됩니다. 

어떻게 사용할 건지

MLP는 주로 다음과 같은 3단계로 사용됩니다. 

  1. 데이터 준비 : 비선형 데이터셋을 생성(make_moons)하고 훈련/테스트 세트로 분할합니다. 
  2. 모델 정의 : 입력층 → ReLU를 포함한 은닉층 → Sigmoid를 포함한 출력층 순서로 층을 쌓습니다. 
  3. 학습 및 예측 : binary_crossentropy 손실 함수를 사용하여 모델을 학습시키고, 테스트 데이터로 정확도를 평가합니다. 

MLP를 이용한 Make-Moons 분류

우리는 make_moons 데이터셋을 사용합니다. 이 데이터는 2차원 평면에서 두 개의 클래스가 마치 뫼비우스의 띠처럼 얽혀 있어, 직선 하나로는 절대 분리할 수 없습니다. 

  • 입력층
    데이터가 2차원이므로 입력층은 2개의 노드를 갖습니다. 
  • 은닉층과 비선형 활성화
    은닉층은 입력된 2차원 데이터를 10차원의 새로운 잠재 공간으로 변환합니다. 이 변환 자체가 선형이지만, 바로 뒤에 붙는 ReLU 함수가 이 변환에 비선형성을 부여합니다.
    이 비선형 변환 덕분에, 원래 2차원 평면에서 얽혀 있던 데이터가 10차원의 새로운 공간에서는 선형적으로 분리 가능한 형태로 퍼지게 됩니다. 이것이 MLP가 비선형 문제를 해결하는 핵심 원리입니다. 
  • 출력층
    변환된 데이터를 받아 최종적으로 이진 분류 결과를 내기 위해 1개의 노드와 Sigmoid 함수를 사용합니다. 

예시 코드

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
from sklearn.model_selection import train_test_split
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

# 1. 비선형 데이터 생성
X, y = make_moons(n_samples=1000, noise=0.1, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 2. MLP 모델 설계
model = Sequential([
    # 은닉층: 비선형성 도입 (ReLU)
    Dense(units=10, activation='relu', input_shape=(2,), name='hidden_layer'), 
    # 출력층: 이진 분류 확률 출력 (Sigmoid)
    Dense(units=1, activation='sigmoid', name='output_layer')
])

# 3. 모델 컴파일 및 학습
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=100, batch_size=32, verbose=0)

# 4. 성능 평가
loss, accuracy = model.evaluate(X_test, y_test, verbose=0)
print(f"테스트 데이터 정확도: {accuracy:.4f}")

 

장단점 및 특징

MLP의 장점

  • 비선형 문제 해결 가능
  • 구현이 간단하고 직관적임 
  • 범용 근사 능력 보유

MLP 단점

  • CNN, RNN에 비해 비효율적(이미지, 시계열 데이터의 경우)
  • 최적 은닉층 개수 및 뉴런 수 결정이 어려움

MLP 특징

  • 각 층의 뉴런들이 다음 층의 모든 뉴런과 연결되는 완전 연결(Fully-Connected) 구조를 가짐
  • 역전파(Backpropagation) 알고리즘을 통해 가중치 학습

결론

MLP는 단순히 입력과 출력을 연결하는 것을 넘어, 비선형 활성화 함수라는 핵심 도구를 사용하여 복잡한 비선형 문제를 해결하는 능력을 갖춘 기본적이면서도 강력한 신경망 모델입니다. make_moons 데이터셋 분류 성공은 MLP가 선형 분류기의 한계를 극복하고 현대 딥러닝 기술의 초석을 다졌음을 분명히 보여줍니다. 비선형 데이터에 대한 이해와 MLP의 활용은 모든 AI 및 머신러닝 엔지니어에게 필수적인 지식입니다. 

반응형