Processing math: 100%
'AI' 카테고리의 글 목록 (2 Page)
어제보다 나은 사람이 되기

걱정보단 실행을, 그러나 계획적으로

Box World 자세히보기
반응형

AI 60

[ 핸즈 온 머신러닝 2 ] 비지도 학습의 모든 것 (K-Means)

약해지지 말자. - 래리 페이지 (구글 공동창립자) - 시작하며 이전 포스팅에서는 대부분 레이블(y)이 존재하는 데이터에 대해 다뤄봤습니다. 하지만 우리가 사용하는 대부분의 데이터는 레이블이 없습니다. 그렇다면 레이블이 없다면 붙이면 되지 않을까요? 예를 들어 제품 결함을 감지하는 시스템을 만들어야 한다고 가정해보겠습니다. 시스템을 학습시키기 위해 수천장의 제품 사진 데이터를 마련하는 건 쉬울지 몰라도 이것들에 각각 결함과 정상을 판단하여 레이블링을 하는 것은 높은 cost를 요합니다. 물론 최근에는 데이터에 대한 중요성이 대두되면서 정부 차원에서 이러한 데이터 생성 및 가공에 힘을 쓰고 있지만, 이번 포스팅에선 사람의 도움없이 알고리즘이 레이블이 없는 데이터를 바로 사용하는 비지도 학습에 대해 살펴..

[ 핸즈 온 머신러닝 2 ] 차원 축소란? (Dimension Reduction)

사람은 어려움 속에서 성장한다 - 제임스 캐시 페니 (J.C 페니 백화점 창립자) - 시작하며 특성(feature)은 얼핏 보면 데이터의 다양한 측면을 보여주기 때문에 많을 수록 좋은 것 같습니다. 실제로 우리가 마주하는 머신러닝 문제에서는 Training set의 feature가 수백만 개까지 가지고 있는 경우가 있습니다. 그러나 이런 많은 특성은 훈련을 느리게 하기도 하고, 때론 좋은 솔루션을 찾는데 방해하기도 합니다. 우리는 이를 차원의 저주(curse of dimensionality)라고 합니다. 8.1 차원의 저주 우리가 살고 있는 세계는 3차원으로, 4차원 이상으로만 가도 직관적으로 상상하기 어렵습니다. 게다가 고차원 공간에선 우리의 상식과 다르게 작동하는 것들이 많습니다. 예를 들어 1*1 ..

[ 핸즈 온 머신러닝 2 ] 앙상블 학습과 랜덤 포레스트란?

