신경망분석 신경망의 구조와 개념 - MLP 신경망 사례분석 기말고사 1. 홈페이지 - 과제관리-웹 마이닝 선택하여 학번 이름으로 올린다. 2.

Download Report

Transcript 신경망분석 신경망의 구조와 개념 - MLP 신경망 사례분석 기말고사 1. 홈페이지 - 과제관리-웹 마이닝 선택하여 학번 이름으로 올린다. 2.

신경망분석
신경망의 구조와 개념 - MLP 신경망
사례분석
기말고사
1. 홈페이지 - 과제관리-웹 마이닝 선택하여 학번 이름으로 올린다.
2. 본인의 학번-이름으로 된 한글파일에 아래의 결과를 print screen하여
붙여서 함께 올린다.
3. 이 파워포인트 중 “사례분석”부분을 실습하면 됩니다. -첫 파워포인트 자료참조
함.
4. 실습에 사용되는 파일은 buytest이며 사이버강의실에 있는 데이터 자
료에 있음.
1. 분석흐름도 – 이 문서의 5페이지 참조
2. 인공신경망 결과물을 캡쳐해서 한글 파일에 붙임
19~20쪽까지 파워포인트를 실습하고 결과에 해당하는 것을 두화면 정도
캡쳐하면 됩니다.

* SAS 의사결정 트리의 실습에 그 의미가 있습니다.
1. 신경망의 구조와 개념-MLP 신경망
 개요
 신경망 또는 인공신경망(artificial neural networks)에 관한 연구는 뇌 신경생리
학(neurophysiology)으로부터 영감을 얻어 시작됨

자료분석 분야에서 신경망은 복잡한 구조를 가진 자료에서의 예측(prediction) 문제
를 해결하기 위해서 사용되는 유연한 비선형모형(nonlinear models)의 하나로 분류

그러나 신경생리학과의 유사성 때문에 일반적으로 다른 통계적 예측모형에 비해 보
다 흥미롭게 받아들여지고 있다.
 신경망은 은닉마디(hidden units)라고 불리는 독특한 구성요소에 의해서 일반적
인 통계모형과 구별되어진다.

은닉마디는 인간의 신경세포를 모형화한 것으로써, 각 은닉마디는 입력변수들의 결
합(combination)을 수신하여 목표변수에 전달한다. 이때 결합에 사용되는 계수
(coefficient)들을 연결강도(synaptic weights)라고 부르며, 활성함수는 입력값을 변
환하고 이를 입력으로 사용하는 다른 마디로 출력하게 된다.
2
1. 신경망의 구조와 개념-MLP 신경망
 MLP(Multilayer Perceptron)의 구조
 신경망에는 여러 가지 다양한 모형이 있으나, 그 중에서도 자료분석을 위해 가장
널리 사용되는 모형은 MLP(Multilayer Perceptron, 다층인식자) 신경망
 MLP는 입력층(input layer), 은닉마디로 구성된 은닉층(hidden layer), 그리고 출
력층(output layer)으로 구성된 전방향(feed-forward) 신경망

입력층: 각 입력변수에 대응되는 마디들로 구성되어 있다. 명목형(nominal) 변수에
대해서는 각 수준에 대응하는 입력마디를 가지게 되는데, 이는 통계적 선형모형에서
가변수(dummy variable)를 사용하는 것과 같다.

은닉층: 여러 개의 은닉마디로 구성되어 있다. 각 은닉마디는 입력층으로부터 전달되
는 변수값들의 선형결합(linear combination)을 비선형함수(nonlinear function)로 처
리하여 출력층 또는 다른 은닉층에 전달한다.

출력층: 목표변수(target)에 대응하는 마디들을 갖는다. 여러 개의 목표변수 또는 세
개 이상의 수준을 가지는 명목형 목표변수가 있을 경우에는 여러 개의 출력마디들이
존재한다.
3
1. 신경망의 구조와 개념-MLP 신경망
 결합함수와 활성함수
 입력층과 출력층 그리고 하나의 은닉층에 두 개의 은닉마디를 가지는 MLP의 구
조를 수식으로 도식화하면 다음과 같다.
 결합함수(combination function)

