본문 바로가기
인공지능(LLM 구축)/인공지능 기초지식

핵심으로 알아보는 인공지능 기본 이론(요약 정리) 2

by OurGenAI 2024. 1. 24.
반응형

* KNN

》 컴퓨터에게 학습하는 능력을 주는 것이란

⇒ 파라미터를 찾는 것(데이터를 통해 스스로 학습하여 최적의 판단이나 예측 즉, 적절한 파라미터를 찾는 것)

 

》 KNN(K-Nearest Neighbor) : 탐색할 이웃 수(k), 거리 측정 방법에 따라 분류가 달라짐

》 장점 : 이해하기 매우 쉬운 모델이며, 많이 조정하지 않아도 좋은 성능을 발휘한다. 매우 빠르게 만들 수 있어서 더 복잡한 알고리즘을 적용해 보기 전에 시도해 볼 수 있다.

》 단점 : 훈련 세트가 매우 크면 예측이 느려진다. 많은 특성을 가진 데이터 세트에는 잘 동작하지 않는다. 따라서 예측이 느리고 많은 특성을 처리하는 능력이 부족하여 현업에서는 사용하지 않는다.

- K = Hyperparameter = 임의로 변경할 수 있는 설계 파라미터

- (K 개수 선택)

가. k가 너무 작을 때 : Overfitting

일반화 성능이 낮아진다. 극단적으로 k=1이라고 하자. 그러면 분류 정확도가 상당히 낮을 수밖에 없다. 시야가 좁아지는 거고, 아주 근처에 있는 점 하나에 민감하게 영향을 받기 때문이다.

이를 overfitting(과적합)이라고 한다.

 

나. k가 너무 클 때 : Underfitting

underfitting은 분류기가 학습 세트의 세세한 부분에 충분히 주의를 기울이지 않았기 때문에 나타난다. 예를 들어 학습 세트에 100개의 점이 있고 k=100으로 설정했다고 극단적으로 가정해보자. 그러면 모든 점이 결국 동일한 방식으로 분류될 거다.(점 사이의 거리는 의미가 없어진다.)

 

* Unsupervised Leaning(비지도 학습)

- 클러스터링, 군집화를 사용하는 예로는 아래와 같은 것들을 들 수 있다.

가. 추천 엔진 : 사용자 경험을 개인화하기 위해 비슷한 제품 묶어주기

나. 검색 엔진: 관련 주제나 검색 결과 묶어주기

다. 시장 세분화(segmentation): 지역, 인구 통계, 행동에 따라 비슷한 고객들 묶어주기

- 군집화의 목표는 서로 유사한 데이터들은 같은 그룹으로, 서로 유사하지 않은 데이터는 다른 그룹으로 분리하는 것

- 몇개의 그룹으로 묶을 것인가 : K-Means 알고리즘

- 데이터의 “유사도”를 어떻게 정의할 것인가 (유사한 데이터란 무엇인가) : EM 알고리즘

(E는 Expectation, M은 Maximization을 의미)

* Naive Bayes(나이브 베이즈)

》 스팸 메일 필터, 텍스트 분류, 감정 분석, 추천 시스템 등에 광범위하게 활용되는 분류 기법

》 베이즈 정리에 기반한 통계적 분류 기법이며, 가장 단순한 지도 학습 (supervised learning) 중 하나

》 분류기는 빠르고, 정확하며, 믿을만한 알고리즘 정확성도 높고 대용량 데이터에 대해 속도도 빠르다.

》 feature끼리 서로 독립이라는 조건이 필요.

즉, 스팸메일 분류에서 광고성 단어의 개수와 비속어의 개수가 서로 연관이 있어서는 안됨.

》 장점

  1. 간단하고, 빠르며, 정확한 모델.
  2. computation cost가 작다. (따라서 빠름.)
  3. 큰 데이터셋에 적합하다.
  4. 연속형보다 이산형 데이터에서 성능이 좋다.
  5. Multiple class 예측을 위해서도 사용할 수 있다.

