Certificate/ADSP

[ADSP] 3과목 - 5장 3-4. 앙상블 분석, 인공신경망 분석

Istj_eff 2022. 10. 12. 22:48

3절. 앙상블 분석

1. 앙상블(Ensemble) 모형

: 여러 개의 훈련용 데이터를 만들고, 훈련용 데이터마다 하나의 분류기를 만드는 방법

앙상블 학습의 핵심은 여러 개의 약 분류기 (Weak Classifier)를 결합하여 강 분류기(Strong Classifier)를 만드는 것
  • 전체적인 예측값의 분산을 감소시켜 정확도를 높일 수 있다. 
  • 여러 모형의 결과를 결합함으로써 신뢰성 높은 예측값을 얻을 수 있다.
  • 성능을 분산시키기 때문에 과적합 감소효과 있음 (약하게 학습된 여러 모델 결합)
  • 이상값에 대한 대응력이 높아진다. 
  • 각 모형의 상호 연관성이 높을수록 정확도가 감소한다. 
  • 모형의 투명성이 떨어져 원인 분석에는 적합하지 않다. 
  • 훈련을 한 뒤 예측을 하는데 사용하므로 지도학습(Supervised learning)이다. ★ 
  • 앙상블은 기법 종류는 배깅, 부스팅, 랜덤포레스트

 

 

1-1. 배깅(Bagging) 

: 데이터에서 여러개의 붓스트랩 데이터를 생성해서  붓스트랩 데이터 분석 모델에 결합한 후에 최종 예측 모델을 산출하는   

  • 붓스트랩(bootstrap): 주어진 자료에서 동일한 크기의 표본을 랜덤복원추출로 뽑은 자료 
  • 서로 다른 훈련데이터로 훈련(여러 모델 병렬로 학습), 서로 같은 알고리즘 분류기 결합
    • 보팅(Voting) : 서로 다른 여러개 알고리즘 분류기 사용해서 산출된 결과를 다수결로 최종결과를 선정하는 과정

  • 원데이터에서 표본의 중복을 허용하고, 크기가 같은 표본을 여러번 복원추출하여 각 표본에 대해 분류기(Classifiers)를 생성하는 기법  
  • 가지치기를 하지 않고 최대한 성장한 의사결정 나무들 사용
  • 같은 데이터가 여러 번 추출될 수도 있고, 어떤 데이터는 추출되지 않을 수 있다.
    • 대표적 알고리즘 : MetaCost Algorithm

 

1-2. 부스팅(boosting)

  • 여러 모델이 순차적으로 학습. 훈련오차를 빠르고 쉽게 줄임
  • 예측력이 약한 모형들을 결합하여 강한 예측모형을 만드는 방법.
  • 성능이 배깅보다 뛰어난 경우가 많음
  • 동일한 확률을 부여하지 않고, 이전 모델의 결과에 따라 다음 모델 표본추출에서 분류가 잘못된 데이터에 더 큰 가중치(weight)를 두어 표본을 추출
  • 붓스트랩 표본을 추출 → 분류기 생성 → 각 데이터의 확률 조정 →  ···반복···
  • 맞추기 어려운 문제를 맞추는데 초점이 맞춰져있고, 이상치(Outlier)에 약함
  • 대표적 알고리즘 : AdaBoost, GradientBoost (XGBoost, Light GBM) 

2. 랜덤포레스트(Random Forest) 

  • 더 많은 무작위성을 주어 약한 학습기들을 생성한 후 선형결합하여 최종학습기 만듬 ★
  • 노드내 데이터를 자식노드로 나누는 기준을 정할 때 모든 예측변수에서 최적의 분할을 선택하는 대신, 설명변수의 일부분만을 고려해서 성능을 높임
  • 배깅에 랜덤 과정을 추가한 방법 (붓스트랩 샘플 추출,트리 생성은 유사)
  • 여러개의 의사결정나무를 사용해, 하나 사용할때보다 과적합 문제를 피할 수 있음
  • 예측변수들을 임의로 추출하고, 추출된 변수 내에서 최적의 분할을 만들어나감
  • 변수 제거 없이 실행되어 정확도가 좋음 
  • 해석이 어렵지만 예측력이 높음 (입력 변수가 많을수록 배깅, 부스팅보다 좋음)
  • 별도의 검증용 데이터를 사용하지 않더라도, 붓스트랩 샘플과정에서 제외된 자료를 통해
  • 검증을 실시할 수 있다.

