sailorCat

전체 글 257

카테고리
작성일
2022. 1. 27. 11:32
작성자
sailorCat
728x90

확률적 식별 모델 Probabilistic Descriminative Models

 

사후확률을 x에 관한 함수로 파라미터화 시키고, MLE를 통해 파라미터를 구한다.

입력벡터 x 대신 비선형 기저함수를 사용한다.

 

클래스 C1의 사후확률은 특성벡터의 선형함수가 로지스틱 시그모이드를 통과하는 함수이다

파이가 입력이다

특성벡터가 M 차원이라면 구해야 할 파라미터의 개수는 M개이다

생성모델에서 M(M+5)/2+1 개의 파라미터를 구해야 한다

 

최대우도해

우도함수

음의 로그우도 The Negative Logarithm of the Likelihood

음의 우도함수를 최소화하는 방식으로 풀 수 있다.

p 목표값

이것을 크로스 엔트로피 에러함수 Cross Entropy Error Function

크로스 엔트로피의 정의

이산확률변수의 경우

일반적으로 Cross Entropy 가 최소화 될때 두 확률분포의 차이가 최소화 된다.

에러함수 E(W)를 최소화시키는 것을 두가지 관점으로 보면

- 우도를 최대화 시키는 것

- 모델의 예측값의 분포와 목표변수의 분포의 차이를 최소화 하는 것

 

분포문제에서는 최소제곱법이 아닌 크로스 엔트로피를 사용해야 한다.

회귀문제에서는 최소제곱법을 사용해야 한다.

 

 

에러함수 w에 대한 gradient를 구한다.

전체 에러값에서 w를 구해야 하기 때문에 미분한다.

 

 

다중클래스 로지스틱 회귀 Multiclass Logistic Regression

우도함수

특성벡터를 위한 목표벡터 tn은 클래스에 해당하는 하나의 원소만 1이고, 나머지는 0인 1-of-K 인코딩으로 표현된다

Wj에 대한 gradient를 구한다

하나의 샘플에 대한 에러

728x90
카테고리
작성일
2022. 1. 26. 17:55
작성자
sailorCat
728x90

확률적 생성 모델 Probabilistic Generative Models

- 연속적 입력값

- 이산적 입력값

두 가지로 나눠서 풀 수 있다.

 

분류문제를 확률적 관점에서 살펴본다.

선형회귀와 마찬가지로 확률적 모델은 통합적인 관점을 제공한다.

데이터의 분포에 관해 어떤 가정을 두면 선형적인 결정경계가 그 결과로 유도된다.

 

사전확률과 확률을 모델링하고 베이즈 정리를 통해 사후확률을 구한다.

확률적 모델은 데이터의 분포를 모델링하면서 분류문제를 결과적으로 풀게 된다.

 

이와 같은 함수를 a에 대한 로지스틱 시그모이드 함수라고 부른다.

이 값은 0에서 1사이의 범위로 정의 된다.

 

로지스틱 시그모이드 Losigtic Sigmoid

 

대칭적이고, 로그함수를 통해 역함수를 구할 수 있다.

연속적 입력 Continous Inputs

 

사전확률이 가우시안 분포를 따르고 모든 클래스에 대해 공분산을 공유하여 동일하다고 가정한다.

 

 

시그모이드 함수 공분산을 같은 값으로 두었기 때문에 여러개의 클래스도 선형으로 분류가 가능하다.

 

 

최대우도해 Maximum Likelihood Solution

 

최대우도해를 통해 모델 파라미터를 구한다.

두개의 클래스인 경우

 

데이터

파라미터

 

 

입력이 이산값인 경우

 

각 특성 xi가 0과 1중 하나의 값만을 가질 수 있는 경우

클래스가 주어졌을 때 특성들이 조건부 독립 Conditional Independence 하는 가정을 할 경우 

이것을 Naive Bayes 가정이라고 한다.

728x90
카테고리
작성일
2022. 1. 26. 12:58
작성자
sailorCat
728x90

분류의 목표 

입력벡터 x를 K 개의 가능한 클래스 중에 하나의 클래스에 할당하는 것

 

분류를 위한 결정이론

 

확률적 모델 Probabilistic Model

- 생성모델 Generative Model : 사전확률과 확률을 모델링 한 후, 베이즈 정리를 통해 사후확률을 구한다. 

또는 결합확률을 직접 모델링 할 수도 있다.

- 식별모델 Discriminative : 사후확률을 직접 모델링

 

판별함수 Discriminant Function 

- 입력 x를 클래스로 할당하는 판별함수를 찾는다

- 확률값을 계산하지 않는다

 

 

입력 X를 클래스로 할당하는 판별함수를 찾을 때, 함수가 선형함수라면 선형 판별함수는 다음과 같다.

