1 / 21

신경망분석

신경망분석. 신경망의 구조와 개념 - MLP 신경망 사례분석. 기말고사. 홈페이지 - 과제관리 - 웹 마이닝 선택하여 학번 이름으로 올린다 . 본인의 학번 - 이름으로 된 한글파일에 아래의 결과를 print screen 하여 붙여서 함께 올린다 . 이 파워포인트 중 “ 사례분석 ” 부분을 실습하면 됩니다 . - 첫 파워포인트 자료참조함 . 실습에 사용되는 파일은 buytest 이며 사이버강의실에 있는 데이터 자료에 있음 . 1. 분석흐름도 – 이 문서의 5 페이지 참조

Download Presentation

신경망분석

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 신경망분석 신경망의 구조와 개념 - MLP 신경망 사례분석

  2. 기말고사 • 홈페이지 - 과제관리-웹 마이닝 선택하여 학번 이름으로 올린다. • 본인의 학번-이름으로 된 한글파일에 아래의 결과를 print screen하여 붙여서 함께 올린다. • 이 파워포인트 중 “사례분석”부분을 실습하면 됩니다. -첫 파워포인트 자료참조함. • 실습에 사용되는 파일은 buytest이며 사이버강의실에 있는 데이터 자료에 있음. 1. 분석흐름도 – 이 문서의 5페이지 참조 2. 인공신경망 결과물을 캡쳐해서 한글 파일에 붙임 • 19~20쪽까지 파워포인트를 실습하고 결과에 해당하는 것을 두화면 정도 캡쳐하면 됩니다. * SAS 의사결정 트리의 실습에 그 의미가 있습니다.

  3. 1. 신경망의 구조와 개념-MLP 신경망 • 개요 • 신경망 또는 인공신경망(artificial neural networks)에 관한 연구는 뇌 신경생리학(neurophysiology)으로부터 영감을 얻어 시작됨 • 자료분석 분야에서 신경망은 복잡한 구조를 가진 자료에서의 예측(prediction) 문제를 해결하기 위해서 사용되는 유연한 비선형모형(nonlinear models)의 하나로 분류 • 그러나 신경생리학과의 유사성 때문에 일반적으로 다른 통계적 예측모형에 비해 보다 흥미롭게 받아들여지고 있다. • 신경망은 은닉마디(hidden units)라고 불리는 독특한 구성요소에 의해서 일반적인 통계모형과 구별되어진다. • 은닉마디는 인간의 신경세포를 모형화한 것으로써, 각 은닉마디는 입력변수들의 결합(combination)을 수신하여 목표변수에 전달한다.이때 결합에 사용되는 계수(coefficient)들을 연결강도(synaptic weights)라고 부르며, 활성함수는 입력값을 변환하고 이를 입력으로 사용하는 다른 마디로 출력하게 된다.

  4. 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)에 대응하는 마디들을 갖는다.여러 개의 목표변수 또는 세 개 이상의 수준을 가지는 명목형 목표변수가 있을 경우에는 여러 개의 출력마디들이 존재한다.

  5. 1. 신경망의 구조와 개념-MLP 신경망 • 결합함수와 활성함수 • 입력층과 출력층 그리고 하나의 은닉층에 두 개의 은닉마디를 가지는 MLP의 구조를 수식으로 도식화하면 다음과 같다. • 결합함수(combination function) • 입력층 또는 은닉층의 마디들을 결합하는 형태를 의미 • 활성함수(activation function) • 입력변수 또는 은닉마디의 결합을 변환하는 함수를 의미 • 활성함수와 출력활성함수는 동일한 함수를 사용하는 것이 일반적이다.

  6. 4. 사례분석 • 한 개의 은닉층을 가지는 MLP • 분석흐름도의 작성과 각 노드의 설정 • Neural Network 노드에서는 디폴트로 한 개의 은닉층을 가지는 MLP를 이용하여 신경망분석을 수행하도록 되어 있다.

  7. 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 노드를 닫는다.

  8. 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 노드를 닫는다

  9. 4. 사례분석 • 한 개의 은닉층을 가지는 MLP • Neural Network 노드의 설정 • Neural Network 노드를 실행하면 Neural Network Monitor 윈도우를 통해서 신경망이 적합되어 가는 과정을 살펴볼 수 있다.여기서 목적함수의 값에 변화가 없으면 Stop을 누른 다음 Close를 누르면 iteration이 중단된다. • 적합과정이 끝난 후에 Results 윈도우에서 Output 탭을 선택하면 모수 추정치(parameter estimate)들을 살펴볼 수 있다.그러나 앞에서 설명한 바와 같이 이 추정치들을 해석하는 것은 결코 쉽지 않다. • Plot 탭을 선택하면 수치적 반복회수(iteration number)에 따라서 분석용과 평가용 데이터에 대한 오차함수(error function)값의 변화를 볼 수 있다.분석용 데이터에 대한 오차함수 값은 당연하게도 반복회수가 증가함에 따라서 감소하지만, 평가용 데이터에 대한 오차함수의 값은 어느 정도 감소하다가 다시 증가하고 있다. • E-Miner에서는 디폴트로 평가용 데이터의 오차함수 값이 최소가 되는 반복에서의 추정치를 선택한다.

  10. 4. 사례분석 • 로지스틱 회귀분석과의 비교 • 과적합과 훈련중지 • 의사결정나무나 신경망과 같은 비선형모형에 의한 분석에서는 과적합(overfiting) 문제가 발생하기 쉽다. • 과적합이란 분석용 데이터(training data)에 대해서 과도하게 적합됨으로써 평가용이나 검증용 데이터에 대해서는 잘 작동하지 않는 것을 의미 • 과적합된 모형은 예측의 일반성을 신뢰할 수 없기 때문에 새로운 데이터에 대한 예측모형으로 사용할 수 없다. • E-Miner의 Neural Network 노드에서는 과적합 문제를 해결하기 위한 한 방법으로 분석용 데이터에 의해서 추정된 계수들을 매 단계마다 평가용 데이터에 적용하여, 평가용 데이터에 대해서 가장 작은 오차함수값을 가지는 단계에서의 추정치를 최종 추정치로 결정하는데, 이를 훈련중지(stopped training)라 한다. • 이 절에서는 과적합된 신경망모형을 로지스틱 회귀모형과 비교하여 훈련중지가 필요한 이유를 설명할 것이다.

  11. 4. 사례분석 • 로지스틱 회귀분석과의 비교 • 반복회수에 따른 계수 추정치의 변경 • 사용자는 Results 윈도우의 Plot 대화상자에서 몇 번째 반복에서의 추정치를 최종 추정치를 할 것인지를 변경할 수 있다. • 다음과 같은 과정을 수행하여 분석용 데이터에서의 오차함수값을 최소로 하는 추정치를 최종 추정치로 선택해 보기 바란다. • ❶ Plot 대화상자에서 분석용(Train) 데이터에 대한 오차함수 선그래프의 마지막 반복에 해당되는 부분을 클릭한다.흰 수직선이 마지막 반복으로 이동할 것이다. • ❷ 그래프에 마우스 오른쪽 버튼을 클릭하고 빠른 메뉴에서 Set network at...을 선택한다.계속해서 Set network at selected iteration을 선택한다. • ❸ 풀다운 메뉴에서 Tools → Score를 선택한다. • ❹ Score output with current settings?에 Yes를 선택한다.새로운 추정치에 의해서 재계산이 끝나면 OK를 선택하고 Neural Network 노드를 닫는다.

  12. 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 노드의 결과를 볼 필요는 없다.

  13. 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차원 그래프가 보일 것이다.

  14. 4. 사례분석 • 로지스틱 회귀분석과의 비교 • Insight 노드의 수행 • Insight 노드는 이와 같이 데이터를 탐색적으로 분석하기 위한 노드이다.다음과 같은 과정을 통해서 그래프를 편집해 보기 바란다. • ❶ 그래프의 외곽선을 클릭하고(이 때, 외곽선이 굵게 변한다) 마우스 끌기(dragging)를 수행하여 그래프의 크기를 조절한다. • ❷ 왼쪽 상단의 화살표들을 이용하여 그래프를 회전시킨다. • ❸ 왼쪽 하단의 화살표를 선택한 다음, Marker Sizes를 선택하고 크기를 4로 선택한다. • ❹ 풀다운 메뉴에서 Edit → Windows → Tools를 선택한다. • ❺ Tools 윈도우에서 임의의 색깔(예를 들면, 빨강색)을 선택한다. • ❻ <그림 15-14>과 같이 P_RESPO1 → >= → 0.067 → OK를 선택한다.

  15. 4. 사례분석 • 로지스틱 회귀분석과의 비교 • Insight 노드의 수행 • 이제 Insight 노드의 열려진 결과 윈도우들을 모두 닫고, Insight Setup 윈도우에서 Select...를 선택하여 Import Map 윈도우에서 Neural Network 노드의 계산된 평가용 데이터(scored validation data)를 선택 • AGE가 INCOME에 비해서 적합표면에 영향을 많이 주고 있으며, AGE가 작을수록 추정된 사후확률이 크다는 것을 쉽게 볼 수 있다.이에 비해서 신경망분석의 결과는 훨씬 더 복잡한 결과를 보여준다. • 이제 열려져 있는 결과 윈도우들을 모두 닫고, 분석흐름도에서 Assessment 노드를 수행. • 리프트도표는 평가용 데이터에 대해서 로지스틱 회귀모형이 훨씬 좋다는 것을 보여준다.즉, 적합된 신경망 모형은 분석용 데이터에 대해서 과적합 되었으며, 따라서 평가용 데이터에 대해서는 제대로 작동되지 않는다는 것을 알 수 있다.

  16. 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 노드를 수행시키면, 신경망분석의 결과에 대해서 로지스틱 회귀분석의 결과와 유사한 결과를 얻을 수 있을 것이다.

  17. 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를 선택한다.

  18. 4. 사례분석 • 두 개의 은닉층을 갖는 MLP • ❺ Diagram에서 기존 은닉층과 출력층 사이의 연결선을 삭제한다.화면에서 기존 은닉층(숫자 3)을 클릭하고(그러면 3 숫자밖에 네모박스가 쳐짐), 다음으로 이 은닉층과 출력층을 잇는 연결선에 커서를 올려놓고 마우스 오른쪽 버튼을 클릭하여 delete를 선택하면 된다. • ❻ 새로운 은닉층을 첫 번째 은닉층과 출력층에 연결한다. • ❼ Diagram의 임의의 부분을 마우스 오른쪽 버튼으로 클릭하고 Redraw를 선택한다. (이때 새로운 설정 변경에 맞추어 기존 설정에 일부변화가 일어난다.) Neural Network 노드를 닫는다. • Neural Network 노드를 수행하고 앞에서와 같은 방법으로 Insight와 Assessment 노드를 이용하여 결과를 살펴보기 바란다.이 예에 대해서는 두 개의 은닉층을 가지는 MLP가 한 개의 은닉층을 가지는 MLP에 비해서 예측의 정확도가 좋아진다는 것을 알 수 있을 것이다.

  19. 4. 사례분석 • 신경망 예측모형의 해석 • 신경망분석의 단점 중의 하나는 얻어진 모형을 해석하기가 어렵다는 것이다.이러한 문제를 해결하는 한 가지 방법은 다른 형태의 비선형모형이라 할 수 있는 의사결정나무를 이용하여 신경망 예측모형에 대한 근사모형을 만들고 이를 통해 해석해 보는 것이다. • 먼저 분석흐름도에 Transform Variables, Data Set Attribute 노드, Decision Tree 노드를 추가하여 그림과 같은 분석흐름도를 작성.

  20. 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로 변경한다.

  21. 4. 사례분석 • 신경망 예측모형의 해석 • ❼ Data Set Attribute 노드를 닫고 분석흐름도에서 Decision Tree 노드를 실행. • ❽ Decision Tree 노드가 성공적으로 수행되었으면, Decision Tree 노드를 열고 결과를 살펴보 바란다.필요하다면 Tree Diagram 윈도우에서 Tools → Tree Options를 선택하고 깊이(depth)를 6으로 지정하기 바란다. • 이렇게 얻어진 의사결정나무는 신경망 예측모형에 대한 근사모형(approximation model)이라고 할 수 있으며, 이 결과를 살펴봄으로써 신경망 예측모형을 부분적으로나마 이해할 수 있을 것이다.동일한 데이터에 대해서 의사결정나무분석을 따로 시행하여 모형을 비교해 보는 것도 신경망 에측모형을 해석하는데 도움이 될 것이다.

More Related