예) 보험가입 채널, 상품 종류 등의 정보를 사용하여 자사 고객의 보험 갱신 여부를 예측


3. KNN(K-Neares Neighbors)

  • 새로운 데이터에 대해 주어진 이웃의 개수(K)만큼 가까운 멤버들과 비교하여 결과를 판단하는 방법
  • k값에 따라 소속되는 그룹이 달라질 수 있음(k값은 hyper parameter)
  • 거리를 측정해 이웃들을 뽑기 때문에 스케일링이 중요함
  • 반응변수가 범주형이면 분류, 연속형이면 회귀의 목적으로 사용
  • 모형을 미리 만들지 않고, 새로운 데이터가 들어오면 그때부터 계산을 시작하는 lazy learning 이 사용되는 지도학습 알고리즘

# 데이터 스케일링(scaling)

  • 정규화 : 값의 범위를 [0,1]로 변환하는 것, min-max nomalization
    = X - Xmin / Xmax-Xmin
    ex) 0,100인 경우 50? 50-0/100-0 = 0.5
  • 표준화 : 특성의 값이 정규분포를 갖도록 변환, 평균0, 표준편차1
    = X - 평균 / 표준편차

4. SVM(Support Vector Machine)

  • 서로 다른 분류에 속한 데이터 간의 간격(margin)이 최대가 되는 선을 찾아 이를 기준으로 데이터를 분류하는 모델
  • 지도학습에 주로 이용, 분류성능이 뛰어나 분류분석에 주로 사용
  • 분류와 예측에 모두 사용. 예측 정확도 높음
  • 저차원과 고차원 데이터에 모두 잘 사용
  • 데이터 전처리와 매개변수 설정에 따라 정확도 달라짐
  • 대용량 데이터에 대한 모형 구축시 속도가 느리며 메모리 할달량 큼

 


 4절. 인공신경망 분석

# 신경망 모형의 정의 및 특징

장점 단점
- 변수의 수가 많거나, 출력 변수 간에 복잡한 비선형 관계가 존재할 때 유용
- 잡음에 민감하게 반응하지 않음
- 결과에 대한 해석이 쉽지 않음 
- 은닉층의 수와 은닉노드 수의 결정이 어려움  
- 초기 값에 따라 전역해가 아닌 지역해로 수렴할 수 있음
- 모형이 복잡하면 훈련과정에 많은 시간 소요

 

1. 인공신경망(ANN) 모형

  • 인공신경망으로 분류 및 군집 가능
  • 입력층, 은닉층, 출력층 3개의 층으로 구성됨(각 층에 뉴런(노드)이 여러개 포함)
  • 학습 : 입력에 대한 올바른 출력이 나오도록 가중치(weight) 조절하는 것
  • 가중치 초기화는 -1.0 ~ 1.0 사이의 임의값으로 설정. 가중치를 너무 큰값으로 초기화하면 활성화 함수를 편향시키게 되며, 활성화 함수가 과적합되는 상태를 포화상태라고 함
  • 입력링크에서 여러 신호를 받아 새로운 활성화 수준 계산, 출력링크로 출력 신호를 보냄.
  • 입력신호는 미가공 데이터 또는 다른 뉴런의 출력이 될 수 있다.
  • 출력 신호는 문제의 최종적인 해(solution)가 되거나 다른 뉴런에 입력될 수 있다.
  • 변수의 수가 많거나 입출력 변수 간 복잡한 비선형관계가 존재할 때 유용 ★
  • 잡음에 대해서도 민감하게 반응하지 않는다. ★

 

 1-1. 뉴런

  • 뉴런은 가중치가 있는 링크들로 연결. 여러 입력신호를 받지만 출력신호는 오직 하나 생성
  • 뉴런은 활성화 함수를 사용하고, 입력신호의 가중치 합을 계산하여 임계값과 비교한다.
  • 가중치 합이 임계값보다 작으면 뉴런의 출력은 –1, 같거나 크면 +1을 출력한다.

 

1-2. 포화문제(상태) 

역전파를 진행함에 따라 각 노드를 연결하는 가중치의 절대값이 커져 과소 적합이 발생

신경망에서 가중치를 지나치게 큰값으로 초기화하면 활성화 함수를 편향시키게되며 활성화 함수가 과적합 되는 상태

 