선형판별함수 y(x) 가 0보다 크거나 같을 경우 C1, 0보다 작은 경우 C2로 판별한다.

 

결정경계 Decision Boundary 는 다음과 같다.

그림으로 그래프를 표현하면

결정 경계면 위의 두 점 Xa와 Xb 는

빨간선은 결정경계면이고, w벡터가 결정경계면에 직교한다.

원점에서 빨간 선까지 거리에 미치지 못하는 것은 C2, 빨간 선을 넘는 것을 C1이라고 한다.

 

벡터 w를 원점에서 결정경계면에 대한 사영이라고 할 때.

w0은 결정 경계면의 위치를 결정한다.

- w0 < 0 이면 결정 경계면은 원점으로부터 w가 향하는 방향으로 멀어져 있다

- w0 > 0 이면 결정 경계면은 원점으로부터 w의 반대방향으로 멀어져 있다

 

이때 y(x) 값은 x와 결정경계면 사이의 부호화된 거리와 비례한다.

임의의 한 점 x의 결정 경계면에 대한 사영에서 다음의 식이 나온다.

 

여기서 r은 x가 결정경계면으로 직교하는 선을 사영했을 때 그 거리를 의미한다.

그래프에서 파란 점선으로 확인할 수 있다.

- y(x) > 0 이면 x는 결정 경계면을 기준으로 w가 향하는 방향에 있다

- y(x) < 0 이면 x는 결정 경계면을 기준으로 -w가 향하는 방향에 있다

- y(x)의 절대값이 클 수록 더 멀리 떨어져 있다

 

 

가짜 입력 Dummy Input x0 = 1을 이용해서 수식을 단순화 시키면

 

 

 

 

분류를 위한 최소제곱법 Least Squares for Classification

 

결정경계면에 닿았는지를 판별하는 C1, C2 값들을 실수로 만들면 최소제곱법을 사용할 수 있다.

 

위와 같은 판별함수에서 

제곱합 에러함수

 

판별함수는 다음과 같다.

최소 제곱법의 단점은 다음과 같다

- 극단치, 이상치 Outlier에 민감

- 목표값의 확률분포에 대한 잘못된 가정에 기초

 

보라색선이 최소제곱법

녹색선은 로지스틱 regression

퍼셉트론 알고리즘 The Perceptron Algorithm

f는 활성함수 Activtion Function으로 퍼셉트로는 다음의 계단형 함수를 사용한다.

 

목표값이 옳다면 0보다 큰 양수값을 가져야 한다.

에러가 생긴다면 Ep(w) 값이 음수 값을 가질 것이다.

 

 

에러함수가 주어지면 SGD를 통해 결정경계면을 알아낼 수 있다.

잘못 분류된 샘플에는 다음과 같은 영향을 준다.

마지막 그림이 이상적인 분류 그림이고 나머지는 점진적으로 분류가 진행되는 모습이다.

 

 

두 가지 모델은 지금은 쓰이지 않는다.

분류 모델의 기초가 되었지만 현재는 더 정확한 알고리즘이 나왔기 때문이다.

728x90
작성일
2022. 1. 25. 09:34
작성자
sailorCat
728x90

음식배달 서비스(배민, 쿠팡이츠 등)를 위한 예측모델

예측값 : 음식 배달에 걸리는 시간

 

예측값인 배달시간보다 실제 배달시간이 더 걸리는 경우(Under prediction)에는 사용자의 경험에 많은 영향을 끼친다.

배달 시간과 가까운 값을 예측하는 동시에 Under prediction 값이 최소화 하는 것이 좋은 모델이다.

 

시간 속성

market_id: 지역(배달이 이루어지는 도시) 아이디

created_at: 주문이 생성된 시간의 Timestamp(UTC)

actual_delivery_time: 주문자가 배달을 받은 시간의 Timestamp(UTC)

 

식당 속성

store_id: 식당 아이디

store_primary_category: 식당의 카테고리(italian, asian 등)

order_protocol: 주문을 받을 수 있는 방식을 나타내는 아이디 주문 속성

total_items: 주문에 포함된 아이템(음식) 개수

subtotal: 가격(센트 단위)

num_distinct_items: 주문에 포함된 비중복 아이템 개수

min_item_price: 주문에 포함된 아이템 중 가장 싼 아이템의 가격

max_item_price: 주문에 포함된 아이템 중 가장 비싼 아이템의 가격

 

지역 상황 속성

total_onshift: 주문이 생성되었을 때 가게로부터 10마일 이내에 있는 배달원들의 수

total_busy: 위 배달원들 중 주문에 관여하고 있는 사람들의 수