입력층 또는 은닉층의 마디들을 결합하는 형태를 의미
 활성함수(activation function)

입력변수 또는 은닉마디의 결합을 변환하는 함수를 의미

활성함수와 출력활성함수는 동일한 함수를 사용하는 것이 일반적이다.
4
4. 사례분석
 한 개의 은닉층을 가지는 MLP
 분석흐름도의 작성과 각 노드의 설정

Neural Network 노드에서는 디폴트로 한 개의 은닉층을 가지는 MLP를 이용하여 신
경망분석을 수행하도록 되어 있다.
5
4. 사례분석
 한 개의 은닉층을 가지는 MLP
 분석흐름도의 작성과 각 노드의 설정

우선 신경망분석의 과정과 개념을 쉽게 설명하기 위해서, 두 개의 변수 AGE와
INCOME만을 입력변수(input variable)로 하여 신경망분석을 수행해 보자.

❶ Input Data Source 노드를 열고 분석할 데이터세트로 BUYTEST를 지정

❷ 변수 RESPOPND의 역할(model role)을 target으로 지정

❸ AGE와 INCOME을 제외한 모든 변수의 역할을 rejected로 지정

❹ Input Data Source 노드를 닫는다.

❺ Data Partition 노드를 연다.

❻ Random seed를 1310으로 지정

❼ Train을 40, Validation을 60, Test를 0으로 지정

❽ Data Partition 노드를 닫는다.
6
4. 사례분석
 한 개의 은닉층을 가지는 MLP
 Neural Network 노드의 설정

Neural Network 노드에서는 여러개의 대화상자들과 함께 Basic 대화상자와 Advanced 대화상자
를 제공

Basic 대화상자는 신경망 형성에 익숙하지 않은 사용자가 간단한 몇가지 옵션을 선택하면 디폴트
로 정의된 신경망을 형성할 수 있는 도구를 제공

Advanced 대화상자는 신경망 분석에 익숙한 전문적인 사용자를 위해 신경망 형성의 전반에 걸쳐
사용자가 원하는 방식을 선택할 수 있도록 하고 있다.

General 대화상자에서 Advanced user interface를 선택하지 않으면 Advanced 탭을 선택할 수
없다

Advanced 대화상자에서는 목적함수를 바꿀 수 있지만 Basic 대화상자에서는 불가능

Neural Network 노드에서는 기본적으로 분석용과 평가용 데이터세트의 예측값을 계산하지 않는
다. 따라서 예측값을 얻고자 한다면 Output 대화상자에서 다음과 같이 지정해 주어야 한다.

❶ Output 탭을 선택하고 Process or Score:의 Training, Validation, and Test 체크박스를 선택

❷ Neural Network 노드를 닫는다
7
4. 사례분석
 한 개의 은닉층을 가지는 MLP
 Neural Network 노드의 설정

Neural Network 노드를 실행하면 Neural Network Monitor 윈도우를 통해서 신경망
이 적합되어 가는 과정을 살펴볼 수 있다. 여기서 목적함수의 값에 변화가 없으면
Stop을 누른 다음 Close를 누르면 iteration이 중단된다.

적합과정이 끝난 후에 Results 윈도우에서 Output 탭을 선택하면 모수 추정치
(parameter estimate)들을 살펴볼 수 있다. 그러나 앞에서 설명한 바와 같이 이 추정
치들을 해석하는 것은 결코 쉽지 않다.

Plot 탭을 선택하면 수치적 반복회수(iteration number)에 따라서 분석용과 평가용 데
이터에 대한 오차함수(error function)값의 변화를 볼 수 있다. 분석용 데이터에 대한
오차함수 값은 당연하게도 반복회수가 증가함에 따라서 감소하지만, 평가용 데이터
에 대한 오차함수의 값은 어느 정도 감소하다가 다시 증가하고 있다.

E-Miner에서는 디폴트로 평가용 데이터의 오차함수 값이 최소가 되는 반복에서의 추
정치를 선택한다.
8
4. 사례분석
 로지스틱 회귀분석과의 비교
 과적합과 훈련중지