1-3. 기울기 소실 문제 (Gradient Vanishing) 

: 다층신경망모형에서 은닉층의 개수를 너무 많이 설정하게 되면 역전파 과정에서 앞쪽 은닉층의 가중치 조정이 이뤄지지 않아 신경망의 학습이 제대로 이뤄지지 않는 현상

 

1-4. 과대적합(Overfitting) 

  • 학습 데이터는 실제 데이터의 일부분이므로 너무 과하게 학습하게 되면 학습데이터는 정확하게 맞지만 실제 데이터에 대해서 오차가 증가하는 문제  ★
  • 모델이 훈련데이터에 너무 최적화되어 테스트데이터의 작은 변화에 민감하게 반응한다.
  • 학습 데이터가 모집단의 특성을 충분히 설명하지 못할 때 자주 발생한다.
  • 과대적합이 발생할 것으로 예상되면 학습을 종료하고 업데이트를 반복하여 방지할 수 있다.
  • 조기 종료 : 검증 오차가 증가하기 시작하면 반복 중지
  • 가중치 감소 : 벌점화 기법 활용 

2. 역전파 알고리즘

  • 신경망 모형의 목적함수를 최적화하기 위해 사용된다. ★
  • 연결강도를 갱신하기 위해 예측된 결과와 실제값의 차이를 통해 가중치를 조정하는 방법 ★

 


3. 신경망 모형 구축 시 고려사항

(1) 입력 변수

  • 복잡성에 의하여 입력 자료 선택에 민감
  • 범주형 변수: 모든 범주에서 일정 빈도 이상, 빈도 일정
    • 모든 범주형 변수가 같은 범위를 갖도록 가변수화 해야 함.
  • 연속형 변수: 입력 변수들의 범위가 변수 간 큰 차이가 없을 때
    • 연속형 변수의 경우, 분포가 평균 중심으로 대칭이야 함.

(2) 가중치의 초기값과 다중 최소값 문제

  • 초기 값은 0근처로 랜덤하게 선택, 가중치가 증가할수록 비선형
  • 가중치가 0이면, 신경망 모형은 근사적 선형 모형

(3) 학습모드

  • 온라인 학습모드 : 관측 값을 순차적으로 투입하여 가중치 추정값이 매번 바뀜
    • 속도 빠름
    • 훈련 자료가 비정상성일 때 좋음
    • 국소 최소값에 벗어나기 쉬움
  • 확률적 학습모드 : 관측 값을 랜덤하게 투입하여 가중치 추정 값이 매번 바뀜
  • 배치 학습모드 : 전체 훈련자료를 동시에 투임

(4) 은닉층과 은닉 노드의 수 

  • 신경망 적용 시 제일 중요한 부분 : 모형 선택 (은닉층, 은닉노드의 수 결정)
  • 은닉층의 뉴런수를 정하는 것은 신경망을 설계하는 사람의 직관과 경험에 의존 ★
  • 은닉층 수 결정 : 하나로 선정
  • 은닉노드 수 결정 : 적절히 큰 값을 놓고 가중치 감소시키면서 적용하는 것이 좋음
    • 은닉층/노드가 많으면 가중치가 많아져 과적합 문제, 기울기 소실 문제 발생 ★
    • 은닉층/노드가 적으면 복잡한 의사결정 경계를 만들 수 없음. Underfitting 문제(입력 데이터를 충분히 표현하지 못하는 경우 발생 )

4. 뉴런의 활성화 함수(activation function)

  • 풀고자 하는 문제 종류에 따라 활성화 함수의 선택이 달라짐
  • 결과값을 내보낼 때 사용하는 함수, 가중치값을 학습할 때 에러가 적게 나도록 도움
Softmax Function Sigmoid Function
logistic regression에서
multi-classification 문제에서 사용
logistic regression에서
binary-classification 문제 에서 사용
확률의 총 합 = 1 ★ 확률의 총 합은 1이 아님 ★
출력 층에서 사용됨(확률 표현) Activation 함수로 사용될 수 있음
(실제 사용하지 않음)
큰 출력 값은 그 class에 해당할 가능성이 높다는 것을 뜻하며 실제 확률을 나타냄 큰 출력 값은 그 class에 해당할 가능성이 높지만 실제 확률 값을 나타내는 것은 아님

 

