엑셀로 신경망 학습 데이터 만들고 Python 다층 퍼셉트론 학습·검증하기
이 글에서는 엑셀로 학습 데이터를 생성하고 Python으로 다층 퍼셉트론을 학습시켜 성능을 검증하는 과정을 보여줍니다.
Python 신경망 개발을 원하신다면 제대로 오셨습니다. 엑셀 기반 데이터 준비에 들어가기 전에 시리즈 나머지 글을 복습해 기초 맥락 잡으세요:
- 신경망으로 분류 수행: 퍼셉트론이란?
- 단순 퍼셉트론 예제로 데이터 분류하기
- 기본 퍼셉트론 신경망 학습시키기
- 단순 신경망 학습 이해
- 신경망 학습 이론 입문
- 신경망의 학습률 이해
- 다층 퍼셉트론으로 고급 머신러닝
- 시그모이드 활성화 함수: 다층 퍼셉트론에서의 활성화
- 다층 퍼셉트론 신경망 학습시키기
- 다층 퍼셉트론의 학습 공식과 역전파 이해
- Python 구현을 위한 신경망 아키텍처
- Python으로 다층 퍼셉트론 신경망 만들기
- 신경망을 이용한 신호 처리: 신경망 설계에서의 검증
- 신경망용 학습 데이터셋: Python 신경망 학습 및 검증
학습 데이터란?
실전 애플리케이션에서 학습 샘플은 측정된 입력과 알려진 타겟 쌍으로 구성돼 신경망이 일관된 입출력 매핑을 학습하게 합니다. 예를 들어 토마토 색상, 모양, 밀도로 식미 품질 예측 네트워크를 원한다고 가정. 수천 개 토마토 수집, 물리 속성 기록, 각자 맛보고 결과를 테이블로 정리하면 속성과 품질 간 관계 학습용 데이터셋 완성.
각 행은 3개 입력 컬럼(색상, 모양, 밀도)과 1개 타겟 출력 컬럼으로 된 한 학습 샘플.

학습 중 신경망은 세 입력값과 출력값 사이 잠재 패턴(존재한다면)을 식별.
학습 데이터 정량화
모든 입출력은 숫자여야 합니다. "자두 모양"이나 "군침 도는" 같은 문자열은 네트워크에 직접 넣을 수 없습니다. 양자화로 질적 서술자를 숫자 척도로 변환. 예: 모양을 -1(완벽 구형)~+1(극단적 장축) 인코딩. 식미 품질은 5점 척도 평가 후 원-핫 인코딩으로 5요소 출력 벡터로 변환.
다음 다이어그램은 5클래스 분류용 원-핫 인코딩 예시.

원-핫 인코딩은 로지스틱 시그모이드 활성화와 잘 맞습니다. 시그모이드는 좁은 전이 구간 밖에서 0이나 1에 가까운 값 출력. 단일 출력 노드에 타겟 0~4 사용하면 네트워크가 극단으로 치우쳐 넌센스 예측 유발.

학습 데이터셋 생성
12편에서 참조한 Python 신경망은 엑셀 파일에서 샘플 임포트. 여기 사용 데이터 구성:

우리 퍼셉트론 구현은 단일 출력 노드만 지원하므로 이진 분류 수행. 입력값은 -5~+5 사이 난수, 아래 엑셀 공식으로 생성:
=RANDBETWEEN(-10, 10)/2
출력은 다음 규칙으로 도출:
=IF(AND(A2>0, B2>0, C2<0), 1, 0)
따라서 네트워크는 input_0 > 0, input_1 > 0, input_2 < 0일 때만 샘플 레이블 1, 아니면 0으로 학습.
이 단순 문제에는 5,000개 랜덤 샘플과 1 에포크로 높은 분류 정확도 달성 충분.
네트워크 학습
입력 차원 3(I_dim = 3), 은닉 노드 4(H_dim = 4), 학습률 0.1(LR = 0.1)로 구성. training_data = pandas.read_excel(...) 줄을 본인 스프레드시트 경로로 교체. 엑셀 없으면 Pandas로 ODS 파일도 읽기 가능.
2.5GHz 윈도우 노트북에서 5,000 샘플 학습 스크립트 실행 시 몇 초 소요. 전체 MLP_v1.py 스크립트 사용 시 검증 자동 시작.
네트워크 검증
검증용 두 번째 스프레드시트 동일 공식으로 생성. 학습 데이터와 같은 방식으로 임포트:

간단한 검증 루틴 예시:
# 피드포워드로 포스트-활성화 값 얻기
output = sigmoid(np.dot(W_out, hidden_output))
# 임계값 적용해 이진 예측
prediction = 1 if output > 0.5 else 0
# 타겟과 비교해 정답 누적
분류 정확도 = 정답 수 / 전체 검증 샘플 수.
np.random.seed(1) 생략 시 가중치 초기화 매번 달라 정확도 변동. 지정 파라미터(5,000 학습, 1,000 검증)로 15회 실행 시 정확도 88.5%~98.1%, 평균 94.4%.
결론
신경망 학습 데이터 핵심 개념 탐구, Python 다층 퍼셉트론 구현, 엑셀 생성 데이터셋으로 성능 평가. 시리즈가 크게 진전됐으며 더 많은 고급 주제가 후속 글에서 대기 중.