통계 분석 기법
변수의 개수에 따른 분류:
Simple (단순): 하나의 변수만 사용하는 모델
Multiple (다중): 여러 개의 변수를 사용하는 모델
관계의 특성에 따른 분류:
Linear (선형): 변수들 간의 관계가 직선적인 모델
Nonlinear (비선형): 변수들 간의 관계가 곡선적이거나 복잡한 모델
예
단순 선형 모델: 집의 크기로만 가격을 예측하는 경우
다중 선형 모델: 집의 크기, 방 개수, 위치 등 여러 변수로 가격을 예측하는 경우
단순 비선형 모델: 시간에 따른 인구 증가를 곡선으로 예측하는 경우
다중 비선형 모델: 여러 변수를 사용하며 복잡한 패턴을 학습하는 신경망
Logistic Regression
- Classification (범주 예측), Regression (수치 예측)
로지스틱 회귀가 다중 클래스로 확장되는 과정
이진 분류(Binary Classification)
- 공식: P(y=1|X) = 1 / (1 + e^-(β₀ + β₁X₁))
- 두 클래스(0 또는 1)만 분류 가능
다중 클래스 분류(Multi-class Classification)
- SoftMax 함수 사용
- 공식: P(y=k|X) = e^(βₖᵀX) / Σⱼ e^(βⱼᵀX)
- k는 특정 클래스, K는 전체 클래스 수
- 분자: 특정 클래스 k의 선형결합을 지수화
- 분모: 모든 클래스의 지수화된 값의 합
특징
- 모든 클래스의 확률 합이 1이 됨
- 예시: class 1 (0.2), class 2 (0.5), class 3 (0.3)
- 각 클래스별 독립적인 β 파라미터 사용
- 항상 양수이며 0과 1 사이의 확률값 출력
→ 이 방식으로 로지스틱 회귀는 두 개 이상의 클래스를 분류하는 문제도 해결할 수 있게됨
선형 회귀모델 (Linear Regression) → 연속값 예측
- 수식: Y = β₀ + β₁X₁ + ... + βₚXₚ
- β₀는 절편, β₁부터 βₚ까지는 각 변수의 계수
- 학습 방법: 최소제곱법(OLS, Ordinary Least Squares)
- 연속적인 숫자를 예측할 때 사용 (예: 집값, 소득 등)
로지스틱 회귀 분석 (Logistic Regression) → 분류 문제
- 수식: πᵢ = 1 / (1 + e^(-β₀ + β₁X₁ ... βₚXₚ))
- 이진 분류 문제에 사용 (예: 합격/불합격, 성공/실패)
- 학습 방법: 최대우도추정법(MLE, Maximum Likelihood Estimation)
- 결과값이 0과 1 사이의 확률로 나옴
최소제곱법(OLS)과 최대우도추정법(MLE)의 차이
최소제곱법 (OLS) : "실제 집값이 5억인데 4억으로 예측했다면, 1억의 오차를 줄이자"
- 목적: 실제값과 예측값 차이의 제곱 합을 최소화
- 수식: min Σ(y - ŷ)²
- 특징: 직관적이고 계산이 상대적으로 단순, 오차가 정규분포를 따른다고 가정, 연속값 예측에 적합
최대우도추정법 (MLE) : "이 학생이 실제로 합격했는데, 합격 확률을 0.6으로 예측했다면, 이 확률을 더 높이자"
- 목적: 관측된 데이터가 발생할 확률을 최대화
- 수식: max Π P(yi|xi)
- 특징: 확률 기반 접근법, 이진/범주형 결과값에 적합, 복잡한 확률 모델에도 적용 가능
왜 다른 방법을 쓰나?
- 선형회귀: 연속값 예측이므로 오차 제곱합 최소화가 적절
- 로지스틱회귀: 확률 예측이므로 확률을 최대화하는 것이 더 적절
인공신경망(Neural Network)
- 2개 이상의 Hidden Layer 사용
- 더 많은 특징 추출 가능 → 높은 정확도
- 계산 복잡도는 높지만 현대 컴퓨팅으로 해결 가능
- 현재 대부분의 예측 분석에서 기본적으로 사용
선형회귀 → 로지스틱 회귀 → 단층 신경망 → 다층 신경망
f_Linear → f_Logistic → f_NN → F_NN
- Input Layer: 입력 데이터 (X₀, X₁, ..., X_D)
- Hidden Layer(s): 중간 처리 층
- Output Layer: 최종 출력
신경망의 다양한 문제 유형별 활성화 함수와 손실 함수
회귀(Regression) : 집값, 주가 예측
Output Node: 1개
활성화 함수: Linear (선형)
손실 함수: Squared Error (제곱 오차)
L = ½(y - ŷ)²
이진 분류(Binary Classification) : 합격/불합격, 스팸/정상 메일
Output Node: 1개
활성화 함수: Sigmoid
손실 함수: Binary Cross-entropy
L = -[y log(ŷ) + (1-y)log(1-ŷ)]
다중 분류(Multiclass Classification) : 손글씨 숫자 인식(0-9), 동물 분류
Output Node: K개 (클래스 수만큼)
활성화 함수: Softmax
ŷᵢ,ₖ = e^zᵢ,ₖ / Σ e^zᵢ,ₖ
손실 함수: Categorical Cross-entropy
L = -Σ yₖlog(ŷₖ)
→ 각 문제 유형에 따라 적절한 활성화 함수와 손실 함수를 선택하는 것이 모델의 성능에 중요한 영향을 미침
CNN(Convolutional Neural Network) : 이미지 형태 데이터 예측에 탁월한 모델
입력(Input) → 특징추출(Feature Extraction) → 예측(Prediction)
- 일반 신경망 + 합성곱 연산
- 이미지와 같은 2D/3D 형태 데이터 처리에 특화
- 인접 데이터간 연관성이 높은 경우 효과적 (예: 얼굴의 눈,코,입)
역할
입력부: 이미지 데이터 (2D/3D)
특징추출부: Convolution Layer: 특징 추출, Pooling Layer: 데이터 압축/주요 특징 선택
예측부: Fully-Connected Layer, Softmax 함수로 최종 분류
LeNet-5
초기 CNN 모델 (5개 layer)
구조: Convolution → Pooling → Convolution → Pooling → FC → Softmax
손글씨 숫자 인식 등에 사용
CNN의 장점: 이미지 인식/분류에 탁월한 성능, 데이터의 공간적 특성 활용, 자동 특징 추출 가능
A Comprehensive Guide to Convolutional Neural Networks — the ELI5 way
Artificial Intelligence has been witnessing a monumental growth in bridging the gap between the capabilities of humans and machines…
towardsdatascience.com
Convolution Filter와 Pooling Layer의 작동 방식
1. Convolution Filter (커널)
- 일반적으로 정사각형 형태 (H×H, 주로 3×3 사용)
- Stride(이동 간격): 보통 1칸씩 이동
- Overlapping(겹침) 허용
- 연산 과정: 입력 데이터와 필터 요소들을 곱한 후 합산
2. Pooling Layer (풀링 층):
- Max Pooling: 영역 내 최대값 선택
- Average Pooling: 영역 내 평균값 계산
- Global Average Pooling: 전체 영역의 평균 계산
- 목적: 데이터 차원 축소, 주요 특징 보존, 과적합 방지
3. 작동순서 : 입력 → Convolution 연산 → Feature Map 생성 → Pooling → 압축된 Feature Map
4. 작동 특징
- Convolution과 Pooling은 보통 세트로 사용
- 여러 층을 거치며 점진적으로 특징 추출
- 각 층마다 다른 특징을 학습 → 초기 층: 단순한 특징 (엣지, 선 등), 후기 층: 복잡한 특징 (도형, 패턴 등)
RNN(Recurrent Neural Network)
RNN 기본 구조: 시계열 데이터 처리를 위한 신경망 → 시간을 고려한 특징(feature)를 추출하여 Hidden State(hₜ)라고 표현함
두 가지 데이터 유형
- 단변량: T개 변수
- 다변량: T×D개 변수
RNN 파라미터
Wₓₕ: 입력(x)에서 은닉상태(h) 추출
Wₕₕ: 이전 은닉상태와 현재 입력으로 다음 은닉상태 추출
Wₕᵧ: 은닉상태로 출력(y) 예측
RNN의 Many-to-Many 파라미터 추정 과정
RNN 구조
시퀀스: x₁, x₂, ..., xₜ (입력)
은닉상태: h₀, h₁, h₂, ..., hₜ (히든 스테이트)
출력: y₁, y₂, ..., yₜ (예측값)
학습 대상 파라미터 (3가지):
A. Wₓₕ (초록색): 입력(X) → 은닉상태(h) 변환, 현재 시점의 입력을 은닉상태로 변환하는 가중치
B. Wₕₕ (빨간색): 이전 은닉상태(h) → 현재 은닉상태(h) 변환, 시간적 연속성을 담당하는 가중치
C. Wₕᵧ (파란색): 은닉상태(h) → 출력(y) 변환, 최종 예측을 위한 가중치
특징
각 시점마다 동일한 가중치를 공유
t시점의 예측은 이전 모든 시점의 정보를 활용
시간적 의존성을 모델링할 수 있음
→ 이러한 구조로 인해 RNN은 시계열 데이터나 순차 데이터 처리에 효과적
신경망의 파라미터 추정(학습) 과정
1. Forward Propagation (순전파)
Loss(손실) 계산 단계
입력값을 네트워크에 통과시켜 예측값 생성
실제값과 예측값의 차이(오차/손실) 계산
2. Backward Propagation (역전파)
Gradient(기울기) 계산 단계
계산된 손실을 기반으로 각 파라미터의 기울기 계산
손실에 대한 각 파라미터의 영향도 측정
3. Parameter Update (파라미터 갱신)
계산된 기울기를 사용해 파라미터 값 조정
보통 경사하강법(Gradient Descent) 사용
손실을 줄이는 방향으로 파라미터 업데이트
특징
이 세 단계는 반복적으로 수행됨 (화살표로 표시)
설정된 조건(에폭 수, 손실 값 등)이 만족될 때까지 반복
각 반복마다 모델의 성능이 점진적으로 개선됨
→ 학습 과정을 통해 신경망은 데이터의 패턴을 학습하고 예측 성능을 향상
Encoder-Decoder RNN
Encoder: 입력 문장의 특징 추출
Context Vector: 인코더가 디코더에 전달하는 정보
Decoder: Context Vector를 기반으로 번역/예측 수행
Attention 메커니즘
목적: 입력 시퀀스의 모든 부분을 고려하되, 현재 처리 중인 부분과 가장 관련있는 정보에 더 많은 '주의'를 기울임
예: 번역할 때 원문의 특정 단어가 번역문의 특정 단어와 얼마나 연관되어 있는지 계산
단계
1) Attention Score: 입력-출력 유사도 계산 (유사도)
2) Attention Weight: 유사도를 확률로 변환 (중요도)
3) Context Vector: 가중치 적용된 특징 벡터 생성 (최종 특징으로 예측에 활용)
Attention의 장점
병목 현상 해결: 긴 시퀀스도 효과적으로 처리
해석 가능성: 어떤 입력이 중요했는지 시각화 가능
성능 향상: 특히 긴 시퀀스에서 큰 성능 개선
예시
Copy입력: "Hello Dr. Cho This is Ewha."
출력: "안녕하세요 조박사님 저는 이화입니다."
Attention: 각 단어쌍의 관련성에 가중치 부여
Attention은 특히 기계 번역에서 큰 성능 향상을 가져왔으며, 현대 자연어 처리의 핵심 기술이 되었습니다.
입력: "I love machine learning"
출력: "나는 기계학습을 좋아한다"
Attention 가중치 예시:
I → 나는 (0.8)
love → 좋아한다 (0.9)
machine learning → 기계학습을 (0.95)
모델 성능 평가 지표
1) 분류 문제 평가 지표
A. Confusion Matrix 구성
True Positive (TP): 실제 양성을 양성으로 예측
False Positive (FP): 실제 음성을 양성으로 예측
True Negative (TN): 실제 음성을 음성으로 예측
False Negative (FN): 실제 양성을 음성으로 예측
B. 주요 평가 지표
# 정확도(Accuracy): 전체 중 올바른 예측 비율
Accuracy = (TP + TN) / (TP + TN + FP + FN)
# 정밀도(Precision): 양성 예측 중 실제 양성 비율
Precision = TP / (TP + FP)
# 재현율(Recall): 실제 양성 중 양성 예측 비율
Recall = TP / (TP + FN)
# F1 점수: 정밀도와 재현율의 조화평균
F1 = 2 * (Precision * Recall) / (Precision + Recall)
2) 회귀 문제 평가 지표
A. MSE (Mean Squared Error)
MSE = (1/n) * Σ(y_실제 - y_예측)²
- 예측값과 실제값 차이의 제곱 평균
- 오차의 크기를 강조
B. RMSE (Root Mean Squared Error)
RMSE = √MSE
- MSE의 제곱근
- 원래 단위로 해석 가능
C. R² (결정계수)
R² = 1 - (Σ(y_실제 - y_예측)²) / (Σ(y_실제 - y_평균)²)
- 0~1 사이 값
- 1에 가까울수록 모델 설명력이 높음
- 종속변수 변동이 독립변수에 의해 설명되는 정도
→ 이러한 지표들을 통해 모델의 성능을 다각도로 평가
'Data Statistics' 카테고리의 다른 글
차원 축소(Dimensionality Reduction) (1) | 2024.11.02 |
---|---|
선형 회귀와 로지스틱 회귀 (0) | 2024.09.22 |
[3] Simple Linear Regression (0) | 2023.05.27 |
기초통계 R 실습_오픈북 대비 (0) | 2023.05.06 |
기초통계 R 실습 (0) | 2023.05.02 |