티스토리 뷰

BigData/R

인공신경망

Y.일월 2019. 10. 18. 11:52

기계학습(Machine Learning)유형

-      인공신경망 기법이 가장 대표적

-      Supervised Learning과 Unsupervised Learning으로 나누어짐




인공신경망

- 알파고가 사용한 기법

- 사람의 신경세포를 본따 만듬.

- 데이터를 통한 학습과정을 통해 일반화된 패턴을 찾아내서, 예측, 분류 등 의사결정 문제를 해결하는데 적용할 수 있는 기법

- 독립변수와 종속변수 간 결합관계(=가중치)를 추출하여 모형을 구축

   - Supervised Learning (종속변수가 이미 정해져 있는 데이터를 이용하여 학습 하기 때문)





인공 신경망의 구조




-      은닉층이 존재한다는 것이 인공신경망 구조의 가장 큰 특징

-      , 바로 입력층과 출력층이 연결되어 있지 않다. (회귀분석과의 차이)

-      입력층에는 독립변수들이 들어가고, 출력층에서 종속변수가 도출된다.






Node의 구조



- Parallel Processing의 구조

- Summation Function :  ∑ 독립 변수값 * 가중치(w1, w2, w3 ...)

- Transfer Functions : Summation Function 의 output 값을 다른 node로 넘겨줌.



은닉층에 존재하는 Hidden Node들의 weight값은 전부 다르다.

일반적으로 독립변수와 종속변수 개수를 더한 값을 n이라고 두었을 때, Hidden Node의 개수는 2n+1개 이내 있을 때 최적이다.

(Hidden Node가 많아질수록, 값의 예측은 정교해 지지만, 계산해야 할 weight가 많으므로 복잡해짐)







EX : 부도예측 모형


종속변수 : 부도 날 경우, : 1  / 부도 안날 경우: 0

독립변수 : 부채 비율, 자기자본 비율, 경상 이율


실제로 부도가 났던 기업 데이터와 부도 나지 않았던 기업 데이터로 학습.

è  부도난 데이터를 집어넣음 -> (weight를 곱한 후, summation -> transfer out) 반복 -> desired output = 0 이 나와야함.

è  0이 나오지 않을 경우, weight 수정


(부도예측 모형에서 주어졌던 데이터는 부도가 났었는지, 나지 않았었는지에 대한 종속변수값을 가지고 있었으므로 Supervised Learning 기법)







기계 학습 (인공신경망 모델링)의 예



-      Threshold = 0.5 모델  (, 계산값이 0.5가 넘으면 1로 인식하겠다.)

-      Difference는 계산값과 데이터의 종속변수값이 일치하면 0, 일치하지 않으면 1

-      Weight의 결정은 기계 내부에서 계산에 의해 자동적으로 결정됨

-      독립변수1 * weight1 + 독립변수2 * weight2 = 계산값

-      Difference1일 경우, weight를 다시 결정

-      초기 WeightRandom







인공신경망의 학습



적절한 Weight를 찾는 것 -> 그것이 바로 인공신경망이다!!!!

적절한 Weight를 찾은 후에는 아무리 Weight를 바꾸어도 더 이상 오차율이 줄지 않는 순간에 도달한다. -> 그 때, stop!

그 때의 Weight Set이 최종 인공신경망 모형이다.

Weight Set을 가진 인공신경망 모형에 알아보고자 하는 데이터를 넣어 분석하는 것이 인공신경망 분석이다.

 






Ex : ) 부도예측 모형에서의 인공신경망 구조










학습 전과 학습 후의 인공신경망 구조 차이 



Training 후에는 데이터에 맞는 인공신경망 모델이 만들어 지는 것을 확인 할 수 있다.







다중 회귀 분석 vs 인공신경망


 

-      다중 회귀 분석은 x값이 높아지면 y값도 점점 선형으로 증가하는 구조.

-      인공신경망 분석은 다른 값들에 의해 영향을 받기 때문에 x값이 높아진다고 y값이 선형적으로 증가하는 구조는 아님 -> 상당히 비선형적 특성을 가짐

