목록Machine Learning (38)
ecsimsw
다중 분류 / Multinomial classification - 이전에 Logistic Regression으로 이진 분류를 처리하는 것을 공부하였다. 두 집합으로 나누는 것은 할 수 있는데, 여러 집합으로 분류해야하는 경우는 어떻게 처리해야할까. - 집합이 두개인 것과 똑같이, A와 A가 아닌 것, B와 B가 아닌 것, C와 C가 아닌 것으로 구분하여 이진 회귀로 처리하면 3개의 집합을 분류할 수 있다. - 이렇게 3개의 가설을 세울 수 있고, 그것을 학습하는 것으로 x가 각 집합에 속할 확률을 예측할 수 있다. 따라서 입력에 대한 3개의 함수 값을 비교하여, 가장 큰 값을 갖는 집합에 속하는 것으로 분류한다. Softmax - 위의 예제에서 가설 함수는 시그모이드 함수를 사용했으므로 0~1 사이의 값..
1. DTM (Document-Term Matrix) : 문서 단어 행렬(DTM)은 문장 안 각 단어들의 빈도를 행렬로 표현한 것이다. 2. TF-IDF : TF는 각 문서 안에서의 단어의 빈도, DF는 문서군안에서 각 단어가 등장한 문서의 수를 의미한다. IDF는 DF에 반비례하는 값이다. 이 TF-IDF를 사용하여 문장끼리의 유사도나, 단어의 중요도를 구할 수 있다. #TF : term frequency #IDF : inverse document frequency #IDF는 이 DF의 역수인 것은 맞는데, 일반 역수를 사용하면 분자 (전체 문장의 개수)가 늘어짐에 따라 분모 (등장 문장의 수)는 그를 따라가지 못하므로, 그 값이 기하급수적으로 커져 결국 단어들의 중요성을 하향평준화 시켜 비교가 어려워..
이진 분류 ( Binary Classification ) - 적합/부적합, 합격/불합격, 스팸/햄 처럼 2가지 선택지로 분류하는 것을 이진 분류라고 한다. 놀이동산에서 범퍼카를 타려면 키가 126cm 이상이어야 한다고 생각해보자. 그럼 키에 따른 분표는 다음과 같을 것이다. - 이전 선형 회귀에서 본 분표랑은 조금 다르게 생겼다. 그래프는 직선보다는 S에 가깝고, y의 값은 적합, 또는 부적합 두가지 경우만을 갖는다. 적합을 1, 부적합을 0이라고 하면, 예측 값은 0~1 값만을 갖고, 그 모양은 S인 함수를 만들어야 이런 이진 분류를 잘 표현할 수 있을 것이다. - 이런 이진 분류를 풀기 위한 대표적인 알고리즘이 로지스틱 회귀이고, 그 분포를 가장 잘 설명하기 위해 위 조건을 충족하는 함수, 시그모이드..
Optimizer - 선형 회귀 학습은 결국 데이터를 가장 잘 표현할 수 있는 선(단순 선형 회귀 기준으로)을 그리는 과정이다. 그 예측 값과 실제 값의 그 오차를 표현하는 값을 최소화하는 알고리즘이 최적화 알고리즘 / Optimizer 이다. - 기본적인 최적화 알고리즘 중 하나가 경사 하강법이다. Gradient descent - 가설 H(x)=Wx+b에서 편향 b를 제거하고 가중치 W만 생각하여, 가설을 H(x) = Wx라고 하자. 비용 함수는 아래 그래프처럼 2차 함수 형태를 갖을 것이고, 그 값이 최저점이 되는 빨간색 꼭짓점의 W을 찾아야한다. 검정 원 표시는 랜덤하게 정해진 W 값이 점차 목표 W 값에 수렴하는 과정을 표시하였다. 이 과정이 바로 경사 하강법이다. - W값을 움직이는 로직은 비..
Linear Regression - 어떠한 경향을 갖는다. 라는 것에 다음 데이터의 결과를 예측할 때가 많다. 더 많은 시간을 공부에 쓰면 더 좋은 점수를 받더라, 반도체 집적 회로의 성능이 2년에 2배씩 증가하더라. 처럼 기존의 데이터가 어떤 경향을 갖는지를 파악하여, 그럼 8시간 공부한 시험에는 몇 점을 받겠구나, 반도체는 2020년도에 어떤 성능을 갖겠구나 라는 예측을 하게 된다. 이렇게 종족 변수(y)와 독립 변수(x)의 선형 상관 관계를 모델링한 것을 선형 회귀라고 한다. - 독립 변수(x)의 개수에 따라, 1개라면 단순 선형 회귀, 2개 이상이라면 다중 선형 회귀 분석이라고 한다. Hypothesis - 대략 50명 정도 되는 사람의 키와 몸무게를 기록했다고 생각해보자. 해당 집단의 기록은 아..
개요 - 텐서플로우, 사이킷 런, 케라스 등, 라이브러리로 혼자 예제를 만들어보고 학습해보았다. 그렇지만 사실, 어떤 라이브러리에 무슨 기능이 있고, 그것을 사용하면 어떤 마법이 벌어진다. 정도로 경험한거지, 어떤 모델이 어떤 학습 유형에 효과적인지, 어떤 원리인지 전혀 모르는 상태이다. - 지금까지 학습을 어플리케이션단에서 어떻게 사용되는지 활용해보면서 공부했다면, 이번에는 학습 요소, 알고리즘 원리, 보다 효율적인 학습을 위한 방법을 공부해볼 생각이다. 지도 학습 (Supervised) / 비지도 학습 (Un-supervised) / 강화 학습 (Reinforcement) - 지도 학습 : 지도 학습은 학습 데이터와 그 데이터에 대한 레이블이 지정된 상황에서 학습하는 것이다. 예를 들어 강아지, 고양..
PIL / OpenCV / 이미지 처리 - 이미지 처리를 위한 라이브러리를 간단하게만 사용해보았다. - 영상 안의 사람이나 사물을 인식하고 이를 레이블링 하는 등의 프로젝트를 만들어보면서 공부할 생각이다. PIL - 파이썬에서 이미지를 처리하기 위한 대표적인 라이브러리. Example - 이미지를 정의한 사이즈의 0,1 이차원 배열로 변환한다. - 이미지를 회색조로, 크기를 정의한 사이즈로 변경하고, 전체 픽셀 데이터를 2차원으로 표현한 후, 이 전체 픽셀의 평균값을 계산한다. 모든 각 픽셀을 평균값과 비교하여 그보다 크면 1, 작으면 0로 하여 다시 2차원 배열에 저장한다. from PIL import Image import numpy as np import matplotlib.pyplot as pp ..