total_outstanding_orders: 주문한 가게로부터 10마일 이내에 있는 다른 주문들의 수 다른 모델들의 예측값 estimated_order_place_duration: 식당이 주문을 받을 때까지 걸릴 것으로 예상되는 시간(초단위) estimated_store_to_consumer_driving_duration: 식당에서 출발해 주문자에 도착할 때까지 걸릴 것으로 예측되는 시간

 

 

데이터를 가져오고, 주문시간 created_at 도착시간 actual_delivery_time의 차이를 통해 배달시간 delivery_time을 새로 만들었다.

 

전체 데이터는 197428 개의 행으로 이루어져 있다.

결측치가 상당히 많다.

 

 

 

 

 

데이터 전처리 Preprocessing

 

1. imputer를 통해 수치형 데이터의 중간값 median을 찾아 새로운 데이터 프레임 delivery_에 결측치를 채운 값을 생성

2. 수치형 데이터가 아닌 market_id, order_protocol, store_primary_category 의 값의 결측치를 0.0 과 str,other로 채움

3. OrdinalEncoding으로 store_primary_category를 수치형으로 바꿈

4. OneHotEncoding으로 market_id, order_protocol, store_primary_category 변환하여 저장

5. 원본데이터 delivery에 바꾼 모든 값 병합

6. 예상 주문시간, 예상 배달시간을 합친 총 예상 시간을 estimated_time으로 생성

 

 

 

 

Train Set, Test Set 분리

데이터가 하나로 되어있기 때문에 모델 훈련과 예측이 가능하도록 전처리를 모두 진행하고 분리시켜주었다.

sklearn.model_Selection의 train_test_split으로 분할했다.

 

 

 

 

 

 

파이프라인 Pipeline

모델 훈련에 사용되는 features, 레이블 값인 delivery_time을 위한 값들을 생성

파이프라인으로 연속형 변수로 스케일링하고 수치형 데이터와 Onehotencoding 값을 fit transform 하여 prepared 데이터를 생성

 

 

 

 

 

모델 훈련 

LinearRegression

Lasso

Ridge

DecisionTreeRegressor

ElasticNet

 

훈련데이터에 대한 성능 측정은 RMSE와 Under Prediction값을 사용했다.

Under prediction = 배달 예상시간보다 실제 배달시간이 더 걸린 경우/ 전체 경우

 

 

 

 

 

테스트 데이터셋으로 최종 평가하기 

두 가지 결과가 괜찮은 것을 비교했다.

DecisionTreeRegressor

ElasticNet

 

728x90
카테고리
작성일
2022. 1. 25. 09:02
작성자
sailorCat
728x90

규제화 된 최소제곱법 Regularized Least Squares

 

에러함수는 다음과 같다

w의 최적값은

일반화 시킨 규제값은

q가 1인 경우 Lasso모델에서 

Constrained Minimisation 제약조건 문제로 나타낼 수 있다.

노란 내부에 점이 있으면서 파란 가운데 점과의 거리를 최소화 해야 하는 문제이다.

W 값에는 테두리도 포함한다.

 

L2 norm, L1 norm

두 L1, L2 norm 은 동일한 에러함수 값을 갖는다.

L1은 반드시 꼭지점에 닿을 때 최소의 값을 얻을 수 있다.

 

 

 

편향 분산 분해 Bias - Variance Decomposition

 

모델이 과적합 되는 현상을 설명한다.

제곱합 손실함수가 주어졌을 때 최적의 예측값은

손실함수의 기댓값은

제한된 데이터셋 D만 주어져 있기 때문에 h(x)를 정확히 알 수 없다.

대신 파라미터화 된 함수 y(x, w)를 구해서 최대한 손실함수의 기댓값을 최소화 한다.

 

베이지안 방법 - 모델 파라미터 w의 사후확률분포를 계산

빈도주의 방법 - 모델 파라미터 w의 점추정 값을 구하고 여러개의 데이터셋을 가정했을 때 발생하는 평균적인 손실을 계산하는 가상의 실험으로 점추정 값의 불확실성을 해석한다.

 

특정 데이터셋 D에 대한 손실이

손실함수의 기댓값은

 

 

여러개의 데이터셋 D1, ... Di 가 주어졌을 때 이 값들의 평균은

 

평균, 편향, 분산
함수 학습결과, 각 x 값의 평균

L = 100, N = 25

람다값이 크면 규제가 크고, 람다가 작으면 규제가 적어서 자유도가 높다.

베이지안 선형회귀 Bayesian Linear Regression

불확실성을 줄일 수 있다.

파라미터 w의 사전확률을 다음과 같은 가우시안 분포라고 할 때

우도는 다음과 같다.

 

w의 사후확률은 다음과 같다.

다음과 같은 사전확률은 식을 단순화 시킨다.

이 경우에 사후확률은 다음과 같다.

사후확률의 로그 값은 다음과 같다.

