Probabilistic Machine Learning 요소
- 입력의 특징 Representation
- 각 관측치에 대해 각 특징에 대한 값을 갖는 벡터가 있다.
- Classification Function
- 분류를 수행하는 데 사용할 함수
- Objective function for learning
- 분류의 최적 매개 변수를 찾을 수 있는 공식 (교육 예제의 오류를 최소화하는 데 중점을 둔다.)
- 목적 함수를 최적화하기 위한 알고리즘
- 목표 함쉬의 최소값을 찾는 효율적인 방법
- 모델링 단계: 교육 및 테스트
Logistic Regression 이란? 로지스틱 회귀 분석이란?
- 교육 세트를 사용하여 가중치 벡터와 Bias 용어를 학습한다.
- 각 가중치는 특정 형상의 영향을 완화하기 위해 사용된다.
- 이것은 단일 관측치에 대한 예제이다.
- 각 예제는 벡터로 특징지어지며, 이 벡터의 각 요소는 특정 특징에 대한 값이다.
Binary Logistic Regression 이란?
- Classification 은 모델의 출력 값이 확률이 되는 것을 요구한다.
- 출력 값은 0 혹은 1 이다.
- p(y = 1) + p(y = 0) = 1
- z 를 확률 형식으로 변환하기 위해 sigmoid (logistic) function 를 사용한다.
- 0.5 의 Decision Boundary 를 사용하여 가질 수 있는 식이다.
- 가중치가 w = [2.5, -5.0, -1.2, 0.5, 2.0, 0.7] 주어지고 Bias 가 0.1 이다.
- 그리고 x 벡터는 아래 그림과 같이 x = [3, 2, 1, 3, 0, 4.19] 이다.
- 다음과 같이 계산할 수 있다.
- 데이터 처리를 일반적으로 Matrix Format 에서 끝낸다.
- 많은 예시들을 처리하기 위해 Matrix Format 을 사용한다.
- m 예시들 x^(1), ... x^(m) 그리고 f 특징들과 가중치는 다음과 같이 표현한다.
- Bias 는 m 길이의 백터이며, 각각의 차원에 같은 값을 가진다 b = [b, b, b, ...., b]
- 근래의 머신들은 매트릭스 계산들을 위해 최적화하는 방법들을 가지고 있고 이를 효과적으로 수행할 수 있다.
Multinomial Logistic Regression 이란?
- Softmax Regression 이라고 잘 알려져있다.
- K 개의 클래스들과 그들 중 하나의 정답을 가지고 있다.
- 출력 값은 1 은 Predicted 클래스를 위한 것이고 0 은 모든 다른 K-1 클래스를 가진 1-hot vector 이다.
Softmax Function 이란?
- Softmax Function 은 Sigmoid 의 일반화이다.
- 즉 K 값의 벡터를 취하고 확률 분포에 그것들을 매핑한다.
- 결과 K 는 0 과 1 사이이며 합이 최대 1이다.
- 예시: z = [0.6, 1.1, -1.55, 1.2, 3.2, -1.1] 는 softmax(z) = [0.055, 0.090, 0.006, 0.099, 0.l74, 0.010]
- 우리가 z 를 확정했을 때, 각 클래스에 대한 가중치 벡터와 각 클래스에 대한 편향도 있다.
- 가중치 행렬 W 로 나타낼 수 있다. W = K x f, b 는 K x 1 이다.
Logistic Regression VS Naive Bayes
- Naive Bayes
- (입력 특징의) 증거를 과대평가하는 강력한 조건부 독립 가정이다.
- 각 feature 를 공식으로 곱하는 자체 확률을 가진 개별 Feature 로 취급한다.
- (상호 의존성이 있는 경우, 확률에 겹침이 있음)
- 교육 속도가 빠르며 소규모 데이터 세트에 적합하다.
- Logistic Regression
- Logistic Regression 은 상관된 Feature 에 더 강력하다.
- Weight 의 일부는 상관된 특징 중 하나에 할당되고 나머지는 기타 상관 특성이다.
- 대규모 데이터 세트에 대한 기본 접근 방식을 제공한다.
Normalization 이란?
- 속성 변환은 함수가 주어진 속성의 전체 값 집합을 새로운 대체 값 집합으로 매핑하여 각 이전 값이 새 값 중 하나로 식별될 수 있도록 하는 경우이다.
- 예를 들어, x 는 x^k, log(x), 또는 e^x 로 변환 될 수 있다.
- 유사한 범위를 가지도록 Feature 를 정규화하는 것이 일반적이다.
- 서로 다른 속성의 척도 차이를 조정하여 더 큰 값의 속성이 모델링 프로세스에 불균형적으로 영향을 미치지 않도록 하는 데 사용한다.
일반적인 Normalization 기술들
- Standardization 이란?
- 데이터 집합 평균을 빼고 각 데이터 점에서 데이터 집합 표준 편차로 나눈다.
- 평균이 0 이고 표준 편차가 1 인 형상 값의 결과
- 특이치의 영향을 덜 받지만 데이터가 정규 분포를 따른다고 가정한다.
- Min-Max 스케일링
- 각 데이터 지점에서 데이터 집합의 최소 값을 뺀 후 데이터 집한의 최대값과 최소값 사이의 차이로 나눈다.
- 모든 형상 값은 [0, 1] 범위이다.
- 특이치에 취약하지만 데이터의 기본 분포에 대한 가정을 하지 않는다.
Training a Binary Logistic Regression Classifier
- 데이터에 가장 적합한 로지스틱 회귀함수를 찾아야한다.
- 가장 잘맞는 함수를 매개 변수화 하는 w 와 b 값들을 찾는 양.
- 가장 적합한 로지스틱 회귀 함수를 그것이 만들어낸 예측과 실제 진실 사이의 차이 (또는 손실) 가 가장 작은 함수로 정의한다.
- 로지스틱 회귀 분석의 경우 올바른 클래스 레이블을 예측하기 위해 선택된다.
- 매개변수를 선택하고 입력이 주어진 실제 레이블의 로그 확률을 최대화한다.
- p(y|x) 를 가장 최대화 해야하며, y 가 1 또는 0 이기 때문에 Bernoulli 분포 공식을 사용할 수 있다.
- 로그를 취했을때
- 최대화 대신에 p 를 최소화하면, 그것을 부정하는 Cross-entropy(CE) loss 를 얻는다.
- y hat 을 gamma(w * x + b) 로 사용하기 때문에
- 그리고, 경사 하강법을 사용하여 L 을 최소화한다. (최소값을 만드는 w와 b를 찾는다.)
Gradient Descent 란? 경사 하강법 이란?
- 도함수는 'rate of change' 이다. y = f(x)
- 독립 변수(속성/특징) 에 대한 종속(목표) 변쉬의 변화 비율이다.
- 선의 경우, 도함수는 기울기와 동일하고 비선형 함수의 경우, 도함수는 특정 점에서 접선의 기울기를 측정한다.
- 여러 개의 입력 변수를 사용하는 함수가 있을 때, 기울기 벡터로 특성화한다.
- 입력 변수 x1, ..., xn 중 하나에서 각 항목이 부분 미분인 벡터
- 단일 매개 변수 w1 과 함께 간단한 2 차 손실 함수를 사용한다.
- 랜덤 초기값 w1 로 시작한다.
- 기울기는 다음과 같이 계산한다.
- 기울기가 음수이면, 증가한다.
- 반대로 양수이면 감소한다.
- 경사를 사용하여 방향을 알고 함수의 최소값을 향해 나아간다.
- 손실 함수의 값이 감소하지 않을 때까지 각각, 아래 업데이트를 진행한다.
- 이 예에서는 W 가 하나만 있지만 다른 예에서는 여러 개일 수 있다.
- 각 단계의 크기는 학습 속도라고 불리는 매개 변수 alpha 에 따라 달라진다.
Learning Rate
- 학습률이 너무 작으면 Convergence 되는 시간이 오래걸린다.
- 학습률이 너무 크면 최소치를 초과할 수 있다.
- 학습속도는 일정하거나 시간이 지남에 따라 저하될 수 있다.
최적화
- 각 단계에서 배치 기울기 강하를 가정했다.
- 가중치를 업데이트하는 데 사용되는 기울기는 모든 교육 예제의 기울기에 대한 평균이다.
- 각 단계에서의 Stochastic gradient descent
- 가중치를 업데이트하는 데 사용되는 경사는 단일 교육 예제에 대한 것이다.
- 몇 가지 Example 들을 막을 수 있다.
- 각 단계에서 미니 배치 경사 하강
- 가중치를 업데이트 하는 데 사용되는 기울기는 한 Batch (e.g. 100) 에 결쳐 평균화된다.
- 가장 일반적
Logistic Regression Training Steps
- 손실 함수 공식화
- 손실 함수 최소화하는 w 와 b 찾기
- w 와 b 는 가장 적합한 로지스틱 회귀 모형의 모수이다.
모델의 복잡성을 낮추는 Regularization
- 정규화 (Regularization) 은 일반적으로 모델 매개변수의 수 및 크기를 줄임으로써 모델의 복잡성을 줄이고 Overfitting 을 줄이기 위한 기술이다.
- 더 복잡한 모델은 더 많은 Parameters, Coefficients, Weights 들을 갖는 경향이 있다.
- 선형 모델에서는 2개의 Parameters : a and b - y = ax + b
- Quadratic 모델은 3개 : a, b, and c: y = ax^2 + bx + c
- Polynomial 모델은 3개 이상: e.g. Polynomial regression
- 특정 수의 parameters 를 가진 모델 중에서, 작은 값을 가진 parameters 를 가진 모델들은 더 단순한 경향이 있고, 많은 parameters 가진 모델들은 더 복잡한 경향을 가지고 있다.
- Parameters 값이 작으면 해당 기능 (예: parameters 가 곱해지는 것)의 영향을 덜 강조한다.
- 개념적으로 이것은 모델 곡성의 더 작은 뒤틀림을 초래하므로 덜 복잡해진다.
- Coefficients 의 일부가 매우 작을 때, 그러한 parameters 가 무시할 수 있는 더 작은 정도 (더 부드러운) 다항식을 사용하는 것과 같다. ( 수치적으로 매우 작다, 예를 들어 0 에 가깝다.)
- y = ax^2 + bx + c 는 a 의 작은 값에 대해 y = bx + c 와 동등해진다.
L1 Regularization
- 다음과 같이 손실 함수에 패널티 용어를 추가한다.
- Lambda: 정규화 수준을 제어하는 parameter
- wj: 모델을 정규화하려는 모델의 Coefficients or Weights
- 최소의 손실을 가진 모델을 제공하는 parameters 중에서 모델 Coefficients 의 합들이 가장 작은 것을 선택한다.
- L1 Regularization 의 효과
- 중요하지 않은 festures 들의 Coefficients 를 0 에 가깝거나 0 으로 만든다.
- 따라서 중요도가 낮은 festure 에 대한 모델의 민감도를 감소시킨다.
- 종종 coefficent 가 0일때 features 가 모두 제거된다.
L2 Regularization
- 손실 함수에 패널티 용어를 추가한다.
- L1 Regularization 과 다른건 Penalty Term 의 wj 값이 제곱이 된 것이다.
- L1 과 다르게 L2 는 가중치를 0 으로 만드는 경향이 없다.
- Weight 0.02 가 주어진다면, L1 에서는 0.02 가 곱해 질것이고, L2 의경우 0.0004 가 곱해질 것이다.
- 가중치가 작아질수록 L2의 패널티 기간은 이미 매우 작고 0에 가깝기 때문에 L2는 패널티 기간을 작게 만들기 위해 0으로 만들 필요가 없다.
L1 VS L2 Regularization
- 데이터에 몇 가지 두드러진 Features 가 있다고 생각되면 L1 을 사용한다, 특히 관련이 없는 Features 들이 많은 고차원 데이터의 경우
- L1 은 차원 감소의 한 형태이다.
- L1 Regularization: Lasso Regression
- L2 Regularization: Ridge Regression
Generalization to K > 2
- Binary Logistic Regression cross entropy (CE) loss
- 위의 두 terms 대신에 다항 로지스틱 회귀 분석에서 K 항을 가지고 있고 y 와 y hat 는 벡터이다.
- 잘못된 클래스에 대한 값은 0으로 설정되므로 남은 유일한 항 c 는 올바른 클래스의 인덱스를 나타낸다.
- 전체 손실은 다음과 같다.
Interpretability 해석 가능성이란?
- 로지스틱 회귀 분석의 가중치 값은 어떤 festures 가 중요한지 나타낸다.
- festures 을 사람이 설계한 경우, Classifier 가 결졍을 내리는 방법에 대해 직관적으로 의미 있는 분석을 할 수 있다.
- 예: 제품 검토 기간이 부정적인 검토의 강력한 지표가 될 수 있다.
'AI Master Degree > Natural Language Processing' 카테고리의 다른 글
Recurrent Neural Network란? (0) | 2022.10.13 |
---|---|
Word2Vec 이란? (0) | 2022.10.10 |
Model Evaluation란? 모델 평가란? (0) | 2022.10.10 |
Semantic Vector Embeddings 의미 벡터 임베딩이란? (0) | 2022.10.09 |
WORD AND DOCUMENT EMBEDDINGS 단어와 문서 임베딩이란? (0) | 2022.10.09 |