인공지능(32)
-
4-1. 로지스틱 회귀(Logistic Regression)
시그모이드 함수 출처: medium.com/@msdasila90/logistic-regression-and-its-mathematical-implementation-13f96ee71c8c 로지스틱 회귀는 어떤 입력값 X에 대해 양성 클래스(1)와 음성 클래스(0)으로 구분하는 분류 방법이다. 이를 '이진 분류기'라고 한다. 출처 : laptrinhx.com/machine-learning-using-c-a-beginner-s-guide-to-linear-and-logistic-regression-2294098464/ 로지스틱 회귀 모델에서는 가중치와 input(x0, x1, x2, .... xn)을 곱한 값을 시그모사이드 함수에 통과시키는데, 이 값(hθ(x))이 0.5보다 클 경우, 양성 클래스(1), ..
2021.05.02 -
3-2. 규제 - 라쏘 회귀, 엘라스틱 넷
이전 장에서는 규제의 한가지 방법으로 릿지 회귀를 살펴보았다. 이번 장에서는 규제의 또다른 방법으로 라쏘 회귀와 엘라스틱 넷에 대해 알아보자. 라쏘 회귀(Lasso Regression) 라쏘 회귀(Lasso Regression)이란, 릿지 회귀와 마찬가지로 기존 비용함수에 규제항을 더한 것을 비용함수로 가진다. 릿지 회귀와는 다르게 가중치 벡터의 L1 노름을 사용하는데, 가중치 파라미터의 절대값을 합한 값을 이용한다. 출처 : www.kaggle.com/achintyatripathi/part-2-l1-l2-regularisation-in-log-regression 라쏘 회귀는 덜 중요한 특성의 가중치를 제거함으로써 상대적으로 중요한 가중치만 선택하여 훈련시킬 수 있다는 특징을 가지고 있다. 엘라스팃 넷(..
2021.04.27 -
3-1. 규제 - 릿지 회귀(Ridge Regression)
이전 장에서 살펴봤듯이, 예측 모델이 훈련세트에만 정확하게 예측하도록 훈련되어 검증 세트에서의 효과가 떨어지는 것을 과대 적합이라고 한다. 이러한 과대 적합 문제를 해결하는 방법 중 하나가 '규제'이다. 선형 회귀 모델에서는 가중치에 제한을 둠으로써 규제를 가한다. 이러한 규제의 종류로는 크게 '릿지' 회귀, '라쏘' 회귀, 엘라스틱넷이 있다. 릿지 회귀(Ridge regression) 릿지 회귀는 기존 선형 모델에 규제항을 추가한 회귀 모델이다. 릿지 회귀의 비용함수는 기존 MSE 비용함수에서 가중치 벡터 w 의 L2 norm이 추가된다. 각 가중치의 제곱을 모두 합한 후, 규제의 강도를 결정하는 하이퍼 파라미터 alpha를 추가한다. 1/2는 미분 시 편의를 위한 상수이다. 이 때 첫번째 파라미터(즉..
2021.04.27 -
2-2. 학습 곡선(Learning Curve)
분석하고자 하는 대상을 모델을 통해 분석할 경우, 올바르게 훈련시켰는지 아닌지 판단이 안 설 수 있다. 훈련 세트에만 과도하게 정확한 예측 모델을 만들었을 경우를 '과대 적합'이라하고, 과대 적합을 피하려하다보니 모델이 약하게 훈련될 경우를 '과소 적합'이라고 한다. 예측 모델이 과대 적합되었을 경우 일반화가 잘 이루어지지 않아서 테스트 세트에서는 예측이 안 맞을 수도 있고, 과소 적합되었을 경우, 정확한 예측 모델이라고 하기 힘들다. 과대 적합, 과소 적합을 판단하기 위한 몇 가지 방법이 존재하는데, 이 중 하나가 학습 곡선(Learning Curve)이다. 학습 곡선은 예측 모델을 통해 만들어진 훈련 세트와 검증 세트의 모델 성능 간의 차이를 나타내는 그래프이다. X축은 반복(iteration)으로,..
2021.04.27 -
2-1. 다항 회귀(Polynomial Regression)
1장에서는 선형 데이터를 추정하는 방법을 살펴보았다. 다항 회귀는 비선형 데이터를 선형 모델을 통해 추정하는 기법이다. 먼저 각 특성의 거듭제곱을 (기존 특성과 함께) 새로운 특성으로 추가하고, 이를 선형 모델로 훈련시키는 원리이다. 먼저 샘플을 생성한다. m = 100 X = 6*np.random.rand(m,1) - 3 y = 0.5*X**2 + X + 2 + np.random.rand(m,1) from sklearn.preprocessing import PolynomialFeatures poly_feather = PolynomialFeatures(degree=2, include_bias=False) X_poly = poly_feather.fit_transform(X) 사이킷런의 PolynomialF..
2021.04.26 -
1-3. 경사 하강법(Gradient descent) - 확률적 경사 하강법(SGD), 미니배치 경사 하강법
확률적 경사 하강법(SGD) 경사 하강법의 두번째 방법은 확률적 경사 하강법(SGD)이다. 배치 경사 하강법의 단점은, 추정한 파라미터를 전체 샘플에 적용하고, 그에 대한 비용함수와 그레디언트를 계산할 때도 전제 샘플을 사용한다는 것이다. 이는 훈련 샘플 크기가 매우 커질 경우, 시간적 비용이 크게 들게 된다. 확률정 경사 하강법(SGD)는 파라미터를 업데이트 매 스텝마다, 하나의 샘플을 무작위로 선택하여 그 하나의 샘플에 대한 비용함수 그레디언트를 계산하고, 파라미터를 업데이트한다. def SGD_gradient_cost_fun(x_b, y, y_hat): random_idx = np.random.randint(len(x_b)) x_i = x_b[random_idx:random_idx+1] y_i = ..
2021.04.26