반응형

잡학사전/머신러닝 11

[머신러닝] Gradient Descent (with Python)

이번 포스팅에서는 최적화 문제에서 널리 쓰이는 방법 중 하나인 Gradient Descent에 대해 알아봅시다.  Gradient Descent?Gradient Descent는 머신러닝과 최적화 문제에서 널리 사용되는 방법 중 하나로, 주어진 함수의 최소값을 찾기 위해 사용됩니다.  이 방법은 이름 그대로 cost function의 기울기가 낮은 방향으로 반복적으로 이동하며 최소값을 찾아가는 방법입니다. 기본적으로 최소화하고자 하는 목적 함수(cost function) $J(\theta)$와 입력변수 $\theta$, 그리고 목적함수의 기울기인 $\triangledown J(\theta)$를 필요로 합니다.   동작 알고리즘Gradient Descent의 동작 알고리즘은 아래와 같이 이루어집니다. 1. ..

[머신러닝] 얀센의 부등식(Jansen's inequality)

이번 포스팅에서는 얀센의 부등식에 대해 알아보겠습니다. (출처: 선형대수와 통계학으로 배우는 머신러닝 with 파이썬, 장철원 지음) 얀센의 부등식(Jansen's inequality) 얀센의 부등식은 기댓값의 convex 함수와 convex 함수의 기댓값 사이에 성립하는 부등식입니다. 얀센의 부등식은 아래와 같이 나타냅니다. $$f(wx_1+(1-w)x_2) \leq wf(x_1)+(1-w)f(x_2)$$ 앞서 언급했던 함수 $f$가 컨벡스(convex)할 조건과 같습니다. 이를 좀 더 일반화한다면 아래와 같이 나타낼 수 있습니다. $$f(w_1x_1+...+w_kx_k) \leq w_1f(x_1)+...+w_kf(x_k)$$ 여기서 $x_1, ... x_k$는 함수 $f$의 정의역이며, $w_1, ...

[머신러닝] 컨벡스 함수(convex function)

이번 포스팅에서는 컨벡스 함수(convex function)에 대해 알아보겠습니다. (출처: 선형대수와 통계학으로 배우는 머신러닝 with 파이썬, 장철원 지음) 컨벡스 함수란? 컨벡스 함수란 만약 함수 $f$의 정의역이 컨벡스 셋(convex set)이고, 모든 데이터 포인트 $x_1, x_2, 0\le w \le 1$에 대하여 $$f(wx_1 + (1-w)x_2) \le wf(x_1)+(1-w)f(x_2) \tag{1}$$ 를 만족하는 함수 $f$를 컨벡스 함수라고 합니다. 해석하면 두 점 $(x_1,f(x_1))$, $(x_2,f(x_2))$ 사이의 선분이 함수 $f$의 그래프보다 위에 있어야 한다는 의미입니다. 위 부등식을 그림으로 표현하면 아래와 같습니다. 만약 식 (1)에서 등호가 없다면 st..

[머신러닝] 손실함수(loss function) (2) - 엔트로피(Entropy)

이번 포스팅에서는 entropy에 대해 알아보겠습니다. (출처: 선형대수와 통계학으로 배우는 머신러닝 with 파이썬, 장철원 지음) 엔트로피(Entropy) entropy는 정보이론에서 불확실성의 척도로 사용합니다. (저는 사실 entropy는 열역학할 때만 쓰는 개념인 줄 알았습니다.) 확률변수 $x$의 entropy는 아래와 같이 정의합니다. Entropy $$H(x) = -\sum_{i=1}^n P(x_i)\log P(x_i)$$ entropy가 높다는 것은 정보가 많고 확률이 낮다는 것을 의미합니다. entropy는 하나의 분포를 대상으로 하는 반면, cross entropy는 두 분포를 대상으로 합니다. Cross Entropy $$H_{p,q}(x) = -\sum_{i=1}^n P(x_i)\..

[머신러닝] 손실함수(loss function) (1) - L1, L2 손실함수

이번 포스팅에서는 손실함수에 대해 알아보겠습니다. (출처: 선형대수와 통계학으로 배우는 머신러닝 with 파이썬, 장철원 지음) 손실함수(loss function) 손실함수는 머신러닝을 통해 생성한 모형이 실제값과 얼마나 차이가 나는지 손실 정도를 수치로 나타낸 함수입니다. 손실함수에는 $L1$ 손실함수와 $L2$ 손실함수가 존재합니다. 그리고 손실함수와 비슷하게 비용함수라는 개념도 존재합니다만 엄밀하게 말하면 서로 다르지만 실제로는 구분없이 사용하기도 한답니다. $L1$ 손실함수 $L1$ 손실은 실제값과 예측값의 차이를 말하며 수식으로 아래와 같이 표현할 수 있습니다. $$\sum_{i=1}^n \left\vert y_{i,true} - y_{i,predict} \right\vert $$ $L1$ 손실..

[머신러닝] 그리드 서치(grid search)

이번 포스팅에서는 그리드 서치(grid search)에 대해 알아보겠습니다. (출처: 선형대수와 통계학으로 배우는 머신러닝 with 파이썬, 장철원 지음) 그리드 서치(grid search) 그리드 서치는 관심있는 매개변수들을 순차적으로 입력한 후에 가장 높은 성능을 보이는 하이퍼파라미터를 탐색하는 방법입니다. 쉽게 말해 가능한 모든 경우의 수를 따져서 맘에 드는 하이퍼파라미터를 고르는거죠. 예를 들어 k-최근접 이웃 알고리즘에 사용할 수 있는 k 값에는 여러 후보가 존재하고, 어떤 하이퍼파라미터 k가 높은 성능을 보일지는 직접 해보기 전엔 알 수가 없습니다. 모두 해보고 모형의 성능을 비교한 후 최적의 k를 선정해야하죠. k-최근접 이웃 알고리즘 (Python) 파이썬 예제를 통해 k-최근접 이웃 알고..

[머신러닝] 파이프라인(Pipeline)

이번 포스팅에서는 파이프라인(Pipeline)에 대해 알아보겠습니다. (출처: 선형대수와 통계학으로 배우는 머신러닝 with 파이썬, 장철원 지음) 파이프라인(Pipeline) 일반적으로 파이프라인은 생산라인에서 동시에 여러 공정 프로세스를 효율적으로 가능하게 하도록 하는 것을 말합니다. 머신러닝에서도 비슷하게 파이프라인은 모델을 가속, 재사용, 관리 및 배포하는 프로세스를 구현하고 표준화합니다. 파이프라인을 사용하면 데이터 전처리와 모델 학습, 예측까지 한번에 가능하여 코드도 간결해지는 장점이 있습니다. 파이프라인 적용 예제 (Python) 파이프라인 적용 전/후의 코드가 어떻게 바뀌는지 예제를 통해 알아보겠습니다. import pandas as pd import numpy as np from skle..

[머신러닝] 교차 검증(cross validation)

이번 포스팅에서는 교차 검증에 대해 알아보겠습니다. (출처: 선형대수와 통계학으로 배우는 머신러닝 with 파이썬, 장철원 지음) 교차 검증(cross validation)이란? 오버피팅과 언더피팅을 방지하고 적합한 모형을 추정하기 위해 모형의 성능을 검증하는 것을 교차검증(cross validation)이라고 합니다. 위 그림과 같이 최초에 Data가 주어져 이 데이터를 이용해 모형을 만든다고 해 봅시다. 그런데 전체 data set을 사용하여 모형을 생성하면 실제 data에 적용해보고 성능을 평가할 새로운 data가 없기 때문에 문제가 됩니다. 이 문제를 해결하기 위해 전체 data를 training data와 test data로 분할합니다. 이 경우 training data는 모형 생성을 위한 학습..

[머신러닝] 오버피팅과 언더피팅

이번 포스팅에서는 오버피팅(Overfitting)과 언더피팅(underfitting)에 대해 알아보겠습니다. (출처: 선형대수와 통계학으로 배우는 머신러닝 with 파이썬, 장철원 지음) 오버피팅(Overfitting)과 언더피팅(underfitting) 머신러닝 모형이 실제 모형에 얼마나 가깝게 모델링되었는지와 관계된 용어인 오버피팅과 언더피팅은 각각 특정 data set에 과도하게/과소하게 적합된 것을 말합니다. 실제 데이터 모형이 $n$ 차원식이라고 했을 때 수식으로 나타내면 아래와 같습니다. $$ y_i = w_nx^n+w_{n-1}x^{n-1}+...+w_1x+w_0$$ 오버피팅은 특정 데이터셋에 과도하게 적합된 것을 말하며, 식으로 나타내면 아래와 같습니다. $$y_i = w_{n+m}x^{n..

[머신러닝] 초평면(hyperplane)과 반공간(halfspace)

이번 포스팅에서는 초평면(hyperplane)과 반공간(halfspace)에 대해 알아보겠습니다. 참고문헌: 선형대수와 통계학으로 배우는 머신러닝 with 파이썬, 장철원 지음 초평면(hyperplane) 초평면은 아래와 같이 $w^Tx=b$를 만족하는 데이터 포인트 $x$의 집합을 말합니다. $$ \left\{x\mid w^Tx=b\right\} $$ 이 때 $w$는 $n$ 차원 가중치 벡터 , $b$는 스칼라 값입니다. 여기서 내적값이 $b$가 아니라 0인 형태로 바꿉니다. $$ \left\{x\mid w^T\left(x-x_0\right)=0\right\} $$ 이 때 $x_0$는 초평면 내 어떤 점이든 괜찮습니다. 두 벡터의 내적값이 0이면 서로 수직이므로, 이를 그림으로 나타내면 위와 같습니다...

반응형