본문 바로가기

인공지능/이론

(20)
(14) 차원 축소 PCA 인공지능을 개발하다보면 차원이 아주 많은 데이터셋을 볼 수 있을 것입니다. 차원을 높을 때의 단점은 다음과 같습니다. - 직관적 통계인 시각화를 하기 힘듭니다. (3차원까지만 가능하기 때문.) - 모델이 과대적합되기 쉽습니다. (입력 특성이 아주 많기 때문. 모델의 복잡도 상승.) - 학습 시간이 오래 걸리게 됩니다. (데이터셋의 크기가 높아지기 때문.) . . 이렇게 차원이 높으면 좋지 않은 점들이 존재합니다. 높은 차원을 최대한 정보를 손실하지 않으면서 저차원으로 변환하는 알고리즘이 있다면 이를 어느정도 해결할 수 있습니다. PCA 알고리즘은 대표적인 차원축소 알고리즘입니다. PCA 알고리즘은 데이터셋을 알맞은 초평면에 투영시켜 저차원으로 차원축소를 진행해줍니다. 이 알고리즘은 원래 데이터셋의 분산을..
(13) 앙상블 오늘은 앙상블 기법에 대해서 알아보도록 하겠습니다. 앙상블은 여러개의 예측기를 이용하여 더 좋은 예측기를 만들어 내는 것입니다. 앙상블 기법중에서는 크게 배깅, 부스팅, 스태킹이 있습니다. 가장 먼저 배깅에 대해서 알아보도록 하겠습니다. 배깅은 같은 알고리즘의 모델을 데이터셋을 샘플링하여 각자 다른 데이터셋으로 학습하는 것입니다. 1번 모델은 1~1000 데이터셋 샘플로 학습하고, 2번 모델은 750~1750 데이터셋 샘플로 학습하고 . . 이렇게 여러개의 모델을 학습시킵니다. 그 후에 예측을 할 때에는 각 모델들이 분류한 클래스들을 모으고, 가장 많이 예측된 클래스를 최종 예측 클래스로 정하게 됩니다. 여기서 각 모델에서 학습할때 선택되지 않은 데이터셋을 oob 샘플이라고 하고, 이와 같이 정확도를 측..
(12) 결정 트리 저번 글과 비슷하게 이번 글에서는 분류와 회귀 모두 가능한 결정 트리(decision tree)에 대해서 알아보도록 하겠습니다. 결정 트리는 root node 와 그의 자식 노드, 그리고 자식노드가 없는 노드인 leaf node로 나뉘어져 있습니다. 하나의 노드는 두개의 노드를 가질 수 있습니다. leaf node를 제외한 노드들은 훈련데이터의 샘플에 임곗값을 정하여 두개로 나누고 있습니다. 예를 들어 위의 그림에서 맨 위 층의 노드인 root node에서 width가 1이라면 오른쪽 밑으로 가게 됩니다. samples는 각 노드로 분류된 모든 샘플의 개수입니다. value는 분류된 샘플의 각 클래스의 개수입니다. class는 그 노드에서의 예측값입니다. gini는 불순도를 체크하는 방법중에 하나입니다...
(11) SVM SVM(Support Vector Machine)은 분류나 회귀, 이상치 탐색까지 활용 가능한 인기있는 머신러닝 모델입니다. 이번 글에서는 SVM 분류, SVM 회귀에 대해서 알아보도록 하겠습니다. 먼저 SVM 분류에 대해서 알아보도록 하겠습니다. SVM분류도 선형 SVM분류와 비선형 SVM분류로 구분됩니다. 선형 SVM 분류기는 두 클래스를 나누면서 제일 가까운 훈련 샘플로부터 가능한 가장 멀리 떨어져있으려고 합니다. 검정색 실선은 도로의 경계입니다. 빨간색 실선과 가장 가까운 데이터들과의 거리는 마진(margin)입니다. 빨간색 실선, 즉 선형 SVM 분류기는 도로의 경계에 걸쳐져 있는 훈련샘플에게만 영향을 받습니다. 그리고 도로의 경계에 걸쳐져 있는 훈련샘플들을 Support Vector라고 합니다..
(8) 선형회귀 과대적합/과소적합 훈련세트에서는 좋은 결과를 내지만, 검증세트에서는 좋은 결과를 내지 못하는 모델을 흔히 과대적합된 모델이라고 표현합니다. 그리고 훈련세트와 검증세트 둘 모두에서 좋은 결과를 내지 못하는 모델을 과소적합이라고 부릅니다. 선형회귀에서 과대적합과 과소적합을 어떻게 발견하고, 해결할 수 있을까요 먼저 과대적합과 과소적합을 발견하는 방법을 말씀드리겠습니다. 가장 간단하게는 실제 데이터와 훈련한 모델을 시각화하여 살펴보는 것입니다. 수치적으로는 학습곡선으로 알아볼 수 있습니다. 학습곡선은 훈련세트의 크기나 epoch을 x축으로 하고 각 loss를 y축으로 하여 검증세트와 학습세트에 한해서 시각화해보는 것입니다. 과소적합의 학습 곡선은 학습셋과 검증셋의 간격이 좁고, 둘 모두 Loss가 높습니다. 과소적합은 모델의 ..
(7) 경사하강법 경사하강법(Gradient Descent)은 최적해를 찾는 최적화 알고리즘입니다. 경사하강법은 크게 배치 경사하강법, 미니배치 경사하강법, 확률적 경사하강법으로 나뉘어져 있습니다. 먼저 경사하강법의 큰 그림부터 살펴보도록 하겠습니다. 경사하강법은 비용함수(cost function)의 최저점을 찾는 알고리즘입니다. 모델을 경사하강법으로 학습시키기 위해 비용함수가 필요한 이유가 이 때문이죠. 1. 정의된 가중치로 비용함수를 사용하여 cost를 구합니다. 2. 각 가중치의 편도함수를 만들어 기울기를 구합니다. 3. 새로운 가중치는 현재 가중치 - 기울기로 구합니다. 이제 경사하강법을 세부적으로 알아보도록 하겠습니다. 모델의 비용함수를 Cost(W)로 정의했다고 해봅시다. 그레디언트 벡터는 다음과 같을 것입니다..
(6) 선형 회귀 선형 회귀 모델은 다음과 같은 형태로 모델을 학습합니다. w0, w1 .. wn 들을 원소로 하는 열벡터를 W로 하고, 특성들을 원소로 하는 열벡터를 X라고 한다면 다음과 같이 정리할 수 있습니다. 학습 방법은 다음 글에서 경사하강법을 소개하며 같이 설명하도록 하겠습니다.
(5) ROC 곡선 ROC 곡선은 이진분류기(decision function을 이용한) 를 평가하기 위한 좋은 평가 방법입니다. TPR (True Positive Rate)와 FPR(False Positive Rate)를 사용하여 평가하는 방법입니다. TPR 은 재현율과 같은 의미입니다. FPR 은 FP의 비율입니다. x축은 FPR이고, y축은 TPR입니다. 임곗값을 줄여가면서 FPR과 TPR을 그래프로 표현한 것입니다. FPR을 적게하면서 TPR이 높은, 즉 왼쪽 모서리쪽에 있는 그래프를 그려내야 좋은 분류기라고 할 수 있습니다. ROC Curve를 정적분한 값으로 AUC가 존재하는데 AUC가 높을수록 좋은 분류기입니다. 문제를 해결하기 위한 적절한 평가방법을 활용하여 효율적인 모델을 선택하고 문제를 해결해나가는 것이 좋..