의사결정나무나 신경망과 같은 비선형모형에 의한 분석에서는 과적합(overfiting) 문
제가 발생하기 쉽다.

과적합이란 분석용 데이터(training data)에 대해서 과도하게 적합됨으로써 평가용이
나 검증용 데이터에 대해서는 잘 작동하지 않는 것을 의미

과적합된 모형은 예측의 일반성을 신뢰할 수 없기 때문에 새로운 데이터에 대한 예측
모형으로 사용할 수 없다.

E-Miner의 Neural Network 노드에서는 과적합 문제를 해결하기 위한 한 방법으로 분
석용 데이터에 의해서 추정된 계수들을 매 단계마다 평가용 데이터에 적용하여, 평가
용 데이터에 대해서 가장 작은 오차함수값을 가지는 단계에서의 추정치를 최종 추정
치로 결정하는데, 이를 훈련중지(stopped training)라 한다.

이 절에서는 과적합된 신경망모형을 로지스틱 회귀모형과 비교하여 훈련중지가 필요
한 이유를 설명할 것이다.
9
4. 사례분석
 로지스틱 회귀분석과의 비교
 반복회수에 따른 계수 추정치의 변경

사용자는 Results 윈도우의 Plot 대화상자에서 몇 번째 반복에서의 추정치를 최종 추
정치를 할 것인지를 변경할 수 있다.

다음과 같은 과정을 수행하여 분석용 데이터에서의 오차함수값을 최소로 하는 추정
치를 최종 추정치로 선택해 보기 바란다.

❶ Plot 대화상자에서 분석용(Train) 데이터에 대한 오차함수 선그래프의 마지막 반
복에 해당되는 부분을 클릭한다. 흰 수직선이 마지막 반복으로 이동할 것이다.

❷ 그래프에 마우스 오른쪽 버튼을 클릭하고 빠른 메뉴에서 Set network at...을 선택
한다. 계속해서 Set network at selected iteration을 선택한다.

❸ 풀다운 메뉴에서 Tools → Score를 선택한다.

❹ Score output with current settings?에 Yes를 선택한다. 새로운 추정치에 의해서
재계산이 끝나면 OK를 선택하고 Neural Network 노드를 닫는다.
10
4. 사례분석
 로지스틱 회귀분석과의 비교
 분서흐름도의 변경

분석흐름도에 Regression, Control Point, Insight, Assessment 노드를 추가

❶ Regression 노드를 열고 Output 탭을 선택한다.

❷ Output 대화상자의 Scored Data Sets 탭을 선택한다.

❸ <그림 15-12>와 같이 Process or Score:의 Training, Validation, and Test 체크
박스(check box)를 선택한다.

❹ Regression 노드를 닫고 수행시킨다. 여기서 Regression 노드의 결과를 볼 필요
는 없다.

11
4. 사례분석
 로지스틱 회귀분석과의 비교
 Insight 노드의 수행

❶ Insight 노드를 연다.

❷ Data 대화상자에서 Select...를 선택한다.

❸ Import Map 윈도우에서 Regression 노드의 계산된 평가용 데이터(scored
validation data : Regression -> SAS_DATA_SETS -> DM_DATA.SVLDTQX4를 차
례로 클릭)를 선택한다. 계산된 평가용 데이터의 이름은 SV로 시작한다. 그리고는
OK를 선택한다.

❹ 풀다운 메뉴에서 Tools → Run Insight를 선택한다.

❺ Do you wish to view results?에 Yes를 선택한다.

❻ 풀다운 메뉴에서 Analyze → Rotating Plot(Z Y X)를 선택한다.

❼ <그림 15-13>과 같이 변수 P_RESPO1을 Y, AGE를 Z, INCOME를 X로 지정한다.

❽ <그림 15-13>에서 Output → At Minima를 선택하고, OK를 계속 선택한다. 이제
3차원 그래프가 보일 것이다.
12
4. 사례분석
 로지스틱 회귀분석과의 비교
 Insight 노드의 수행

Insight 노드는 이와 같이 데이터를 탐색적으로 분석하기 위한 노드이다. 다음과 같
은 과정을 통해서 그래프를 편집해 보기 바란다.