(1) 소프트맥스(Softmax) 함수  (0~1)

  • 함수 결과 값(확률값) : 0 ≤ y ≤ 1,  모든 확률의 합은 1 ★
  • 표준화지수 함수, 출력 값이 여러개 주어지고 목표치가 다범주인 경우 각 범주에 속할 사후확률 (posterior probability) 제공
  • 주로 3개 이상 분류시 사용

 

(2) 시그모이드(Sigmoid) 함수 (0~1) 

  • 함수 결과 값(확률값) : (연속형) 0 ≤ y ≤ 1 
  • 로지스틱 회귀분석과 유사. 로지스틱 함수라고 불리기도함.
  • 입력층이 직접 출력층에 연결되는 단층신경망에서 활성함수를 시그모이드로 사용하면 로지스틱 회귀 모형과 작동 원리가 유사해진다.
  • 기울기 소실 문제가 발생하면 해결을 위해 ReLU 등 다른 함수 사용

 

# neuralnet 함수의 일반화 가중치(generalized weight)

  • 일반화 가중치(generalized weight)는 각 공변량의 영향을 표현하기 때문에 회귀모델에서 1번째 회귀 변수의 유사한 해석을 가진다.
  • 로지스틱 회귀 모형에서의 회귀 계수와 유사하게 해석된다. ★

 

# FP-Growth 

  •  Apriori 알고리즘의 약점을 보완하기 위한 방법
  • 트리와 노드링크라는 특별한 자료 구조를 사용하는 알고리즘

 

# 기계학습 

  • 훈련 데이터로부터 학습하여 알려진 특성을 활용해 예측
  • 기존 시청기록을 바탕으로 영화 추천

5. 모형 평가 절차 

1. 훈련용 자료와 검증용 자료 추출

  •  훈련용 자료는 모형 구축용도, 검증용 자료는 모형 검증 용도
  •  주어진 데이터에서만 성과를 보이는 과적합화를 해결하기 위한 단계
  •  잘못된 가설을 가정하게 되는 2종 오류를 방지 ★

 

(1) 홀드아웃(hold-out) 

  • 랜덤 추출 방식
  • 주어진 원천 데이터를 랜덤하게 두 분류로 분리하여 교차 검정을 실시하는 방법
  • 하나는 모형학습 및 구축을 위한 훈련용 자료, 하나는 성과평가를 위한 검증용 자료 
  • 과적합 발생여부를 확인하기 위해 주어진 데이터의 일정 부분을 모델을 만드는 훈련 데이터로 사용하고, 나머지 데이터를 사용해 모델을 평가
  • 훈련용 자료(실험 데이터) : 검증용 자료(평가 데이터) = 7:3

 

(2) 교차검증(cross-validation)

  • 데이터가 충분하지 않을 경우 Hold-out으로 나누면 많은 양의 분산 발생
  • 이를 해결하기 위해 교차검증 사용, but 클래스 불균형 데이터에는 부적합
  • 데이터를 k개로 나누어 k번 반복측정하고, 그 결과를 평균 내어 최종 평가로 사용
  • 일반적으로 10-fold 교차 검증이 사용됨
  • 전체 데이터를 shuffle
  • k개로 데이터 분할
  • k번째 하부집합을 검증용자료, k-1개는 훈련용 자료로 사용하여 k번 반복 측정
  • 결과를 평균 낸 값을 최종평가로 사용

 

(3) 붓스트랩(bootstrap) ★★

  • 교차검증과 유사하게 평가를 반복하지만, 훈련용 자료를 반복 재선정한다는 점에서 다름
  • 측치를 한번 이상 훈련용 자료로 사용하는 복원 추출법에 기반 ★
  • 전체 데이터의 양이 크지 않은 경우의 모형 평가에 가장 적합
  • 훈련 데이터를 63.2% 사용하는 0.632 붓스트랩이 있음

 

# 데이터 분할시 고려사항

class의 비율이 한쪽에 치우쳐 있는 클래스 불균형 상태라면 다음 기법 사용을 고려

1) under sampling : 적은 class의 수에 맞추는 것

2) over sampling : 많은 class의 수에 맞추는 것

 


6. 모형 평가 절차 

2. 모형 학습  성능 평가

  •  훈련용 자료로 모형을 학습한 뒤, 검증용 자료를 사용해 모형의 분류 및 예측 정확도 평가
  •  분류 모형 평가에 사용되는 방법
  •  오분류표, ROC 그래프 등