》 단점 : 장점이 많지만 feature가 서로 독립이어야 한다는 크리티컬한 단점이 있다. (하지만 실제 데이터에서 모든 feature가 독립인 경우는 드물다)

zero frequency: 만약 training data set 중 스팸 메일에서 '당첨'이라는 단어가 없었다면, 분류기는 항상 p(X=1|spam)=0으로 취급하여 '당첨'이라는 단어가 들어가면 무조건 스팸이 아니라고 분류해버린다. 이것을 'Zero Frequency'라고 부름

 

* 베이지 이론(Bayes Theorem) : 이전의 경험과 현재의 증거를 토대로 어떤 사건의 확률을 추론하는 알고리즘

》 P(A|B) : PDA(우리가 알고 싶은 것)

》 P(B|A) : Likelihood(현재의 증거)

P(B) : Prior(이전의 경험)

* Optimal Classification(Bayes)

- 우리가 아는 모델 : f(X) 와 결과값 : Y의 오차를 최소화 할 수 있는 모델을 찾는 것 = 머신러닝

 

* Naive Bayes Classifier

 

- 베이지안 추론 : 추론 대상에 대한 사전분포를 알고, 데이터에 대한 적절한 가정(likelihood, f(x|θ))만 할 수 있다면, 우리는 이로부터 사후분포에 대해 추론할 수 있다

 

* Q1 : P(Yes | Overcast, Mild) <= NaiveBayes 문제

→ 날씨가 흐리고, 온도가 온화할 때 게임할 수 있는 확률

whether Temperature play
Sunny Hot No
Sunny Hot No
Overcast Hot Yes
Rainy Mild Yes
Rainy Cool Yes
Rainy Cool No
Overcast Cool Yes
Sunny Mild No
Sunny Cool Yes
Rainy Mild Yes
Sunny Mild Yes
Overcast Mild Yes
Overcast Hot Yes
Rainy Mild No

 

* Decision Tree(지도학습 모델)

- 랜덤 포레스트의 기본 단위 인 의사결정트리 말그대로 의사를 결정하는데 이진형 답변의 연속 모델로 스무고개와 비슷하게 예/아니오의 대답으로 최종 답변이 결정되는 구조

 

* 엔트로피란 : 불확실성을 나타내는데, 정보량의 평균

》 (=)불순도를 측정하는 지표로서, 정보량의 기댓값

》 정보량이란 어떤 사건이 가지고 있는 정보의 양을 의미하며, 이는 식으로 다음과 같다.

S : 이미 발생한 사건의 모음, c : 사건의 개수

》 ID3알고리즘 : Entropy를 작게 하는 방향으로 가지를 뻗어나가면서 의사결정나무를 키워나가는 알고리즘

(단, 독립변수가 모두 범주형일 때만 가능연속형 변수는 C4.5 알고리즘)

* 지니계수(Gini Index) : 불순도를 측정하는 지표로서, 데이터의 통계적 분산 정도를 정량화해서 표현한 값

》 CART 알고리즘

S : 이미 발생한 사건의 모음, c : 사건의 개수

 

》 장점

  • 쉽고 직관적이다
  • 이상치와 노이즈에 큰영향을 받지않음
  • 비모수적 모형: 선형성/정규성/등분산성 등 가정이 필요없는 방법
  • 모델의 해석력이 높음
  • 연속형/이산형 데이터 모두 다룰 수 있음

》 단점

  • 과적함(overfitting)의 가능성이 높음
  • 모델의 유연성이 떨어짐(일반성 부족)
  • 학습데이터에 따라 생성되는 의사결정나무에 큰 차이가 있음

》 overfitting 해결방법 : 가지치기, 앙상블(Random Forest)

 

* 앙상블(Ensemble) : 여러 머신러닝 모델을 연결하여 더 강력한 모델을 만드는 기법

