본문 바로가기
  • 조금 느려도, 꾸준히
반응형

Artificial Intelligence29

핸즈온 머신러닝(5) - 학습 곡선 # 학습 곡선 지난 시간에 포스팅했던 다항 회귀 모델은 보통의 선형 회귀 모델보다 주어진 훈련 데이터에 훨씬 더 잘 맞추려고 했다. 다음의 코드는 2차원을 넘어 30차원, 100차원 다항 회귀 모델의 예측 결과를 비교한 것이다. from sklearn.preprocessing import StandardScaler from sklearn.pipeline import Pipeline for style, width, degree in (('k--',1,100),('g-',1,30),('r-',1,2)): poly_features = PolynomialFeatures(degree=degree, include_bias=False) standard = StandardScaler() lin_reg = LinearR.. 2020. 1. 24.
핸즈온 머신러닝(5) - 다항 회귀 # 다항 회귀 데이터가 단순한 직선의 형태가 아닌 비선형 형태여도, 선형 모델을 사용하여 비선형 데이터를 학습할 수 있다. 이때 각 특성의 거듭제곱을 새로운 특성으로 추가하고, 확장된 특성을 포함한 데이터셋에 선형 모델을 훈련시키는 것인데, 이러한 기법을 다항 회귀(Polynomial Regression) 이라고 한다. 실습하기 위해 먼저 노이즈를 포함한 간단한 2차 방정식으로 비선형 데이터를 생성해 보도록 한다. import numpy as np import numpy.random as rnd rnd.seed(42) m = 100 X = 6 * rnd.rand(m, 1) - 3 y = 0.5 * X**2 + X + 2 + rnd.randn(m, 1) $y = 0.5x^2 + x + 2 + noise$ .. 2020. 1. 23.
핸즈온 머신러닝(5) - 선형 회귀와 경사 하강법 2 이전 포스트에서 경사 하강법 알고리즘을 간단히 구현해 보았다. 코드를 다시 가져와보면 eta = 0.1 n_iterations = 1000 m = 100 theta = np.random.randn(2,1) for iteration in range(n_iterations): gradients = 2/m * X_b.T.dot(X_b.dot(theta) - y) theta = theta - eta * gradients 여기서 eta 변수, 즉 학습률 $\eta$ 을 나타내는 변수의 값이 0.1로 설정되어 있는데, 학습률 $\eta$ 를 바꿔보면 어떻게 될까? 임의로 다른 학습률을 사용하여 경사 하강법의 스텝 처음 10개를 그래프로 그려보면 다음과 같다. theta_path_bgd = [] def plot_gr.. 2020. 1. 23.
핸즈온 머신러닝(5) - 선형 회귀와 경사 하강법 1 이번 장에서는 신경망(neural network)을 이해하고 구축, 훈련시키는데 필수적인 기반 지식이 되는 알고리즘의 작동 원리에 대해서 다루기로 한다. 구현체가 어떻게 작동하는지 잘 이해하면 적절한 모델, 올바른 훈련 알고리즘, 작업에 맞는 좋은 하이퍼파라미터를 빠르게 찾을 수 있으며, 디버깅이나 에러를 효율적으로 분석하는 데 도움이 된다. # 선형 회귀 일반적으로 선형 모델은 입력 특성의 가중치 합과 편향(bias)라는 상수를 더해 예측을 만든다. (사진 참고) 사진에 나와있는 것 처럼 선형 모델의 방정식은 벡터 형태로 간단하게 쓸 수 있다. 모델을 훈련시킨다는 것은 모델이 훈련 세트에 가장 잘 맞도록 모델 파라미터를 설정하는 것이다. 이를 위해서는 먼저 모델의 훈련 데이터에 대한 성능을 측정해야 하.. 2020. 1. 23.
Google CoLab 사용하기 - 머신러닝 프로젝트 * 도움 : 안경잡이개발자 티스토리 블로그 Google CoLab으로 머신러닝 공부 편하게 시작하기 ※ Google Colaboratory란? ※ Google Colaboratory를 이용하게 되면, 기존에 주피터 노트북(Jupyter Notebook) 환경에서 인공지능을 공부하던 사람들은 이제 더욱 편하게 공부할 수 있게 됩니다. 자신의 컴퓨터.. ndb796.tistory.com # Google Colaboratory 핸즈온 머신러닝에 대한 포스트를 진행하면서 연습문제를 해결하는 도중, 필자의 Jupyter 환경에서 머신러닝 분류기를 학습시키고, 정확도를 추출하는데 상당히 오랜 시간이 걸리고 cpu 자원만을 이용해 진행하는데에 차질이 있었기 때문에 대안으로 Google 의 Colaboratory 를 .. 2020. 1. 22.
핸즈온 머신러닝(4) - 연습문제 1 # MNIST 데이터셋으로 분류기를 만들어 테스트 세트에서 97% 정확도를 달성하라 97%의 정확도를 달성하기 위해서는 먼저 적절한 분류기 모델을 설정해야 한다. MNIST 데이터셋은 숫자 손글씨를 분류하는 것이며, 각각의 데이터들은 유사성을 띈 군집 하에 동일한 레이블을 가지므로, 이번 연습문제 풀이에서는 K-최근접 이웃 알고리즘 (KNeighborsClassifier)을 사용하도록 한다. 프로젝트를 처음부터 다시 시작하므로 데이터셋을 내려받도록 한다. from sklearn.datasets import fetch_openml import numpy as np mnist = fetch_openml('mnist_784', version=1) X, y = mnist["data"], mnist["target.. 2020. 1. 22.
반응형