❶ 그래프의 외곽선을 클릭하고(이 때, 외곽선이 굵게 변한다) 마우스 끌기(dragging)
를 수행하여 그래프의 크기를 조절한다.

❷ 왼쪽 상단의 화살표들을 이용하여 그래프를 회전시킨다.

❸ 왼쪽 하단의 화살표를 선택한 다음, Marker Sizes를 선택하고 크기를 4로 선택한
다.

❹ 풀다운 메뉴에서 Edit → Windows → Tools를 선택한다.

❺ Tools 윈도우에서 임의의 색깔(예를 들면, 빨강색)을 선택한다.

❻ <그림 15-14>과 같이 P_RESPO1 → >= → 0.067 → OK를 선택한다.
13
4. 사례분석
 로지스틱 회귀분석과의 비교
 Insight 노드의 수행

이제 Insight 노드의 열려진 결과 윈도우들을 모두 닫고, Insight Setup 윈도우에서
Select...를 선택하여 Import Map 윈도우에서 Neural Network 노드의 계산된 평가용
데이터(scored validation data)를 선택

AGE가 INCOME에 비해서 적합표면에 영향을 많이 주고 있으며, AGE가 작을수록 추
정된 사후확률이 크다는 것을 쉽게 볼 수 있다. 이에 비해서 신경망분석의 결과는 훨
씬 더 복잡한 결과를 보여준다.

이제 열려져 있는 결과 윈도우들을 모두 닫고, 분석흐름도에서 Assessment 노드를
수행.

리프트도표는 평가용 데이터에 대해서 로지스틱 회귀모형이 훨씬 좋다는 것을 보여
준다. 즉, 적합된 신경망 모형은 분석용 데이터에 대해서 과적합 되었으며, 따라서 평
가용 데이터에 대해서는 제대로 작동되지 않는다는 것을 알 수 있다.
14
4. 사례분석
 로지스틱 회귀분석과의 비교
 훈련중지의 설정

훈련중지는 과적합 문제를 해결하기 위해 매우 효율적인 방법 중의 하나이다. 사용자
는 다음과 같은 과정을 거쳐서 훈련중지를 설정할 수 있다.

❶ Neural Network 결과 윈도우의 Plot 대화상자에서 그래프에 마우스 오른쪽 버튼
을 클릭하고 빠른 메뉴에서 Set network at...을 선택한다. 계속해서 Set network at
minimum iteration을 선택한다.

❸ 풀다운 메뉴에서 Tools → Score를 선택한다.

❹ Score output with current settings?에 Yes를 선택한다. 새로운 추정치에 의해서
재계산이 끝나면 OK를 선택하고 Neural Network 노드를 닫는다.

이 예에 대해서 훈련중지를 선택하고 앞에서와 같은 과정을 반복하여 Insight 노드와
Assessment 노드를 수행시키면, 신경망분석의 결과에 대해서 로지스틱 회귀분석의
결과와 유사한 결과를 얻을 수 있을 것이다.
15
4. 사례분석
 두 개의 은닉층을 갖는 MLP
 MLP 신경망은 여러 개의 은닉층을 가질 수 있다. 때로는 두 개 이상의 은닉층을
가지는 MLP가 한 개의 은닉층을 가지는 MLP에 비해서 예측의 정확성이 증가하
는 경우도 있으나, 모형이 보다 복잡해지고 과적합이나 비수렴성 같은 문제가 발
생하기 쉽다는 것을 주의해야 한다.
 Neural Network 노드에서 은닉층 또는 은닉마디를 추가하여 분석하고자 할 때는
다음과 같은 과정을 수행하면 된다.

❶ Neural Network 노드를 열고 General 탭을 선택한다. General 대화상자에서
Advanced user interface를 선택한다.

❷ Advanced 탭을 선택하고, Advanced 대화상자에서 Network 탭을 선택한다. 화
면에 나타나는 다이어그램의 은닉층 아래쪽에 아무데서나 마우스의 오른쪽 버튼을
클릭한 후 Add hidden layer를 선택한다.

❸ 추가된 은닉층 아이콘을 더블-클릭(double click)한다.

