전체 글 (43) 썸네일형 리스트형 (17) 심층 신경망 심층 신경망을 학습하게 되면 다양한 문제가 존재하게 됩니다. 오늘은 그중에 그래디언트 소실, 폭주 그리고 과대적합 문제에 대해서 다뤄보도록 하겠습니다. 그래디언트 소실은 역전파 과정에서 하위층에 있는 뉴런들에 전해지는 loss는 적어, 일찍 수렴해버리는 문제입니다. 그리고 그래디언트 폭주는 그래디언트 소실과 반대로 하위층에 있는 뉴런들에 전해지는 loss가 너무 커져버리는 문제입니다. 이런 문제들을 해결하기 위해 가중치 초기화 방법을 바꾸거나, 새로운 활성화 함수를 이용합니다. 또는 배치 정규화를 이용합니다. 그래디언트 클리핑으로 폭주문제를 해결할 수도 있습니다. 오늘은 앞서 말씀드린 문제들을 해결하는 총 6가지 방법에 대해 알아보겠습니다. 먼저 새로운 가중치 초기화 방법에 대해 말씀드리겠습니다. (이번.. (16) 인공 신경망 이제부터는 딥러닝에 대해서 알아보도록 하겠습니다. 이번 글에서는 딥러닝에 대한 기초에 대해서 알아볼 것입니다. 퍼셉트론은 아주 간단한 인공 신경망 구조입니다. 입력층과 출력층만 존재하여 두개의 층으로 이루어져 있습니다. 퍼셉트론은 각 노드가 그 다음 노드에 전부 연결되어 있는 밀집층입니다. 각 노드에서 다음 노드로 wx + b의 값을 넘겨줍니다. 여기서 x는 입력층에 들어온 값들의 행렬이고, w는 가중치 행렬입니다. b는 편향 특성입니다. 그리고 출력층에서는 활성화 함수(퍼셉트론에서는 계단함수입니다.)를 거쳐 최종 결과를 도출해냅니다. 인공신경망은 초창기 때 지금처럼의 인기를 얻을 수 없었습니다. 그에 따른 이유도 있었겠지요. 두개의 층으로만 이루어진 인공신경망으로는 그 당시 다른 머신러닝들의 성능에 비.. (15) 비지도학습 지금까지는 입력특성과 레이블이 같이 주어지는 지도학습에 대해서 알아보았습니다. 이번 글에서는 비지도학습의 대표적 알고리즘인 K-means와 DBSCAN에 대해서 알아보도록 하겠습니다. 먼저 K-means 알고리즘에 대해서 알아보도록 하겠습니다. K-means는 centroid라는 클러스터의 중심점을 이용하여 군집화합니다. 과정은 아주 간단합니다. 1. k개 만큼의 centroid를 정의하고, 각 데이터셋은 가장 가까운 centroid에 해당하는 레이블을 가지게 됩니다. 2. centroid를 각 레이블을 가진 데이터셋의 중심으로 정의합니다. 위 과정을 더 이상 centroid가 변경되지 않을때까지 반복합니다. 처음 centroid를 정의하는 데에는 크게 세가지 방법이 존재합니다. 1. 랜덤하게 정의합니다.. (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라고 합니다.. (10) 분류 (회귀) 분류 문제를 회귀로 해결하는 알고리즘이 있습니다. 이번 글에서는 이진분류가 가능한 로지스틱 회귀와, 다중분류를 할 수 있는 소프트맥스 회귀에 대해서 알아보겠습니다. 먼저 로지스틱 회귀에 대해서 알아보도록 하겠습니다. 로지스틱 회귀는 이진분류만 가능합니다. 추정확률을 반환하여 50% 이상이면 1, 아니면 0으로 분류하게 됩니다. 처음 보는 저 기호는 sigmoid입니다. sigmoid는 0과 1 사이의 값으로 변환해주는 앞으로 많이 보게 될 유용한 함수입니다. 시그모이드는 다음과 같습니다. 로지스틱 회귀의 예측 식에 대해 알아보았으니 비용함수에 대해 알아보도록 합시다. 한 훈련사례에 대해서는 다음과 같습니다. 전체 비용함수는 다음과 같이 정리할 수 있습니다. 편도함수는 다음과 같습니다. 위와 같은 편도함수.. 이전 1 2 3 4 5 6 다음