본문 바로가기

ADsP(데이터 분석 준전문가)/개념정리

[3-5. 정형 데이터 마이닝] 4. 인공신경망 분석

728x90

학습목표
- 인공신경망은 분류분석 문제를 해결하는데 상당히 높은 적중률을 보여주는 데이터 마이닝 기법
- 인공신경망은 인간의 신경세포 통한 학습방법에서 아이디어를 얻어 이를 디지털 네트워크 모형으로 구현
- 인공신경망 모형은 비선현성 분류문제를 분류할 수 없어 한계에 부딪혔다가 다계층 퍼셉트론을 활용한 역전파 알고리즘이 개발되면서 급속히 발전
- 인공신경망 모형 구축시 입력변수는 구간화를 통해 범주형 변수로 이산화하여 적용하는 것이 유용
- 가중치는 0에 가까운 값에서 시작해서 높이는 것이 좋음
- 은닉층과 은닉노드의 수는 많으면 과대적합, 적으면 과소적합 할 수 있기 때문에 은닉층은 하나, 은닉도수는 적절히 많은 개수에서 줄여가는 것이 바람직

1) 인공신경망 분석(ANN)
1. 인공신경망이란?
- 인간 뇌를 기반으로 한 추론 모델이다
- 뉴런은 기본적인 정보처리 단위이다

2. 인공신경망의 연구
- 1943년 매컬럭과 피츠 : 인간의 뇌를 수많은 신경세포가 연결된 하나의 디지털 네트워크 모형으로 간주하고 신경세포의 신호처리 과정을 모형화하여 단순 패턴분류 모형을 개발
- 헵 : 신경세포(뉴런) 사이의 연결강도(Weight)를 조정하여 학습규칙을 개발
- 로젠블럿 :: 퍼셉트론 이라는 인공세포를 개발
- 비선형성의 한계점 발생 : XOR(베타적 논리합) 문제를 풀지 못하는 한계를 발견
- 홉필드, 러멜하트, 맥클랜드 : 역전파알고리즘을 활용하여 비선형성을 극복한 다계층 퍼셉트론으로 새로운 인공신경망 모형이 등장

3. 인간의 뇌를 형상화한 인공신경망
가) 인간 뇌의 특징
- 100억개의 뉴런과 6조 개의 시냅스의 결합체이다
- 인간의 뇌는 현존하는 어떤 컴퓨터보다 빠르고 매우 복잡하고, 비선형적이며, 병렬적인 정보 처리 시스템과 같다
- 적응성에 따라 '잘못된 답'에 대한 뉴런들 사이의 연결은 약화되고, '올바른 답'에 대한 연결이 강화
나) 인간의 뇌 모델링
- 뉴런은 가중치가 있는 링크들로 연결되어 있다
- 뉴런은 여러 입력 신호를 받지만 출력 신호는 오직 하나만 생성한다

4. 인공 신경망의 학습
- 신경망은 가중치를 반복적으로 조정하며 학습
- 뉴런은 링크로 연결되어 있고, 각 링크에는 구치적인 가중치가 있다
- 인공 신경망은 신경망의 가중치를 초기화하고 훈련 데이터를 통해 가중치를 갱신하여 신경망의 구조를 선택하고, 활용한 학습 알고리즘을 결정한 후 신경망을 훈련시킨다

5. 인공신경망의 특징
가) 구조
- 입력 링크에서 여러 신호를 받아서 새로운 활성화 수준을 계산하고, 출력링크로 출력신호를 보낸다
- 입력신호는 미가공 데이터 또는 다른 뉴런의 출력이 될 수 있다
- 출력신호는 문제의 최종적인 해(solution)가 되거나 다른 뉴런에 입력될 수 있다


나) 뉴런의 계산
- 뉴런은 전이함수, 즉 활성화 함수를 사용한다
- 활성화 함수를 이용해 출력을 결정하며 입력신호의 가중치 합을 계산하여 임계값과 비교한다 
- 가중치 합이 임계값보다 작으면 뉴런의 출력은 -1, 같거나 크면 +1 을 출력 

다) 뉴런의 활성화 함수
- 시그모이드 함수의 경우 로지스틱 회귀분석과 유사하며, 0~1의 확률값을 가진다

- 소프트맥스 함수 : 표준화지수 함수로도 불리며, 출력값이 여러개로 주어지고 목표치가 다범주인 경우 각 범주에 속할 사후확률을 제공하는 함수

- ReLU함수 : 입력값이 0이하는 0, 0이상은 x값을 가지는 함수이며, 최근 딥러닝에서 많이 활용하는 활성화 함수

라) 단일 뉴런의 학습(단층 퍼셉트론)
- 퍼셉트론은 선형 결합기와 하드 리미터로 구성
- 초평면(hyperplane)은 n차원 공간을 두 개의 영역으로 나눔
- 초평면을 선형 분리 함수로 정의 

