홈 > SAS Tech & Tip > SAS Enterprise Miner 
 [ EM ] Neural Network ( Activation Function ) 2017 . 10 . 25 
 장인호 1599 0 
 [ SAS E - miner 활용 하 기 ] 
 이번 연재 에서 는 신경망 ( Neural Network ) 에서 사용 되 는 활성 함수 ( Activation Function ) 의 종류 와 역할 에 대해서 자세히 알아보 고 실제 데이터 를 활용 하 여 SAS E - miner 신경망 노드 의 속성 패널 에서 여러 활성 함수 를 설정 해 보 며 결과 를 비교 해 보 겠 습니다 . 
 신경망 에서 사용 되 는 함수 는 크 게 3 가지 가 있 습니다 . 
 결합 함수 ( Combination Function ) 
 활성 함수 ( Activation Function ) 
 오차 함수 ( Error Function ) 
 신경망 에서 각 위 3 가지 함수 가 하 는 역할 을 간단 하 게 살펴보 고 활성 함수 에 대해 조금 더 자세히 알아보 겠 습니다 . 
 그림 1 . 신경망 
 위 그림 과 수식 을 살펴보 면 , 입력 층 ( Input Layer ) 의 값 들 을 결합 함수 ( Combination Function ) 가 선형결합 ( Linear Combination ) 을 한 뒤 1 번 위치 에서 그 값 들 을 다시 활성 함수 가 비 선형결합 ( Nonlinear Combination ) 을 하 는 과정 을 통해 은닉 층 ( Hidden Layer ) 에 도달 하 고 2 번 위치 에서 앞 의 과정 을 다시 한 번 은닉 층 으로부터 반복 하 여 출력 층 ( Target Layer ) 으로 결과 값 을 도출 하 게 됩니다 . 해당 결과 값 을 실제 값 과 비교 하 여 오 차 함수 ( Error Function ) 를 통해 오차 를 계산 하 고 역전 파 ( Backpropagation ) 을 통해 가중치 값 들 을 갱신 하 는 과정 을 일정 수준 이하 에 도달 할 때 까지 반복 하 게 됩니다 . 
 활성 함 수 는 결합 함수 가 입력 층 또는 은닉 층 의 값 들 을 선형결합 을 한 값 들 에 대해 다시 비 선형결합 ( 보통 S 모양 의 Sigmoidal ) 하 여 은닉 층 또는 출력 층 으로 결과 값 들 을 내보내 는 함수 입니다 . 비 선형 함수 를 사용 하 기 때문 에 최적 의 계수 를 추정 하 는 과정 에 는 수치 해석 적 인 반복 적 최적화 방법 ( Iterative Method for Optimization ) 을 사용 하 게 되 는데 로지스틱 회귀 에서 는 계수 에 대한 해석 이 쉽 고 명확 한 것 과 는 달리 신경망 에서 는 계수 에 대한 설명 과 해석 이 어렵 다는 단점 의 근본 적 인 원인 이 됩니다 . 이러 한 사실 때문 에 “ 블랙박스 ” 라는 수식어 가 따라다니 기 도 합니다 . 
 그림 2 . 신경망 속성 패널 
 SAS E - miner 에서 Activation Function 에 대한 설정 을 하 려면 신경망 노드 의 " 속성 패널 " 에서 신경망 ( Network ) 탭 오른쪽 에 위치 한 . .. 버튼 을 클릭 하 면 다음 과 같 은 창 이 열립니다 . 
 그림 3 . 신경망 활성 함수 설정 변경 창 
 E - miner 에서 는 신경망 의 구조 ( Architecture ) 중 MLP ( Multi - layer Perceptron ) 을 Default 로 사용 하 기 때문 에 은닉 층 에 대한 활성 함 수 는 Grayed - out 되 어 있 습니다 . 그 이유 는 MLP 에서 대부분 의 경우 에 높 은 Performance 를 보이 는 함수 ( Combination Function : Linear , Activation Function : Tanh ) 를 사용 하 기 때문 입니다 . 분석 의 목적 에 따라 또는 신경망 에 대한 높 은 이해도 를 가지 고 있 다면 구조 탭 에서 “ 사용자 정의 ” 를 선택 하 여 여러 설정 들 을 자유 롭 게 변경 하 면서 진행 하 면 되 겠 습니다 . 이번 연재 에서 는 MLP 구조 안 에서 변경 가능 한 Target Layer Activation Function 에 대해 자세히 알아보 겠 습니다 . 
 ( Multinomial logistic ) 
 표 1 . SAS E - miner 에서 사용 가능 한 활성 함수 들 의 범위 와 함수 식 
 표 2 . 신경망 의 타 겟 변수 의 종류 에 따른 Default 활성 함수 
 SAS E - miner 에서 는 같이 사용 되 는 결합 함수 에 따라 그리고 타 겟 변수 의 분포 와 종류 에 따라서 각기 다른 활성 함수 를 Default 값 으로 사용 하 고 있 습니다 . Default 값 이 대부분 의 경우 에 좋 은 Performance 를 보이 지만 , 타 겟 변수 의 분포 에 적절 하 면서 Default 값 보다 Performance 가 더 좋 다면 분석가 의 목적 에 따라 다른 활성 함수 를 사용 할 수 있 습니다 . 
 [ DATA DESCRIBTION ] 
 이제 부터 실제 데이터 에 적용 하 여 Default 보다 더 나 은 활성 함수 가 있 을지 알아보 겠 습니다 . 이번 연재 에서 사용 할 “ BUYTEST ” 데이터 는 24 개월 동안 제품 을 60 $ 이상 구매 한 10 , 000 명 에게 DM ( Direct Mailing ) 을 발송 하 고 그 에 따른 응답 여부 등 의 데이터 들 로 구성 되 어 있 습니다 . DM 에 응답 할 가능 성 이 높 은 고객 에게 발송 하 여 응답 률 을 높이 고 발송 비용 을 최소 화 하 는 것 이 목적 입니다 . 
 인구 속성 
 나이 ( 년 ) 
 년 수입 ( 단위 : 천 달러 ) 
 1 : 결혼 , 0 : 미혼 
 F : 여자 , M : 남자 
 6 개월 간 의 주소 변경 여부 ( 1 : 주소 변경 , 0 ) 
 집 의 소유 여부 ( 1 : 소유 , 0 ) 
 지역 속성 
 거주 지 , A - H 
 거주지 의 기온 ( 10 , 20 , 30 ) 
 거래 회수 
 최근 6 개월 간 의 구입 회수 
 최근 12 개월 간 의 구입 회수 
 최근 18 개월 간 의 구입 회수 
 지난 24 개월 간 의 구입 총액 
 거래 속성 
 고객 분류 ( C , D , I , O , P , R , U ) 
 DISCBUY 
 할인 고객 여부 ( 1 : 할인 고객 , 0 ) 
 지난 24 개월 간 상품 의 반품 여부 ( 1 : 반응 , 0 ) 
 DM 에 대한 반응 여부 ( 1 : 반응 , 0 ) 
 PURCHTOT 
 DM 에 의한 구입 총액 
 DM 에 의한 품목 별 구입 액 
 표 3 . BUYTEST 데이터 셋 설명 
 그림 5 . 변수 편집 
 그림 6 . RESPOND 변수 분포 
 Target Variable 인 RESPOND 는 범주 별 빈도 가 상이 한 계급 불 균형 자료 ( Imbalanced Data ) 입니다 . 따라서 모델 을 비교 할 시 에 단순히 오 분 류 율 로 판단 하 기 보다 는 계급 불 균형 을 어느 정도 해소 한 뒤 민감 도 ( Sensitivity ) 와 특이 도 ( Specificity ) , ROC 와 AUC 등 을 확인 하 여 최종 적 으로 모델 을 선정 및 분석 을 진행 하 는 것 이 가장 바람직 합니다 . 
 그림 6 . 요약 통계량 과 데이터 전처리 방향 설정 
 연속 형 변수 들 의 경우 심하 진 않 지만 분포 왜곡 이 존재 하 고 결 측 값 도 존재 합니다 . 또한 범주 형 의 경우 결 측 값 에 대한 적절 한 처리 가 필요 해 보 입니다 . 따라서 E - miner 에서 제공 하 는 결 측 값 처리 노드 ( Impute ) 와 변수 변환 ( Transform Variables ) 노드 의 평균값 대체 , 로그 변환 등 을 사용 하 여 결 측 값 과 분포 왜곡 을 해소 시켜 주 어야 합니다 . 
 [ PREDICTIVE MODELING ] 
 앞서 살펴보 았 듯이 분포 왜곡 과 결 측 값 에 대해 해당 하 는 결 측 값 처리 , 변수 변환 노드 와 세부 옵션 을 설정 하 여 처리 해 주 었 습니다 . 그리고 데이터 분할 은 학습 용 ( Training ） 70 , 평가 용 ( Validation ) 30 으로 분할 하 였 습니다 . 그 다음 으로 는 이 데이터 에 모델 을 적합 할 때 가장 중요 한 개념 인 계급 불 균형 ( Imbalanced Date ) 을 해소 하 기 위해 Over - Sampling 기법 을 적용 하 였 습니다 . 이 에 대한 내용 은 이전 연재 에서 굉장히 자세 하 게 설명 되 어 있 으니 해당 연재 를 참고 하 시 기 바랍니다 . 
 그림 7 . 활성 함 수별 최적 은닉 마디 수 탐색 
 그림 8 . 각 활성 함 수 별 최적 의 은닉 마디 값 을 적용 하 여 모델 비교 
 그림 7 , 그림 8 의 Diagram 을 이용 하 여 각 활성 함수 마다 최적 의 은닉 마디 수 를 탐색 , 적용 하 여 각 활성 함수 별 신경망 모델 을 비교 해 보 았 습니다 . 먼저 Reciprocal 함수 의 경우 연속 형 변수 로 만 구성 도 해 보 는 등 여러 시도 를 해 보 았 지만 알 수 없 는 이유 로 오류 가 반복 되 어 제외 하 였 습니다 . 
 최적 의 은닉 마디 수와 활성 함 수별 모델 을 비교 할 시 에 주의 해야 할 점 이 있 습니다 . 그림 9 처럼 오 분 류 율 은 7 퍼센트 남짓 이 지만 소수 계급 인 1 을 모두 분류 하 지 못하 였 기 에 오 분 류 율 이 작 게 나온 것 입니다 . 그러므로 오 분 류 율 뿐 만 아니 라 민감 도 , 특이 도 , ROC , AUC 값 들 을 함께 확인 하 여 최종 적 으로 모델 을 선정 해야 합니다 . 
 [ GOODNESS OF FIT ] 
 ( 은닉 마디 수 ) 
 ( 민감 도 ) 
 ( 특이 도 ) 
 ( 오 분 류 율 ) 
 0 . 808696 
 0 . 741086 
 0 . 258914 
 0 . 656522 
 0 . 422952 
 0 . 559147 
 0 . 440853 
 0 . 943478 
 0 . 756045 
 0 . 722426 
 0 . 479971 
 0 . 502166 
 0 . 497834 
 0 . 923359 
 0 . 486828 
 0 . 995652 
 0 . 665217 
 0 . 453627 
 0 . 919693 
 0 . 077308 
 0 . 922692 
 표 4 . 활성 함 수별 결과 지표 비교표 
 그림 9 . ROC CURVE 
 그림 10 . ROC 값 
 표 4 에서 볼 수 있 듯이 각 활성 함 수 별 최적 의 은닉 마디 수 를 설정 하 여 모델 비교 노드 의 결과 를 정리 해 보 았 습니다 . 민감 도 와 특이 도 , ROC 곡선 까지 전체 적 으로 보 았 을 때 그 결과 Mlogistic , Softmax 활성 함수 를 사용 한 모델 이 가장 나 은 Performance 를 보였 습니다 . 오 분류 율 또는 정 분류 율 만 보 았 을 때 는 Performance 가 떨어지 는 모델 이 분명 하 지만 계급 불 균형 데이터 에서 는 표 4 의 결과 처럼 민감 도 와 특이 도 그리고 그림 9 , 그림 10 의 결과 와 같이 ROC 곡선 을 보 고 판단 해야 합니다 . 따라서 Nominal 타 겟 변수 에 대한 Default 값 인 Mlogistic 을 다른 활성 함수 들 과 비교 해 보 며 최종 모델 로 선정 할 수 있 을 것 입니다 . 
 이번 연재 에서 는 신경망 의 활성 함수 에 대해 알아보 았 고 여러 활성 함수 를 각각 적용 한 신경망 모델 을 데이터 에 적합 및 비교 해 보 았 습니다 . 타 겟 변수 의 분포 와 종류 에 따라 다른 활성 함수 를 사용 해야 함 을 알 수 있 었 고 실제 데이터 를 적용 하 여 범주 형 타 겟 변수일 때 사용 하 는 활성 함수 의 Default 값 과 일치 하 는 결과 인 Mlogistic 을 최종 모델 의 활성 함수 로 선정 할 수 있 었 습니다 . 최근 의 연구 에서 는 ReLu , Leaky ReLu , Maxout 등 더 좋 은 성능 을 보인다고 알려진 활성 함수 가 계속 해서 나오 고 있 는데 어떤 활성 함 수 가 꼭 정답 만 은 아닙니다 . 수없이 반복 비교 해 가 면서 조금 이 라도 더 나 은 , 좋 은 방법 , 해법 을 찾아가 는 과정 이 라 생각 하 면서 이번 연재 마치 도록 하 겠 습니다 . 
 [ 1 ] https : / / blogs . sas . com / content / sastraining / 2014 / 02 / 20 / lets - shed - some - light - on - the - black - box - containing - neural - net - model - weights / 
 [ 2 ] Randall Matignon . Neural Network Modeling using SAS Enterprise Miner . AuthorHouse , 2005 
 [ 3 ] Randall Matignon . Data Mining Using SAS Enterprise Miner . John Wiley & Sons , 2007 
 [ 4 ] 빅 데이터 분석 을 위한 데이터 마이닝 방법 론 / 강현철 외 5 명 / 자유 아카데미 / 2014 년 3 월 5 일