-      인공신경망 분석은 데이터가 더욱 복잡한 분야를 모델링 할 때 유리하다.

-      하지만, weight를 일반화시키는데 들어가는 데이터의 양과 계산양이 많다. 또한, 언제 계산을 stop해야할지, weight set의 결정시기를 고려해야 하기 때문에 복잡한 모델이다






모형 구축과 데이터 set


인공신경망을 모델링 할 때, , weight를 결정할 때 모든 데이터를 넣는 것은 바람직하지 않다.

모든 데이터를 전부 넣을 경우, 해당 데이터에 너무 잘 갖추어져 있는 모델이 만들어지기 때문이다.

, 일반적인 모델이 아니라, 해당 상황에만 맞는 모델이 만들어진다는 것이다. (과적합)

그러므로, 데이터를 7:3으로 쪼개서, 70%의 데이터(Training Data)로만 인공신경망을 모델링 한다.

그 후, 나머지 30%의 데이터(Test Data)를 넣어 인공신경망 모델을 Test하는 것이다.







인공신경망 모델의 중요 고려 요소


1.     Convergence

-      Training 데이터의 오차율이 줄어들어야 한다.


2.     Generalization

-      학습용 샘플의 에러가 줄어야 한다.

-      , sample에 대한 적중률이 좋아야 한다.


3.     Stability

 -  최소한의 내용을 바꿨을 때 (샘플링을 바꾸거나 조건을 조금 바꿨을 경우) 에도 어느정도의 적중률과 오차율을 보장해야 한다.








인공신경망 기법의 장단점


장점


1.     입력변수와 결과 변수가 연속형이나 이산형인 경우, 모두 처리 가능 -> 다양한 분야에 적용 가능


2.     입력변수와 결과변수의 관계를 정의하기 어렵고, 복잡한 데이터에 대해서도 좋은 결과 가능

l  선형회귀 같은 기법은 독립변수 값이 커지면, 선형적인 관계로 종속변수 값이 증가하는 반면, 인공신경망은 hidden Node를 통해 변수들이 변형되고 합쳐지고 또 전이 된다. , 독립변수와 종속변수와의 관계가 딱 선형일 때 뿐 아니라, 비선형적으로 표현할 수 있다.

l  입력변수하고 종속변수가 정확하게 이게 커지면 이게 무조건 커져이런식으로 간단하게 정의하기 어려운 경우, 많이 사용예측력 우수

 

3.     예측력 우수


4.     견고하고 안정적

 


단점


1.     최적의 모형을 도출하는 것이 상대적으로 어려움.

l  Weight set을 정할 시기 예측이 어렵다

.

2.     도출된 결과, , 입출력 변수의 연관관계에 대한 설명이 어려움.

l  회귀분석은 독립변수의 영향력이 한눈에 보인다. -> 가중치와 항목이 분명

l  인공신경망은 히든 레이어에서의 자동 분석과 계산 때문에 독립변수와 종속변수의 관계 설명이 분명하게 보이지 않는다.

l  신용평가 시장 같은 경우, 종속변수와 독립변수와의 관계 설명이 분명하지 않아 인공신경망 모형보다는 간단한 통계모형을 쓰는 추세이다.

n  신용평가가 나쁘면 대출을 거절해야 하는데, ‘인공신경망에서 점수가 나쁘게 나와서 대출을 못해주겠네요할 수 없기 때문… (‘어떤 변수 때문에 점수가 낮게 나와서 대출을 못해주겠네요가 불가하다.)


3.     충분한 데이터가 필요.


인공신경망 모형은 못하는 사람이 하면, 회귀분석보다 더 못한 결과가 나올 수 있다…..ㅠㅠ (최적의 모델 선택이 매우 어렵다.)

 




 

적용분야

-      예측 및 분류

-      금융 재무 분야 ( 신용 스코어링 / 부도예측 / 자본시장 예측)

-      마케팅 / CRM 분야 (고객 스코어링 / 고객 이탈 예측 / 고객반응 예측)

'BigData > R' 카테고리의 다른 글

회귀분석 (선형 회귀 / 로지스틱 회귀)  (2) 2019.10.18
공지사항
최근에 올라온 글