6. 신경망 모형 구축시 고려사항
가) 입력 변수
- 신경망 모형은 그 복잡성으로 인하여 입력 자료의 선택에 매우 민감
- 입력변수가 범주형 또는 연속형 변수일 떄 아래의 조건이 신경망 모형에 적합 
> 범주형 변수 : 모든 범주에서 일정 빈도 이상의 값을 갖고 각 범주의 빈도가 일정할 떄
> 연속형 변수 : 입력변수 값들의 범위가 변수간의 큰 차이가 없을 때


- 연속형 변수의 경우 그 분포가 평균을 중심으로 대칭이 아니면 좋지 않은 결과를 도출하기 때문에 아래와 같은 방법을 활용
> 변환 : 고객의 소득(대부분 평균미만이고 특정 고객의 소득이 매우 큰) : 로그변환
> 범주화 : 각 범주의 빈도가 비슷하게 되도록 설정


- 범주형 변수의 경우 가변수화하여 적용(남녀:1,0 또는 1, -1)하고 

- 가능하면 모든 범주형 변수는 같은 범위를 갖도록 가변수화 하는 것이 좋다

나) 가중치의 초기값과 다중 최소값 문제
- 역전파 알고리즘은 초기값에 따라 결과가 많이 달라지므로 초기값의 선택은 매우 중요한 문제
- 가중치가 0이면 시그모이드 함수는 선형이 되고 신경망 모형은 근사적으로 선형모형이 됨
- 일반적으로 초기값은 0 근처로 랜덤하게 선택하므로 초기 모형은 선형모형에 가깝다
- 가중치 값이 증가할수록 비선형모형이 된다

(초기값이 0이면 반복하여도 값이 전혀 변하지 않고, 너무크면 좋지 않은 해를 주는 문제점을 내포하고 있어 주의)

*기울기 소실(Gradient Vanishing): 깊은 인공신경망에서 역전파 과정에서 입력층으로 갈수록 기울기가 점차 작아져 가중치 업데이트가 안되는 현상
*일반화 가중치(Generalized Weights): 각 공변량들의 효과를 나타내는 것으로, 로지스틱 회귀모형에서의 회귀계수와 유사하게 해석 (각 공변량의 로그-오즈에 미치는 기여도)

다) 학습모드
ㄱ) 온라인 학습모드(Online Learning Mode)
- 각 관측값을 순차적으로 하나씩 신경망에 투입하여 가중치 추정값이 매번 바뀐다
- 일반적으로 속도가 빠르며, 특히 훈련자료에 유사값이 많은 경우 그 차이가 더 두드러진다
- 훈련자료가 비정상성과 같이 특이한 성질을 가진 경우가 좋다
- 국소최솟값에서 벗어나기가 더 쉽다


ㄴ) 확률적 학습 모드(Probabilistic Learning Mode)
- 온라인 학습모드와 같으나 신경망에 투입되는 관측값의 순서가 랜덤하다
ㄷ) 배치 학습 모드(Batch Learning Mode)
- 전체 훈련자료를 동시에 신경망에 투입 

*학습률(Learning Rate)
: 처음에는 큰 값으로 정하고, 반복 수행과정을 통해 해에 가까울수록 학습률이 0에 수렴

라) 은닉층(Hidden Layer)과 은닉 노드(Hidden Node)의 수
- 신경망을 적용할 때 가장 중요한 부분이 모형의 선택이다
- 은닉층의 수와 은닉노드의 수 결정
- 은닉층과 은닉노드가 많으면 가중치가 많아져서 과대 적합 문제 발생
- 은닉층과 은닉노드가 적으면 과소적합 문제 발생
- 은닉층의 수가 하나인 신경망은 범용 근사자 이므로 모든 매끄러운 함수를 근사적으로 표현할 수 있다
- 그러므로 가능하면 은닉층은 하나로 선정
- 은닉노드의 수는 적절히 큰 값으로 놓고 가중치를 감소시키며 적용하는 것이 좋다

마) 과대 적합 문제 
- 신경망에서는 많은 가중치를 추정해야 하므로 과대적합 문제가 빈번
- 알고리즘의 조기종료와 가중치 감소 기법으로 해결할 수 있다
- 모형이 적합하는 과정에서 검증오차가 증가하기 시작하면 반복을 중지하는 조기종료를 시행
- 선형모형의 능형회귀와 유사한 가중치 감소라는 벌점화 기법을 활용

*포화문제
: 작은 기울기는 곧 학습 능력이 제한된다는 것을 의미하고, 이를 일컬어 신경망에 포화가 발생했다고 함.
포화가 일어나지 않게 하기 위해 입력값을 작게 유지해야 함

*딥러닝(Deep Learning)
- 머신러닝의 한 분야. 인공신경망의 한계를 극복하기 위해 제안된 심화신경망을 활용한 방법
- 최근 음성, 이미지 인식, 자연어 처리, 헬스 케어 등의 전반적인 분야에 활용
- 딥러닝 소프트웨어 : Tensorflow, Caffe, Theano, MXnet

728x90