제곱합에러함수와 규제화를 더한 값이 나온다.

 

따라서 빈도주의보다 베이지안이 더 강력한 모델이다.

 

 

예측분포 Predictive Distribution

베이지안 모델에서는 단순히 예측값만 구하는 것이 아니라 예측 값의 분포를 구할 수 있다.

새로운 입력 x가 주어질 때 t를 예측한다.

 

 

이전 결과들을 적용하면

 

728x90
카테고리
작성일
2022. 1. 24. 13:38
작성자
sailorCat
728x90

선형모델을 간단히 식으로 나타내면

이렇게 w와 x의 식으로 나타낼 수 있다.

 

이 모델의 파라미터는 다음과 같다.

파라미터 w에 대해 선형이며 입력 데이터 x에 대해서도 선형이다.

 

x에 대한 비선형 함수를 만들면 다음과 같다.

그런데 이때 x에 대해서는 비선형인 함수이지만,

w 파라미터에 대해서는 아직도 선형함수이기 때문에 계산이 가능하다.

 

x에 대해 비선형이고, w에 대해 선형인 함수를 기저함수 Basis Function이라고 부른다.

 

 

 

다항식 기저함수 Polynomial Basis

다항식 기저함수
다양한 다항식 기저함수 그래프

가우시안 기저함수

가우시안 기저함수
가우시안 기저함수 그래프

s : 그래프의 퍼짐 정도

u : 그래프의 위치

 

시그모이드 기저함수 Sigmoid

시그모이드 기저함수
시그모이드 기저함수 그래프

 

 

최대 우도와 최소제곱법 Maximum Likelihood , Least Squares

에러 함수가 가우시안 노이즈라고 할 때, 최대 우도로부터 이것을 유도할 수 있다.

e가 가우시안 분포를 따르는 노이즈 확률변수이고, y(x, w)가 결정론적 함수 deterministic 일 때

t의 분포는 다음과 같다.

 

t의 분포

이때 t의 조건부 기댓값은 y(x, w) 이다.

제곱합이 손실함수로 쓰이는 경우 Squared Loss Function 새로운 x가 주어졌을 때 t의 최적의 예측값 Optimal Prediction은 t의 조건부 기댓값이다.

 

t의 기댓값

파라미터인 w를 최적값으로 구하기 위해서 

최대 우도를 추정한다.

우도함수
로그우도함수

로그우도함수를 최대화시키는 w 값은 제곱합 에러함수를 최소화 시키는 값이다.

 

w의 최적값

Moore - Penrose pseudo-inverse

이 식은 Normal Equations라고 부른다.

NxM 행렬, N개의 기저함수를 가진다.

 

편향 파라미터 w0
베타의 최적값

 

 

 

기하학적으로 이것을 살펴보면

 

벡터 집합에 대한 생성 span은 다음과 같다.

생성 - 벡터로 만들 수 있는 집합

행렬의 치역

치역 R(A)는 A의 모든 열들에 대한 생성 span 이다.

 

 

백터의 사영 Projection

벡터 t의 사영은 span에 속한 벡터중 t에 가장 가까운 벡터이다.

A의 열들이 선형 독립이면 다음과 같다.

 

 

확률적 경사하강법 Stochastic Gradient Decent

대규모의 데이터를 조금씩 알아내야 할 때 온라인 학습에서 SGD를 활용할 수 있다.

에러 함수 E가

제곱합 에러함수인 경우

728x90
카테고리
작성일
2022. 1. 20. 04:07
작성자
sailorCat
728x90

 

728x90
작성일
2022. 1. 20. 04:02
작성자
sailorCat
728x90

밀도추정 Density Estimation

𝑁N개의 관찰데이터 observations 𝐱1,𝐱𝑁x1,…xN가 주어졌을 때 분포함수 𝑝(𝐱)p(x)를 찾는 것

- 𝑝(𝐱)p(x)를 파라미터화된 분포로 가정한다. 회귀, 분류문제에서는 주로 𝑝(𝑡|𝐱)p(t|x), 𝑝(|𝐱)p(C|x)를 추정한다

- 그 다음 분포의 파라미터를 찾는다.

  • 빈도주의 방법 Frequentist's way : 어떤 기준 예를 들어 likelihood을 최적화시키는 과정을 통해 파라미터 값을 정한다. 파라미터의 하나의 값을 구하게 된다.
  • 베이지언 방법 Bayesian way : 먼저 파라미터의 사전확률 prior distribution 을 가정하고 Bayes' rule을 통해 파라미터의 사후확률 posterior distribution 을 구한다

-파라미터를 찾았다면 그것을 사용해 예측 할 수 있다

 

켤레사전분포 Conjugate Prior

사후확률이 사전확률과 동일한 함수형태를 가지도록 해준다.

728x90