》 여러개의 모델을 학습시켜 그 모델들의 예측결과들을 이용해 하나의 모델보다 더 나은 값을 예측하는 방법

》 큰 데이터 세트가 있을 때, 데이터 세트를 나누어 독립적으로 운영되는 각각의 머신러닝을 통해 학습시킨 뒤 모델을 합쳐 전체 데이터의 결과를 산출하는 방법이다 

 

* 앙상블 학습의 유형 : 보팅(Voting), 배깅(Bagging), 부스팅(Boosting), 스태킹(Stacking)

》 Hard voting: 분류기의 예측값(레이블)을 가지고 다수결 투표를 통해 최종 앙상블 예측

》 Soft voting: 분류기의 예측값(레이블)의 확률을 가지고 평균을 구한 뒤, 평균이 가장 높은 클래스로 최종 앙상블 예측

》 배깅(Bagging)은 Bootstrap Aggregating의 약자로, 보팅(Voting)과는 달리 동일한 알고리즘으로 여러 분류기를 만들어 보팅으로 최종 결정하는 알고리즘

샘플을 여러 번 뽑아 모델(같은 모델)학습시켜 결과를 집계(Aggregating) 하는 방법

》 배깅진행방식

(1) 동일한 알고리즘을 사용하는 일정 수의 분류기 생성

(2) 각각의 분류기는 부트스트래핑(Bootstrapping) 방식으로 생성된 샘플데이터를 학습

(3) 최종적으로 모든 분류기가 보팅을 통헤 예측 결정

 

※ 부트스트래핑 샘플링은 전체 데이터에서 일부 데이터의 중첩을 허용하는 방식

》 부스팅(boosting) : 성능이 약한 학습기(weak learner)를 여러 개 연결하여 강한 학습기(strong learner)를 만드는 앙상블 학습 방법
부스팅 방법의 아이디어는 앞에서 학습된 모델을 보완해 나가면서 더 나은 모델로 학습시키는 것
그 중 가장 유명하고 인기 있는 모델  아다부스트 (AdaBoost, Adaptive Boosting)

》 Boosting VS Bagging : 동일하게 복원 랜덤 샘플링을 하지만, 가중치를 부여한다는 차이점

Bagging이 병렬로 학습하는 반면, Boosting은 순차적으로 학습하고, 학습이 끝나면 나온 결과에 따라 가중치가 재분배

》 보팅 : 여러 종류의 알고리즘을 사용한 각각의 결과에 대해 투표를 통해 최종 결과를 예측하는 방식

》 배깅 : 같은 알고리즘에 대해 데이터 샘플을 다르게 두고 학습을 수행해 보팅을 수행하는 방식(데이터 샘플은 중첩이 허용)

》 부스팅 : 여러 개의 알고리즘이 순차적으로 학습을 하되, 앞에 학습한 알고리즘 예측이 틀린 데이터에 대해 올바르게 예측할 수 있도록, 그 다음번 알고리즘에 가중치를 부여하여 학습과 예측을 진행하는 방식

》 스태킹 : 여러 가지 다른 모델의 예측 결과값을 다시 학습 데이터로 만들어 다른 모델(메타 모델)로 재학습시켜 결과를 예측하는 방법

* Random Forest : 여러 개의 결정트리(Decision Tree)를 활용한 배깅 방식의 대표적인 알고리즘

》 장점 :

  • 결정 트리의 쉽고 직관적인 장점을 그대로 가지고 있음
  • 앙상블 알고리즘 중 비교적 빠른 수행 속도를 가짐
  • 다양한 분야에서 좋은 성능을 나타냄

》 단점 :

  • 하이퍼 파라미터가 많아 튜닝을 위힌 시간이 많이 소요됨

* SVM(Support Vector Machine)

》 데이터를 선형으로 분리하는 최적의 선형 결정 경계를 찾는 알고리즘(수학적으로 풀어서 최적의 경계선을 찾는 기법)

  • 마진을 최대화하는 분류 경계면을 찾는 기법

