분류 전체보기141 30. Python - 다항 회귀 이전 경사 하강법은 선형 모델을 기준으로 생각했습니다. 그러나, 데이터가 단순한 선형보다 복잡한 형태를 가정해봅니다.비선형 데이터를 학습하는 데 선형 모델을 사용할 수 있는데, 이렇게 하는 간단한 방법은 각 특성의 거듭제곱을 새로운 특성으로 추가하고, 이 확장된 특성을 포함한 데이터셋에 선형 모델을 훈련시키는 것입니다. 이런 기법을 다항 회귀(Polynomial Regression)이라 합니다. 먼저, 가장 간단한 2차방정식(quadratic equation)으로 비선형 데이터를 생성하겠습니다. (약간의 노이즈 포함) m = 100X = 6 * np.random.rand(m, 1)-3y = 0.5 * X**2 + X + 2 + np.random.randn(m,1) plt.plot(X, y, 'b.')pl.. 2019. 1. 25. 29. Python - 미니배치 경사 하강법 이번에 볼 경사 하강법 알고리즘은 미니배치 경사 하강법(Mini-batch Gradient Descent)입니다. 배치와 확률적 경사 하강법을 알고 있다면 이해하기 쉽습니다. 각 스텝에서, 전체 훈련 세트(배치 경사 하강법과 같은)나 하나의 샘플(확률적 경사 하강법 같은)을 기반으로 그래디언트를 계산하는 것이 아니라, 미니배치라 부르는 임의의 작은 샘플에 대해 그래디언트를 계산합니다. 확률적 경사 하강법에 비해 미니배치 경사 하강법의 주요 장점은 행렬 연산에 최적화된 하드웨어, 특히 GPU를 사용해서 얻는 성능 향상입니다. 특히, 미니배치를 어느정도 크게 하면, 이 알고리즘은 파라미터 공간에서 SGD보다 덜 불규칙하게 움직입니다. 결국 미니배치 경사 하강법이 SGD보다 최솟값에 더 가까이 도달하게 될 것.. 2019. 1. 25. 28. Python - 확률적 경사 하강법 오늘은 확률적 경사 하강법에 대해 알아보겠습니다!어제 봤던 배치 경사 하강법의 가장 큰 문제는 매 스텝에서 전체 훈련세트를 사용해 그래디언트를 계산한다는 것입니다.따라서 훈련 세트가 커지면 매우 느려지는데, 이와 반대로 확률적 경사 하강법은 매 스텝에서 딱 1개의 샘플을 무작위로 선택하고, 그 하나의 샘플에 대한 그래디언트를 계산합니다. 매 반복에서 매우 작은 데이터만 처리하기 때문에 알고리즘이 훨씬 빠릅니다.또한, 매 반복에서 하나의 샘플만 메모리에 있으면 되므로 매우 큰 훈련 세트도 훈련시킬 수 있습니다. (SGD는 외부 메모리 학습 알고리즘으로 구현할 수 있습니다.) 반면, 확률적(무작위) 이기 때문에, 이 알고리즘은 배치 경사 하강법보다 훨씬 불안정합니다. 비용 함수가 최솟값에 다다를 때까지 부드.. 2019. 1. 25. 27. Python - 배치 경사 하강법 안녕하세요. 오랜만이네요.저는 여태 배웠던 것들을 이용하여 프로젝트를 해봤습니다. 혼자서요 ㅎㅎ이제 이 장에서 배워볼 것들을 또 적용해 나갈 것입니다!이번 장의 목표는 다음과 같습니다. 혹시나 직접 더 보고싶다면 저자 깃허브를 가보시기 바랍니다.저자 깃허브 : https://github.com/rickiepark/handson-ml/blob/master/04_training_linear_models.ipynb 선형 최소 제곱법을 설명하는 위키백과 : https://goo.gl/Lf8VHJ [1]직접 계산할 수 있는 공식을 사용하여 훈련 세트에 가장 잘 맞는 모델 파라미터를 해석적으로 구하기 (비용 함수 최소화) [2]경사 하강법(GD)이라 불리는 반복적인 최적화 방식을 사용하여 모델 파라미터를 조금씩 바.. 2019. 1. 24. 이전 1 ··· 14 15 16 17 18 19 20 ··· 36 다음