목록딥러닝 (42)
Broccoli's House
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 군집 알고리즘 : k-평균 군집(k-means) 군집 - 군집(Clustering) : 군집은 데이터를 비슷한 것끼리 묶어 클러스터(Cluster)라는 그룹으로 나누는 작업이다. 군집 알고리즘의 목표는 한 클러스터 안의 데이터 포인트끼리는 매우 비슷하고, 다른 클러스터의 데이터 포인트와는 구분되도록 데이터를 나누는 것이다. 데이터 포인트들 간의 유사성(Similarity)을 비교하여 데이터를 나눈다. 분류 알고리즘과 비슷하게 군집 알고리즘은 각 데이터 포인트가 어느 클러스터에 속하는지 예측한다. - 유사성(Similarity) : 유사성의 실제 의미는 철학적인 문제이고, 직관적으로 아는 것이라 정의하기 힘들다. 데이터 포인트 사이의 유사성을 측정..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 비지도 변환 : NMF(비음수 행렬 분해) 비음수 행렬 분해 - 비음수 행렬 분해(Non-negative Matrix Factorization) : 음수가 포함되지 않은, 전체 원소가 양수인 행렬 V를 음수를 포함하지 않는 행렬 W와 H의 곱으로 분해하는 알고리즘이다. 행렬에 음수가 없으면 분해한 결과 행렬을 찾기 쉽게 만든다. 일반적으로 행렬 분해는 정확한 해가 없기 때문에, 이 알고리즘은 대략적인 해를 구하게 된다. - NMF 알고리즘은 PCA와 유사하고 차원 축소에도 사용할 수 있다. PCA처럼 어떤 성분의 가중치 합으로 각 데이터 포인트를 나타낼 수 있다. 다만 PCA에서는 데이터의 분산이 가장 크고 수직인 성분을 찾았다면, NMF에서는 ..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 비지도 변환 : PCA(주성분 분석) 비지도 변환 - 비지도 변환 : 비지도 학습을 사용하여 데이터를 변환한 것이다. 이렇게 데이터를 변환하는 이유는 주로 데이터를 시각화하거나, 데이터를 압축하거나, 지도 학습에 사용하기 위해 정보가 더 잘 드러나도록 하기 위해서이다. 비지도 변환에는 여러가지가 있으나 흔히 사용하는 알고리즘인 주성분 분석(Principal Component Analysis : PCA), 특성 추출에 널리 사용되는 비음수 행렬 분해(Non-negative Matrix Factorization : NMF)와 2차원 산점도를 이용하여 시각화 용도로 많이 사용하는 t-SNE(t-distributed Stochastic Neighbor ..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 비지도 학습 비지도 학습 - 비지도 학습(Unsupervised Learning) : 사용자가 알고 있는 출력 값이나 정보를 입력 값과 비교하여 학습하는 지도학습 알고리즘과는 다르게, 비지도 학습은 그러한 출력이나 정보 없이 학습 알고리즘을 가르쳐야 하는 모든 종류의 머신러닝을 가리킨다. 즉, 비지도 학습에서의 알고리즘은 입력 데이터만으로 데이터에서 지식을 추출할 수 있어야 한다. - 비지도 학습에는 데이터의 비지도 변환(Unsupervised Transformation)과 군집(Clustering)이 있다. 비지도 변환은 데이터를 새롭게 표현하여 사람이나 다른 머신러닝 알고리즘이 원래 데이터보다 쉽게 해석할 수 있도록 만드는 알고리즘이다. 따라..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 지도 학습 알고리즘 : 정리 요약 및 정리 - 최근접 이웃(k-NN) : 데이터 포인트에서 가장 가까운 훈련 데이터 포인트, 최근접 이웃을 찾는 알고리즘. 작은 데이터 세트일 경우에 기본모델로서 좋고 이해하기 쉽다. - 선형 모델 : 선형적인 직선이나 평면, 초평면 등을 이용하여 출력을 찾는 알고리즘. 첫 번째로 시도하기 좋으며, 대용량 데이터세트와 고차원 데이터 세트에 가능하다. - 나이브 베이즈 : 데이터의 특성을 독립적이라 가정하여 각 상황의 확률을 계산하여 결과를 출력한다. 분류 문제에만 적용할 수 있다. 대용량 데이터 세트와 고차원 데이터에 사용 가능하다. 선형 모델보다 훨씬 빠르나 정확도는 떨어진다. - 결정 트리 : 데이터를 이진 분..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 지도 학습 알고리즘 : 서포트 벡터 머신(SVM) 서포트 벡터 머신 - 서포트 벡터 머신(Support Vector Machine : SVM) : 서포트 벡터 머신 알고리즘은 학습이 진행되는 동안 각 훈련 데이터 포인트가 두 클래스 사이의 결정 경계를 구분하는 데 얼마나 중요한지를 학습한다. 일반적으로 훈련 데이터의 일부, 두 클래스 사이의 경계에 위치한 데이터 포인트들만이 결정 경계를 만드는데 영향을 준다. 이런 데이터 포인트를 서포트 벡터(Support Vector)라 하며, 여기서 서포트 벡터 머신이라는 이름이 유래하였다. - 새로운 데이터 포인트에 대해 예측할 때는, 데이터 포인트와 각 서포트 벡터와의 거리를 측정한다. 분류에 대한 결정은..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 지도 학습 알고리즘 : 결정 트리 앙상블 앙상블 - 앙상블(Ensemble) : 앙상블은 여러 머신러닝 모델을 연결하여 더 강력한 모델을 만드는 기법이다. 큰 데이터 세트가 있을 때, 데이터 세트를 나누어 독립적으로 운영되는 각각의 머신러닝을 통해 학습시킨 뒤 모델을 합쳐 전체 데이터의 결과를 산출하는 방법이다. 단일 머신러닝 모델로 학습하였을 때 보다 2%에서 5%정도 상승된 결과를 얻을 수 있다. - 머신러닝에는 여러 종류의 앙상블 모델이 많지만, 그 중에서 모델을 구성하는 기본 요소로 결정 트리를 사용하는 랜덤 포레스트(Random Forest)와 그래디언트 부스팅(Gradient Boosting) 이 두 앙상블 모델이 분류와 회귀 문제의 ..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 지도 학습 알고리즘 : 결정 트리 결정 트리 - 결정 트리(Decision Tree) : 위키피디아에 따르면, 결정 트리는 의사 결정 규칙과 그에 대한 결과들을 트리 구조로 도식화한 의사 결정 지원 도구의 일종이다. 즉, 의사를 결정하는데 있어서 질문을 던지고 그 질문에 대한 답들이 트리 구조를 이루고 있는 형태이다. 결정 트리는 분류와 회귀 문제에 널리 사용되는 모델이다. 기본적으로 결정 트리는 최종적인 결정에 도달하기 위하여 예/아니오의 이진 분류에 대한 질문을 이어나가면서 학습한다. - 트리 구조 : 트리 구조는 그래프 구조의 일종이다. 그래프 구조는 하나의 노드가 여러 노드와 연결될 수 있지만, 트리 구조에서는 하나의 노드는 최대 2개의 ..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. MNIST 손글씨 숫자 인식 MNIST 데이터 세트 - MNIST(Modified National Institute of Standards and Technology database) : MNIST는 기계학습 분야에서 매우 유명한 데이트 세트로, 손으로 쓴 숫자들로 이루어진 대형 데이터베이스이다. 일반적으로 기계 학습 분야의 훈련과 테스트에 널리 사용된다. 60,000개의 훈련 이미지와 10,000개의 테스트 이미지를 포함하고 있다. - 데이터 세트 불러오기import numpy as np import pickle import sys,os sys.path.append(os.pardir) from dataset.mnist import load_mn..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 출력층 설계 항등 함수 - 신경망은 회귀와 분류 모두에 이용될 수 있으나, 다만 문제의 유형에 따라 출력층에 사용되는 활성화 함수에서 차이를 보인다. 일반적으로 회귀에는 항등 함수, 분류에는 소프트맥스(Softmax) 함수를 사용한다. 특히나 다중 분류에서 소프트맥스 함수를 사용한다. - 항등 함수(Identity Function) : 항등 함수는 입력을 그대로 출력하는 함수이다. 입력과 출력이 항상 같기 때문에, 출력층에 항등 함수를 사용하면 입력 신호가 그대로 출력 신호가 된다. 회귀 문제의 특성상 데이터 간의 연속적인 관계가 있어야하기 때문에, 값을 0과 1에 가깝게 분류하는 시그모이드, 계단 함수 등의 활성화 함수가 필요가 없는 것이다. ..