매일 아침 삶의 목표를 생각하며 일어나라 - 아이제이아 토마스 (NBA 아이닉스 사장 겸 감독) - 시작하며 굉장히 복잡한 질문에 대해서 수천명의 사람들에게 대답을 모으는 것과 전문가에게 답을 듣는 것, 둘 중 어떤 것이 더 정확할까요? 대부분 전자가 더 정확하며 우리는 이를 대중의 지혜라고 합니다. 마찬가지로 머신러닝에서도 적당한 성능의 모델 여러개들로부터 예측을 수집하는 것이 가장 좋은 하나의 모델의 예측보다 더 좋은 결과를 불러옵니다. 우리는 이러한 학습 방법을 앙상블 학습(Ensemble Learning)이라고 합니다. 이번 포스팅은 Decision Tree의 이해가 바탕이 되어야 합니다. 다음 포스팅을 참고해주세요! [AI/Hands-On Machine Learning 2판] - [ 핸즈온 머신..

[ 핸즈온 머신러닝 2 ] Decision Tree란?

성공하려면 이미 했던 일을 제대로 활용하라 - 블레이크 로스 (파이어폭스 공동 개발자) - 시작하며 저번 포스팅에서는 SVM에 대해 다뤄보았습니다. 이번 포스팅에서 다룰 Decision Tree은 SVM처럼 Classification, Regression 등 폭넓게 사용이 가능하며, 복잡한 데이터셋도 학습할 수 있는 강력한 알고리즘입니다. 6.1 Decision Tree 학습과 시각화 우선 Decision Tree를 이해하기 위해 모델 하나를 생성한 후 어떻게 예측하는지 살펴보겠습니다. 데이터는 Iris(붓꽃의 종류를 클래스화한 데이터)를 사용하였습니다. from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifi..

[ 핸즈온 머신러닝 2판 ] SVM이란?

인내는 어떤 실력보다 강하다 - 벤 호건 (프로 골퍼) - 시작하며 SVM은 Classification, Regression 등 다양한 곳에서 활용됩니다. 특히 복잡한 데이터셋을 학습하기에 용이하다는 점도 SVM의 인기를 높이는 데 한 몫 하였습니다. 5.1 선형 SVM 분류 위 데이터셋은 서로 다른 종류의 붓꽃들을 모아놓은 데이터셋입니다. 이 둘을 직선 하나만 그어서 같은 클래스의 데이터들만 모여있도록 구역을 나눌 수 있을까요? 당연히 가능합니다. 우리는 이것을 선형적으로 구분이 가능하다고 합니다. 그러나 왼쪽 그래프의 빨간색이나 자주색 선이 두 클래스를 잘 구분하는 듯 하지만 경계가 너무 데이터에 가깝기 때문에 좋은 성능을 보일거라곤 장담하지 못합니다. 결론은 오른쪽처럼 두 클래스를 나눌 때 최대한 ..

[ 핸즈온 머신러닝 2판 ] 로지스틱 회귀(Logistic Regression)이란?

"당신은 뭔가 더 대단한 것을 해낼 수 있다." - 칼로스 M.구티에레즈미국 상무장관 - 4.6 로지스틱 회귀(Logistic Regression) 본래 회귀(Regression)은 값을 예측할 때 쓰이지만, Logistic Regression은 데이터가 어떤 클래스에 속하는지 분류하는데 사용됩니다. 다시 말해서 Logistic Regression은 어떤 데이터가 특정 클래스일 확률을 결과값으로 도출하기 때문에 회귀에 속하는 것입니다. 예를 들어 어떤 이메일이 스팸인지 아닌지를 분류할 때, 데이터를 Logistic Regression을 이용하여 추정할 때 결과값이 0.6이 나오면 해당 데이터가 스팸일 확률이 60%라는 것이고 이 경우 해당 메일을 스팸으로 분류하는 식입니다. 4.6.1 확률 추정 Logi..

[ 핸즈온 머신러닝 2판 ] Linear Regression 속 Regularization이란?

"이끌거나, 따르거나, 비켜서라." - Ted Turner (CNN 설립자) - 4.5 선형 모델(Linear Model)에서의 규제(Regularization) Regularization은 모델이 Overfit되었을 때, 이를 감소시키는 대표적인 방법입니다. 다항 회귀(Polynomial Regression)에서는 단순히 차수를 감소시키는 것으로 Regularization이 가능합니다. 선형 회귀(Linear Regression)에서는 모델의 가중치를 제한하여 Regulariztion이 이뤄집니다. 여기에서 세 가지 방법이 있는데 이제부터 하나하나 살펴 보겠습니다. 4.5.1 릿지 회귀(Ridge Regularization) Linear Regression에 Regularization 항이 추가된 것이..

[ 핸즈 온 머신러닝 2판 ] Polynomial Regression과 Learning Curve란?

"먼저 행동으로 옮기고 나서 말하라" - 스티븐 스필버그 - 4.3 Polynomial Regression(다항 회귀) Polynomial Regression은 비선형(non-linear) 데이터를 학습하는데 선형 모델을 사용할 수 있게 해줍니다. 다시 말해서 모델이란 것은 데이터를 대표하는 것인데 어떻게 선형 모델이 비선형 데이터를 대표할 수 있게 되는 것일까요? 우선 간단한 이차방정식으로 데이터를 생성해보겠습니다. m = 100 X = 6 * np.random.rand(m, 1) - 3 // rand : 0~1의 균일분포 표준 정규분포 난수를 생성 y = 0.5 * X**2 + X + 2 + np.random.randn(m, 1) // randn : 가우시안 표준정규분포 난수를 생성 선형 모델은 분명..

[ Tensorflow 2 / sklearn ] Linear Regression과 Gradient Descent Algorithm의 종류

이기는 것이 중요한 것은 아니지만, 이기기를 원하는 것은 중요하다 - 에릭 슈미트(Google 전 Ceo) - 이번 포스팅에서는 머신러닝의 가장 간단한 모델 중 하나인 회귀(Regression)에 속하는 선형 회귀(Linear Regression)에 대해 알아보고, 이를 최적화하는 훈련 방식인 경사 하강 알고리즘과 Normal Equation에 대해 공부해보겠습니다. 보통 우리가 Regression에서 모델을 훈련시킨다고 하면 경사 하강 알고리즘(Gradient Descent algorithm)을 사용합니다. 좀 더 세부적으로는 Batch GD, Mini-Batch GD, SGD가 있는데, 이는 잠시 후에 다시 다뤄보겠습니다. 또 다른 훈련 방식에는 Normal Equation가 있습니다. 이 또한 Li..

[핸즈온 머신러닝 2판 ] MNIST를 활용한 다중 분류(Multi Class Classification)은 어떻게 하는 것일까?

나머지 인생을 설탕물이나 팔면서 보내고 싶습니까 아니면 세상을 바꿔 놓을 기회를 갖고 싶습니까? - 스티브 잡스 - 저번 포스팅에서는 MNIST 데이터셋을 활용하여 이진 분류(Bianry Classification)을 구현해보았습니다. 이번 포스팅에서는 같은 MNIST 데이터셋을 활용하여 둘 이상의 클래스를 구별할 수 있는 다중 분류(Multiclass Classifier)에 대해 공부해보겠습니다. 3.4 Multi-Class Classification SGDClassifier, RandomClassifier, Naive Bayers 같은 일부 알고리즘들은 Multi-class Classification이 가능합니다. 그러나 Logistic Regression, SVM과 같은 알고리즘은 Binary Cl..

반응형