딥러닝 이전 뛰어난 성능의 대표 기계학습 알고리즘(2인자)

》 서포트 벡터 머신(SVM)은 결정 경계(Decision Boundary), 즉 분류를 위한 기준 선을 정의하는 모델

  • 분류되지 않은 새로운 점이 나타나면 경계의 어느 쪽에 속하는지 확인해서 분류 과제를 수행할 수 있게 된다.
  • 최적의 결정 경계(Decision Boundary) : 데이터 군으로부터 최대한 멀리 떨어지는 게 좋다.
  • Margin Distance : 마진(Margin)은 결정 경계와 서포트 벡터 사이의 거리를 의미함. 가운데 실선이 하나 그어져 있는데, 이것이 바로 ‘결정 경계’, 점선으로부터 결정 경계까지의 거리가 바로 ‘마진(margin)’ 최적의 결정 경계는 마진을 최대화한다.
  • x축과 y축 2개의 속성을 가진 데이터로 결정 경계를 그었는데, 총 3개의 데이터 포인트(서포트 벡터)가 필요 즉, n개의 속성을 가진 데이터에는 최소 n+1개의 서포트 벡터가 존재한다는 걸 알 수 있다.

 

* 이상치(Outlier)

》 하드 마진(hard margin) : 아웃라이어를 허용하지 않고 기준을 까다롭게 세운 모양, 서포트벡터와 결정 경계 사이의 거리가 매우 좁다. 즉, 마진이 매우 작아진다. 이렇게 개별적인 학습 데이터들을 다 놓치지 않으려고 아웃라이어를 허용하지 않는 기준으로 결정 경계를 정해버리면 오버피팅(overfitting) 문제가 발생할 수 있다.

》 소프트 마진(soft margin) : 아웃라이어들이 마진 안에 어느정도 포함되도록 너그럽게 기준을 잡았다. 이렇게 너그럽게 잡아 놓으니 서포트벡터와 결정 경계 사이의 거리가 멀어졌다. 즉, 마진이 커진다. 대신 너무 대충대충 학습하는 꼴이라 언더피팅(underfitting) 문제가 발생할 수 있다.

* kernelizedsupport vector machines :

입력 데이터에서 단순한 초평면 hyperplane으로 정의되지 않는 더 복잡한 모델을 만들 수 있도록 확장한 것, 직선과 초평면은 유연하지 못하여 저차원 데이터셋 에서는 선형 모델이 매우 제한적 선형 모델을 유연하게 만드는 한 가지 방법은 특성끼리 곱하거나 특성을 거듭제곱하는 식으로 새로운 특성을 추가하는 것

》 커널(Kernel) : 아무리 봐도 단순한 선형으로는 도저히 해결이 안되는 문제들이 존재, 이때 다항식(polynomial) 커널을 사용하면 2차원에서 x, y 좌표로 이루어진 점들을 아래와 같은 식에 따라 3차원으로 표현하게 된다.

》 커널(Kernel)의 종류

 

* SVM 요약

》 SVM은 분류에 사용되는 지도학습 머신러닝 모델

》 SVM은 서포트벡터(support vectors)를 사용해서 결정 경계(Decision Boundary)를 정의하고, 분류되지 않은 점을 해당 결정 경계와 비교해서 분류

》 서포트벡터(support vectors)는 결정 경계에 가장 가까운 각 클래스의 점들이다.

》 서포트벡터와 결정 경계 사이의 거리를 마진(margin)이라고 한다.

》 SVM은 허용 가능한 오류 범위 내에서 가능한 최대 마진을 만들려고 한다.

》 파라미터C는 허용되는 오류 양을 조절한다. C값이 클수록 오류를 덜 허용하며 이를 하드 마진(hard margin)이라 부른다. 반대로 C 값이 작을수록 오류를 더 많이 허용해서 소프트 마진(soft margin)을 만든다.