❹ Hidden 탭을 선택하고 Hidden 대화상자에서 은닉마디의 개수를 2로, 활성함수,
연결함수, 절편항(bias) 등에 대한 옵션을 설정하고 OK를 선택한다.
16
4. 사례분석
 두 개의 은닉층을 갖는 MLP

❺ Diagram에서 기존 은닉층과 출력층 사이의 연결선을 삭제한다. 화면에서 기존
은닉층(숫자 3)을 클릭하고(그러면 3 숫자밖에 네모박스가 쳐짐), 다음으로 이 은닉
층과 출력층을 잇는 연결선에 커서를 올려놓고 마우스 오른쪽 버튼을 클릭하여
delete를 선택하면 된다.

❻ 새로운 은닉층을 첫 번째 은닉층과 출력층에 연결한다.

❼ Diagram의 임의의 부분을 마우스 오른쪽 버튼으로 클릭하고 Redraw를 선택한다.
(이때 새로운 설정 변경에 맞추어 기존 설정에 일부변화가 일어난다.) Neural
Network 노드를 닫는다.

Neural Network 노드를 수행하고 앞에서와 같은 방법으로 Insight와 Assessment 노
드를 이용하여 결과를 살펴보기 바란다. 이 예에 대해서는 두 개의 은닉층을 가지는
MLP가 한 개의 은닉층을 가지는 MLP에 비해서 예측의 정확도가 좋아진다는 것을 알
수 있을 것이다.
17
4. 사례분석
 신경망 예측모형의 해석
 신경망분석의 단점 중의 하나는 얻어진 모형을 해석하기가 어렵다는 것이다. 이
러한 문제를 해결하는 한 가지 방법은 다른 형태의 비선형모형이라 할 수 있는
의사결정나무를 이용하여 신경망 예측모형에 대한 근사모형을 만들고 이를 통해
해석해 보는 것이다.

먼저 분석흐름도에 Transform Variables, Data Set Attribute 노드, Decision Tree 노
드를 추가하여 그림과 같은 분석흐름도를 작성.
18
4. 사례분석
 신경망 예측모형의 해석

❶ Transform Variables 노드를 열고 풀다운 메뉴에서 Actions → Create Variables
선택.

❷ Computed Column에서 Name 란에 DECISION을 입력. Define... 버튼을 선택.

❸ Customize 윈도우의 기능을 이용하여 함수정의영역(function definition area)에
P_RESPO1>0.065라고 입력한다. 이렇게 하면 P_RESPO1>0.065이면 1을, 그렇지
않으면 0을 가지는 변수 DECISION이 생성된다. 이 때 0.065는 신경망모형에 대한
평가를 통해서 예측모형의 절단값(cut-off value)으로 결정된 값이라고 하자.

❹ 새로운 변수 DECISION이 생성되었음을 확인하고 OK를 계속 선택하여
Transform Variables 노드를 닫는다.

❺ Data Set Attribute 노드를 열고 신경망분석에서 입력변수로 사용된 변수들(AGE,
INCOME)을 제외한 모든 변수의 New Model Role을 rejected로 지정한다.

❻ 변수 DECISION의 New Model Role을 target으로 지정하고, New Measurement
를 binary로 변경한다.
19
4. 사례분석
 신경망 예측모형의 해석

❼ Data Set Attribute 노드를 닫고 분석흐름도에서 Decision Tree 노드를 실행.

❽ Decision Tree 노드가 성공적으로 수행되었으면, Decision Tree 노드를 열고 결
과를 살펴보 바란다. 필요하다면 Tree Diagram 윈도우에서 Tools → Tree Options
를 선택하고 깊이(depth)를 6으로 지정하기 바란다.

이렇게 얻어진 의사결정나무는 신경망 예측모형에 대한 근사모형(approximation
model)이라고 할 수 있으며, 이 결과를 살펴봄으로써 신경망 예측모형을 부분적으로
나마 이해할 수 있을 것이다. 동일한 데이터에 대해서 의사결정나무분석을 따로 시행
하여 모형을 비교해 보는 것도 신경망 에측모형을 해석하는데 도움이 될 것이다.
20