신경망분석 신경망의 구조와 개념 - 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