》 SVM에서는 선형으로 분리할 수 없는 점들을 분류하기 위해 커널(kernel)을 사용한다.

》 커널(kernel)은 원래 가지고 있는 데이터를 더 높은 차원의 데이터로 변환한다. 2차원의 점으로 나타낼 수 있는 데이터를 다항식(polynomial) 커널은 3차원으로, RBF 커널은 점을 무한한 차원으로 변환한다.

》 RBF 커널에는 파라미터감마(gamma)가 있다. 감마가 너무 크면 학습 데이터에 너무 의존해서 오버피팅이 발생할 수 있다.

 

* 기계학습 vs 딥러닝이 차이? : 모델이 다르다

》 딥러닝 : Neural Network(NN)

》 기계학습 : 모델의 종류, Feature를 직접 인간이 선택

* Perceptron(퍼셉트론) : 인간의 생물학적인 뉴런과 인공신경망을 수학적으로 표현한 모델이다.

 

- X1,X2: 입력, W1,W2: 가중치(퍼셉트론에서의 파라미터), Y: 출력

》 XOR 게이트는 AND와 OR, NOT 게이트의 조합으로 만들 수 있다. (Perceptron으로 여러개로 구현 가능)

》 Multi Layer Perceptron (MLP) : Hidden Later가 3층 이상이 되면 Deep Neural Network (DNN)이라고 한다. 단층 Perceptron일 때는 풀 수 없었던 XOR Gate를 2층으로만 쌓아도 풀 수 있다는 것을 알게 되었다.

- FC(Fully Connected) = MPL = NN (같은 말)

- Perceptron을 여러 개 쌓은 MLP 모델이 바로 DNN이고, 이를 학습시키면 바로 Deep-Learning

》 MPL 학습과정 : 계산 값과 정답의 차이를 작게 만들어 나가는 과정이 학습과정이며, 새로운 w는 기준 w에서 수정 값을 빼는 것 수정 값은 learning rate, gradient, cost function으로 구성되어 있다.

》 오차함수(MSE) : 최소제곱법(Minimum Squared Error)차이를 제곱해서 평균을 내는 방법

 

》 가장 기본적인 오차함수: ACE

》 역전파(Backpropagation)

- 순전파, Y1은 줄이는 방향, Y2는 증가하는 방향

 

》 Vanishing Gradient : 이제 학습과정이 어떻게 되는지 제대로 알았으니 더 어렵고 더 복잡한 문제를 풀 수 있다. 더 깊은 망을 학습시키는 과정에서 Output값과 멀어질수록 학습이 잘 안되는 현상들이 발생한다. 이 현상을 Vanishing Gradient라고 부름

(이 현상 때문에 다시 인공신경망연구에 침체기가 도래)

 

* Ovefitting(과적합) : 제한된 샘플에 너무 특화가 되어, 새로운 샘플에 대한 예측 결과가 오히려 나빠지거나 학습의 효과가 나타나지 않는 경우(모델이 데이터보다 더 클 때, 데이터의 양이 너무 적을 때 발생)

 

》 Overfitting(과적합) 문제를 해결하는 방법(3가지)

1. 더 많은 데이터를 사용할 것

2. Cross Validation

3. Regularization

》 Regularization : 기본적인 컨셉은 큰 coefficient 즉, weight에 페널티를 주는 것

- L2 regularization

- C0:원래 cost function

- N: numof data

- W: weight

- Lamda: 변수(0 ~ 1 값)

 

더보기

이 글의 내용 및 그림, 사진 등의 콘텐츠는 작성자에게 저작권이 있습니다.

이를 무단으로 복제, 수정, 배포하는 행위는 불법이며, 관련 법률에 의해 엄격하게 제재될 수 있습니다.

작성자의 동의 없이 이 콘텐츠를 사용하는 경우, 민사 및 형사상의 책임을 물을 수 있습니다.

 

Copyright. 우리의인공지능항해 All rights reserved.

 

반응형