안녕하세요 글루미입니다.
본 포스팅의 원본 글은 https://velog.io/@gloomy_passion/KDTAISEC-2주차-머신러닝-딥러닝 입니다.
머신러닝
머신러닝 = 기계학습
`학습`은 "기계가 미래의 유사한 경험을 향상하기 위해 과거의 경험을 활용하는 것"입니다. 기본적의 학습의 과정은 다음과 같습니다.
- 데이터 입력: 새로운 이미지, 텍스트, 영상, 센서 데이터 등
- 추상화: 데이터에 의미를 부여(`Training`)
- 일반화: 추상적인 지식을 실행에 사용할 수 있는 형태로 조절하는 과정
머신러닝 프로세스
모델 설계
- 단일 모델: 데이터 특성에 맞는 모델을 의미합니다.
- 다중 모델
- 앙상블 모델
- 여러 개의 모델을 연결해서 하나의 모델처럼 사용합니다.
- 모델 판단 결과를 새로운 `feature`로 사용할 수 있습니다.
편향과 분산: Bias and Variance
편향은 데이터 내 숨겨진 모든 정보를 고려하지 않아 잘못 학습을 하는 것을 의미합니다(`Underfitting`). 분산은 데이터 내의 에러와 노이즈까지 학습에 고려하는 것을 의미합니다(`Overfitting`). 기본적으로 머신러닝의 학습은 아래 수식에서 `w`(가중치)와 `b`(편향)을 찾아가는 과정을 의미합니다.
$$ y=wx+b $$
과적합과 부적합
과적합(`Overfitting`)은 학습한 모델이 학습 데이터에 과도하게 맞춰져 학습되었거나 지나치게 복잡한 모델을 사용한 경우에 발생할 수 있습니다. 부적합(`Underfitting`)은 학습한 모델이 데이터의 흐름을 파악할 수 없을 만큼 지나치게 단순한 경우에 발생할 수 있습니다.
모델 성능과 검증
머신러닝 모델의 정확도가 100%라면 과적합인지, 혹은 머신러닝을 적용할 필요가 있는 도메인인지 고려해 보아야 합니다. 머신러닝은 경험을 근간으로 하는 일반화의 싸움이기 때문에 기본적으로 99.9%를 지향합니다. 따라서 좋은 모델이라고 이야기하기 전에 다양한 모델에 실험을 해봤는지부터 확인해 보아야 하며, 정확도의 기준은 실험에 사용되는 도메인의 속성과 사용한 알고리즘에 따라 달라집니다.
회귀 모델 평가: Regression
회귀 모델은 원래 값과 예측한 값이 얼마나 차이 나는지 평가합니다.
- `MAE(Mean Absolute Error)`: 편차에 절댓값을 씌운 결과의 평균, 작은 에러에 민감합니다.
- `MSE(Mean Squared Error)`: 편차 제곱의 평균, 큰 에러를 최대한 낮춰줍니다.
- `MAE(Median Absolute Error)`: 중앙값에 절댓값을 씌운 결과의 평균, 이상치에 영향을 적게 받습니다.
- `R2 Score`: 기존 생성 모델이 새로운 샘플에 얼마나 적합할지 판단해 주는 지표이며, 0~1 사이의 값을 가집니다.
군집 모델 평가: Clustering
군집 모델은 데이터를 잘 군집화 했는지 평가합니다. 같은 `Cluster` 안에 있는 데이터들의 유사성을 평가합니다.
- `Adjusted Rand Index`: 악성코드에서는 사용하지 않는 지표입니다. 원래 값과 예측된 값이 얼마나 유사도를 가지고 있는지 평가합니다.
- `Mutual Information Based Scores`: `ARI`와 유사한 맥락으로, 유사도가 아닌 부합 정도입니다.
- `Fowlkes-Mallows Scores`: 원래 값을 이용, `Confusiion Matrix` 기반입니다.
- `Silhouette Coefficient`: 원래 값을 모를 때 사용합니다. 모델 자체만을 가지고 판단합니다(평균 거리).
분류 모델 평가: Classification
분류 모델은 데이터를 정답은 정답으로, 오답은 오답으로 잘 분류했는지 평가합니다.
- `Accuracy Score`: 얼마나 잘 예측을 했는지 평가합니다(정답/전체).
- `Confusion Matrix`: 알고리즘 성능을 시각화해 주는 에러 표입니다.
정밀도, 재현율, F-Score: Precision, Recall and F-measure
- `정밀도(Precision)`: 전체 `Positive` 개수 대비 정답의 비율을 의미합니다(오탐).
$$ Precision = \frac {T_{rue}P_{ositive}} {T_{rue} P_{ositive} + F_{alse}P_{ositive}} $$
- `재현율(Recall)`: 전체 `True` 개수 대비 정답의 비율을 의미합니다(미탐).
$$ Recall = \frac {T_{rue}P_{ositive}} {T_{rue}P_{ositive}+F_{alse}N_{egative}} $$
- `F-Score(F-measure)`: 정밀도와 검출율을 하나의 숫자로 표현하는 방법입니다.
특징 공학: Feature Engineering
특징 공학이란?
특징, 즉 `feature`는 관찰 대상에서 발견한 개별적이고 측정 가능한 경험적 속성을 의미합니다. 특징 공학은 `Raw Data`를 예측 모델의 기저에 있는 문제들을 잘 표현해 주는 특징들로 변환하는 것을 의미합니다. 특징 공학 과정을 거치면서 처음 보는 데이터에 대한 모델의 정확도가 향상됩니다. 좋은 특징들은 모델에 유연성을 부여하고 모델을 단순화하며, 좋은 결과를 도출하는 데 도움을 줍니다.
- 통계학 VS 머신러닝
- 통계학은 수량적 비교를 기초로 많은 사실을 통계적으로 관찰, 처리하는 방법을 연구하는 학문입니다.
- 머신러닝은 컴퓨터가 주어진 데이터에서 의미 있는 정보를 찾아낼 수 있도록 해주는 모든 기술 영역입니다.
- 통계학: 데이터에서 의미를 찾아내는 학문입니다.
- 머신러닝: 데이터에서 찾은 의미를 활용하기 위한 학문입니다.
- 확률: 일정한 조건 아래에서 어떤 사건이나 사상이나 일어날 가능성의 정도 또는 수치입니다.
$$ P(A) = \frac {n(A)} {n(S)} $$
- 조건부 확률: 어떤 사건 `B`가 일어났을 때 사건 `A`가 발생할 확률입니다.
$$ P(A|B) = \frac {P(A∩B)} {P(B)} $$
- 베이즈 정리(`Bayes Theorem`)
- 두 확률 변수의 사전 확률과 사후 확률 사이의 관계를 나타내는 정리입니다.
- 변화를 계산 - `A`의 확률 `P(A)`는 `B`과 관측된 후 `P(A|B)`로 변화
$$ P(A|B) = \frac {P(B|A)P(A)} {P(B)} $$
- 확률 분포
- 이산 확률 분포: 특정 값을 얻는 확률입니다.
- 연속 확률 분포: 특정 범위(구간)를 얻는 확률입니다.
- 정규 분포(`Normal Distribution`) = (`Gaussian Distribution`)
- 연속 데이터를 위한 모델, 평균과 분산으로 표현한 분포 그래프입니다.
- 어떤 변수 `X`가 특정한 두 값`(a, b)` 사이에 있을 확률 = 면적
- `feature engineering` 프로세스
- 데이터 관찰: 데이터의 형식은 무엇인가? 에러는 없는가? 데이터 단위는?
- 데이터 전처리
- 형식화: 분석 목적에 맞는 적절한 파일 형식으로 변환 또는 `DB`에 저장합니다.
- 정제: 문제 해결에 도움이 되지 않는 데이터는 제거, 누락된 데이터 처리
- 샘플링: 초기 실험에는 일부 데이터만 선택에서 모델링을 할 필요 有
- 특징 추출(`Parsing`): 데이터가 알고리즘이 처리하기에 너무 많은 정보를 담고 있는 경우, 특징만 추출합니다.
- ex) 파형 데이터 → 주파수, 이미지 → 경계선 정보
- 특징 구현(`Processing`): 직접 특징을 추출하는 방법 → 데이터 구조와 기저 정보에 대한 깊은 이해 必
- 데이터 변환
- 분해: 하나의 특징이 복잡한 여러 개념을 포함하는 경우, 여러 개의 특징으로 분리하거나 선택적으로 추출합니다. → `PCA(Principal Component Analysis)`: 주성분 분석(대표적인 차원 축소 알고리즘)
- 결합: 두 가지를 동시에 고려했을 때, 더 큰 의미를 가지는 특징들은 하나의 특징으로 결합합니다.
- 변환: 특정 변수를 모델에 사용할 수 있는 데이터 형식으로 변환합니다.
- `One Hot Encoding`: 범주형 데이터를 `one-of-K` 형태로 변환하는 방법입니다.
- 스케일링: 전처리 후 데이터의 단위는 제각각, 범위를 `[0, 1]`로 치환해 주는 것이 학습에 유리합니다.
- `min/max` 스케일링 $$ x' = \frac{x-x_{min}}{x_{max}-x_{min}} $$
- 특징 선택
- 필터링: 탐색 과정을 통해 모델링에 사용할 특징을 선별, 그 결과를 학습 모델에 전달하는 방법입니다.
- 직관적이고 속도가 빠르지만 결과에 대한 피드백을 받을 수 없다는 것이 단점입니다.
- 래핑: 탐색 과정과 학습 과정을 반복적으로 실행하면서 최적의 특징 조합을 찾는 방법입니다.
- 필터링과 정반대의 단점
- 필터링: 탐색 과정을 통해 모델링에 사용할 특징을 선별, 그 결과를 학습 모델에 전달하는 방법입니다.
- 관련성
- 특징이 모델의 성능에 영향을 미치는 정도를 판단하기 위한 수치입니다.
- 모델 학습에 반드시 필요한 특징 → 높은 관련성
- 추가할 경우 모델 성능 향상에 도움이 되는 특징 → 낮은 관련성
- 유용성
- 주어진 모델에서 에러를 최소화하는 것과 관련된 수치입니다.
- 신경망의 `Bias`가 높은 유용성을 가진 특징의 대표적인 예시입니다.
'Artificial Intelligence' 카테고리의 다른 글
[AISEC] CNN과 순환신경망 (0) | 2024.06.20 |
---|---|
[AISEC] 정보보안과 인공지능개론, 빅데이터 (0) | 2024.06.20 |