210 likes | 904 Views
신경망분석. 신경망의 구조와 개념 - MLP 신경망 사례분석. 기말고사. 홈페이지 - 과제관리 - 웹 마이닝 선택하여 학번 이름으로 올린다 . 본인의 학번 - 이름으로 된 한글파일에 아래의 결과를 print screen 하여 붙여서 함께 올린다 . 이 파워포인트 중 “ 사례분석 ” 부분을 실습하면 됩니다 . - 첫 파워포인트 자료참조함 . 실습에 사용되는 파일은 buytest 이며 사이버강의실에 있는 데이터 자료에 있음 . 1. 분석흐름도 – 이 문서의 5 페이지 참조
E N D
신경망분석 신경망의 구조와 개념 - MLP 신경망 사례분석
기말고사 • 홈페이지 - 과제관리-웹 마이닝 선택하여 학번 이름으로 올린다. • 본인의 학번-이름으로 된 한글파일에 아래의 결과를 print screen하여 붙여서 함께 올린다. • 이 파워포인트 중 “사례분석”부분을 실습하면 됩니다. -첫 파워포인트 자료참조함. • 실습에 사용되는 파일은 buytest이며 사이버강의실에 있는 데이터 자료에 있음. 1. 분석흐름도 – 이 문서의 5페이지 참조 2. 인공신경망 결과물을 캡쳐해서 한글 파일에 붙임 • 19~20쪽까지 파워포인트를 실습하고 결과에 해당하는 것을 두화면 정도 캡쳐하면 됩니다. * SAS 의사결정 트리의 실습에 그 의미가 있습니다.
1. 신경망의 구조와 개념-MLP 신경망 • 개요 • 신경망 또는 인공신경망(artificial neural networks)에 관한 연구는 뇌 신경생리학(neurophysiology)으로부터 영감을 얻어 시작됨 • 자료분석 분야에서 신경망은 복잡한 구조를 가진 자료에서의 예측(prediction) 문제를 해결하기 위해서 사용되는 유연한 비선형모형(nonlinear models)의 하나로 분류 • 그러나 신경생리학과의 유사성 때문에 일반적으로 다른 통계적 예측모형에 비해 보다 흥미롭게 받아들여지고 있다. • 신경망은 은닉마디(hidden units)라고 불리는 독특한 구성요소에 의해서 일반적인 통계모형과 구별되어진다. • 은닉마디는 인간의 신경세포를 모형화한 것으로써, 각 은닉마디는 입력변수들의 결합(combination)을 수신하여 목표변수에 전달한다.이때 결합에 사용되는 계수(coefficient)들을 연결강도(synaptic weights)라고 부르며, 활성함수는 입력값을 변환하고 이를 입력으로 사용하는 다른 마디로 출력하게 된다.
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)에 대응하는 마디들을 갖는다.여러 개의 목표변수 또는 세 개 이상의 수준을 가지는 명목형 목표변수가 있을 경우에는 여러 개의 출력마디들이 존재한다.
1. 신경망의 구조와 개념-MLP 신경망 • 결합함수와 활성함수 • 입력층과 출력층 그리고 하나의 은닉층에 두 개의 은닉마디를 가지는 MLP의 구조를 수식으로 도식화하면 다음과 같다. • 결합함수(combination function) • 입력층 또는 은닉층의 마디들을 결합하는 형태를 의미 • 활성함수(activation function) • 입력변수 또는 은닉마디의 결합을 변환하는 함수를 의미 • 활성함수와 출력활성함수는 동일한 함수를 사용하는 것이 일반적이다.
4. 사례분석 • 한 개의 은닉층을 가지는 MLP • 분석흐름도의 작성과 각 노드의 설정 • Neural Network 노드에서는 디폴트로 한 개의 은닉층을 가지는 MLP를 이용하여 신경망분석을 수행하도록 되어 있다.
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 노드를 닫는다.
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 노드를 닫는다
4. 사례분석 • 한 개의 은닉층을 가지는 MLP • Neural Network 노드의 설정 • Neural Network 노드를 실행하면 Neural Network Monitor 윈도우를 통해서 신경망이 적합되어 가는 과정을 살펴볼 수 있다.여기서 목적함수의 값에 변화가 없으면 Stop을 누른 다음 Close를 누르면 iteration이 중단된다. • 적합과정이 끝난 후에 Results 윈도우에서 Output 탭을 선택하면 모수 추정치(parameter estimate)들을 살펴볼 수 있다.그러나 앞에서 설명한 바와 같이 이 추정치들을 해석하는 것은 결코 쉽지 않다. • Plot 탭을 선택하면 수치적 반복회수(iteration number)에 따라서 분석용과 평가용 데이터에 대한 오차함수(error function)값의 변화를 볼 수 있다.분석용 데이터에 대한 오차함수 값은 당연하게도 반복회수가 증가함에 따라서 감소하지만, 평가용 데이터에 대한 오차함수의 값은 어느 정도 감소하다가 다시 증가하고 있다. • E-Miner에서는 디폴트로 평가용 데이터의 오차함수 값이 최소가 되는 반복에서의 추정치를 선택한다.
4. 사례분석 • 로지스틱 회귀분석과의 비교 • 과적합과 훈련중지 • 의사결정나무나 신경망과 같은 비선형모형에 의한 분석에서는 과적합(overfiting) 문제가 발생하기 쉽다. • 과적합이란 분석용 데이터(training data)에 대해서 과도하게 적합됨으로써 평가용이나 검증용 데이터에 대해서는 잘 작동하지 않는 것을 의미 • 과적합된 모형은 예측의 일반성을 신뢰할 수 없기 때문에 새로운 데이터에 대한 예측모형으로 사용할 수 없다. • E-Miner의 Neural Network 노드에서는 과적합 문제를 해결하기 위한 한 방법으로 분석용 데이터에 의해서 추정된 계수들을 매 단계마다 평가용 데이터에 적용하여, 평가용 데이터에 대해서 가장 작은 오차함수값을 가지는 단계에서의 추정치를 최종 추정치로 결정하는데, 이를 훈련중지(stopped training)라 한다. • 이 절에서는 과적합된 신경망모형을 로지스틱 회귀모형과 비교하여 훈련중지가 필요한 이유를 설명할 것이다.
4. 사례분석 • 로지스틱 회귀분석과의 비교 • 반복회수에 따른 계수 추정치의 변경 • 사용자는 Results 윈도우의 Plot 대화상자에서 몇 번째 반복에서의 추정치를 최종 추정치를 할 것인지를 변경할 수 있다. • 다음과 같은 과정을 수행하여 분석용 데이터에서의 오차함수값을 최소로 하는 추정치를 최종 추정치로 선택해 보기 바란다. • ❶ Plot 대화상자에서 분석용(Train) 데이터에 대한 오차함수 선그래프의 마지막 반복에 해당되는 부분을 클릭한다.흰 수직선이 마지막 반복으로 이동할 것이다. • ❷ 그래프에 마우스 오른쪽 버튼을 클릭하고 빠른 메뉴에서 Set network at...을 선택한다.계속해서 Set network at selected iteration을 선택한다. • ❸ 풀다운 메뉴에서 Tools → Score를 선택한다. • ❹ Score output with current settings?에 Yes를 선택한다.새로운 추정치에 의해서 재계산이 끝나면 OK를 선택하고 Neural Network 노드를 닫는다.
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 노드의 결과를 볼 필요는 없다.
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차원 그래프가 보일 것이다.
4. 사례분석 • 로지스틱 회귀분석과의 비교 • Insight 노드의 수행 • Insight 노드는 이와 같이 데이터를 탐색적으로 분석하기 위한 노드이다.다음과 같은 과정을 통해서 그래프를 편집해 보기 바란다. • ❶ 그래프의 외곽선을 클릭하고(이 때, 외곽선이 굵게 변한다) 마우스 끌기(dragging)를 수행하여 그래프의 크기를 조절한다. • ❷ 왼쪽 상단의 화살표들을 이용하여 그래프를 회전시킨다. • ❸ 왼쪽 하단의 화살표를 선택한 다음, Marker Sizes를 선택하고 크기를 4로 선택한다. • ❹ 풀다운 메뉴에서 Edit → Windows → Tools를 선택한다. • ❺ Tools 윈도우에서 임의의 색깔(예를 들면, 빨강색)을 선택한다. • ❻ <그림 15-14>과 같이 P_RESPO1 → >= → 0.067 → OK를 선택한다.
4. 사례분석 • 로지스틱 회귀분석과의 비교 • Insight 노드의 수행 • 이제 Insight 노드의 열려진 결과 윈도우들을 모두 닫고, Insight Setup 윈도우에서 Select...를 선택하여 Import Map 윈도우에서 Neural Network 노드의 계산된 평가용 데이터(scored validation data)를 선택 • AGE가 INCOME에 비해서 적합표면에 영향을 많이 주고 있으며, AGE가 작을수록 추정된 사후확률이 크다는 것을 쉽게 볼 수 있다.이에 비해서 신경망분석의 결과는 훨씬 더 복잡한 결과를 보여준다. • 이제 열려져 있는 결과 윈도우들을 모두 닫고, 분석흐름도에서 Assessment 노드를 수행. • 리프트도표는 평가용 데이터에 대해서 로지스틱 회귀모형이 훨씬 좋다는 것을 보여준다.즉, 적합된 신경망 모형은 분석용 데이터에 대해서 과적합 되었으며, 따라서 평가용 데이터에 대해서는 제대로 작동되지 않는다는 것을 알 수 있다.
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 노드를 수행시키면, 신경망분석의 결과에 대해서 로지스틱 회귀분석의 결과와 유사한 결과를 얻을 수 있을 것이다.
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를 선택한다.
4. 사례분석 • 두 개의 은닉층을 갖는 MLP • ❺ Diagram에서 기존 은닉층과 출력층 사이의 연결선을 삭제한다.화면에서 기존 은닉층(숫자 3)을 클릭하고(그러면 3 숫자밖에 네모박스가 쳐짐), 다음으로 이 은닉층과 출력층을 잇는 연결선에 커서를 올려놓고 마우스 오른쪽 버튼을 클릭하여 delete를 선택하면 된다. • ❻ 새로운 은닉층을 첫 번째 은닉층과 출력층에 연결한다. • ❼ Diagram의 임의의 부분을 마우스 오른쪽 버튼으로 클릭하고 Redraw를 선택한다. (이때 새로운 설정 변경에 맞추어 기존 설정에 일부변화가 일어난다.) Neural Network 노드를 닫는다. • Neural Network 노드를 수행하고 앞에서와 같은 방법으로 Insight와 Assessment 노드를 이용하여 결과를 살펴보기 바란다.이 예에 대해서는 두 개의 은닉층을 가지는 MLP가 한 개의 은닉층을 가지는 MLP에 비해서 예측의 정확도가 좋아진다는 것을 알 수 있을 것이다.
4. 사례분석 • 신경망 예측모형의 해석 • 신경망분석의 단점 중의 하나는 얻어진 모형을 해석하기가 어렵다는 것이다.이러한 문제를 해결하는 한 가지 방법은 다른 형태의 비선형모형이라 할 수 있는 의사결정나무를 이용하여 신경망 예측모형에 대한 근사모형을 만들고 이를 통해 해석해 보는 것이다. • 먼저 분석흐름도에 Transform Variables, Data Set Attribute 노드, Decision Tree 노드를 추가하여 그림과 같은 분석흐름도를 작성.
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로 변경한다.
4. 사례분석 • 신경망 예측모형의 해석 • ❼ Data Set Attribute 노드를 닫고 분석흐름도에서 Decision Tree 노드를 실행. • ❽ Decision Tree 노드가 성공적으로 수행되었으면, Decision Tree 노드를 열고 결과를 살펴보 바란다.필요하다면 Tree Diagram 윈도우에서 Tools → Tree Options를 선택하고 깊이(depth)를 6으로 지정하기 바란다. • 이렇게 얻어진 의사결정나무는 신경망 예측모형에 대한 근사모형(approximation model)이라고 할 수 있으며, 이 결과를 살펴봄으로써 신경망 예측모형을 부분적으로나마 이해할 수 있을 것이다.동일한 데이터에 대해서 의사결정나무분석을 따로 시행하여 모형을 비교해 보는 것도 신경망 에측모형을 해석하는데 도움이 될 것이다.