반응형
SMALL

Computer Science/기계학습 (Machine Learning) 19

[머신러닝/ML] 딥러닝의 기본 개념

머신러닝에서 딥러닝으로 발전한 까닭이 존재한다. 머신러닝은 training set에 대해 사람이 feature를 추출하여 추출된 feature를 바탕으로 각 모델들이 학습하였다. 하지만, 데이터에는 사람이 발견할 수 없는 많은 요소들이 존재한다. 사람이 feature를 추출하고 학습시킨 모델은 일정 양 이상의 training set이 들어오면 정확도가 더 이상 높아지지 않는 문제점이 발생하는 것이다. 따라서 사람이 feature를 추출하는 것이 아닌, feature를 추출하는 일련의 과정마저 모델에게 맡기는 것이다. 새의 사진을 넣고 이러한 생김새를 가진 모든 사진을 새라고 명명하도록 각각의 데이터에 label만 붙여주는 것이다. 이러한 방식을 사용하면 정확도가 더욱 높아질 수 있다는 장점이 있으며 이와..

[머신러닝/ML] Training Set, Testing Set

우리는 지금껏 많은 데이터들로 모델들을 학습시켰다. 해당 모델을 평가하려면 어떻게 해야 할까? 우리는 지금껏 모델을 학습시킬 때 사용한 데이터들을 training set이라고 불렀다. 평가를 할 때에 training set을 이용한다면 정확도에 100%에 달할 것이다. 따라서 우리가 보유하고 있는 데이터들을 잘라 일부분은 학습 용도, 일부분은 평가 용도로 사용한다. 보통 70%를 training set, 30%를 testing set으로 사용한다. testing set을 모델에 넣은 후 기댓값과 결과값을 비교하여 모델을 평가한다. 우리는 앞서 학습률(learning rate)라고 불리는 α와 데이터의 regularization 시 정규화 강도를 표현하는 λ를 학습하였다. training set을 일정 비..

[머신러닝/ML] Learning Rate, Data Preprocessing, Overfiting

Learning Rate 우리는 Gradient Desent(경사하강법)을 통해 결과값과 기대값의 오차를 줄였다. cost function은 위와 같이 정의했었는데 이때 α를 Learining rate(학습률)이라고 하였다. 학습률은 기울기를 이동하는 step으로 α의 값을 크게 설정하면 기울기가 많이, α의 값을 작게 설정하면 기울기가 적게 내려간다고 하였다. 하지만 α값이 과하게 크다면 최소값을 지나치게 되거나, 경사가 커지는 방향으로 최적화가 될 수 있다. 이 경우를 우리는 overshooting이라고 부른다. 반대로 α값이 과하게 작다면 연산에 시간이 오래 걸리고, timeout이 발생하면 최소값에 도달하지 못할 수 있다. 그렇다면 Learning Rate를 어떻게 설정하는 것이 좋을까? 정해진 ..

[머신러닝/ML] Softmax Classification / Multinomial Classification

Softmax Classification / Multinomial Classification 앞서 우리가 학습한 Binary Classification은 0이냐 1이냐를 예측하는 문제였다. 이번 시간에 학습할 Softmax Classification은 0이나 1 뿐만 아니라, 즉 2개 이상인 결과값을 예측할 때 쓰인다. Softmax Classification을 위한 새로운 예를 가져와보겠다. 공부 시간과 출석률에 따른 성적을 예측하는 모델이다. 결과값은 A, B, C로 2개 이상이다. 이를 예측하기 위해 어떤 알고리즘을 사용하는 것이 좋을까. 앞선 시간에 학습했던 Binary Classification을 활용하여 해당 값이 A인지 아닌지, B인지 아닌지만 판별해보자. 각각을 분류할 수 있는 직선을 그어..

[머신러닝/ML] Binary Classification / Logistic Regression

Binary Classification / Logistic Regression Binary Classification은 분류하는 모델 중에서도 이름에 맞게 두 가지 종류로 분류하는 모델을 말한다. 메일이 스팸인지 아닌지, 유튜브에서 해당 영상을 사용자에게 보여줄지 말지를 결정하는 것도 Binary Classification에 해당된다. 0, 1 Encoding Binary Classification에서 분류할 때에는 0과 1을 사용하여 표기하기도 한다 예를 들어 메일을 스팸인지 아닌지를 분류할 때 스팸인 메일을 1, 아닌 메일을 0으로 표기할 수 있다. Sigmoid(Logistic Function) 공부 시간에 따른 시험 합격률을 판단할 수 있는 모델을 만들었다고 하자. 그러면 아래와 같은 점들을 찍을..

[머신러닝/ML] Multivariable Linear Regression

Multivariable Linear Regression 위 표와 같이 입력으로 여러 개의 퀴즈 점수를 넣고, final 점수를 결과값으로 출력한다. 이 경우에는 Hypothesis 식을 아래와 같이 세운다. 마찬가지로 cost function도 아래와 같이 만들어 준다. 입력이 더 많아지면 위 식과 같이 w와 x의 개수를 늘려주면 된다. Matrix 하지만 입력이 100개 또는 그보다 훨씬 많은 1000개, 10000개까지 넘어갈 수 있다. 그 경우에는 Matrix를 사용하여 간결하게 표현할 수 있다. 행렬곱의 성질을 이용하면 위와 같이 표현할 수 있다. 따라서 hypothesis식을 위와 같이 간결하게 표현할 수 있다. 위 데이터에서 하나의 행을 인스턴스라고 부른다. 각 x 인스턴스를 행렬에 넣어 계..

[머신러닝/ML]Linear Regression (선형회귀)

Linear Regression (선형회귀) supervised learning을 통해 학습 모델 중 어떠한 범위 사이의 값을 추측하는 것을 Regression이라고 한다고 하였다. x를 예측을 하기 위한 데이터, y는 그 데이터의 결과라고 하자. 위 데이터를 평면 위에 표현하면 우측과 같이 나온다. 점끼리 연결하여 선을 만들면 1, 2, 3값이 아닌 다른 데이터가 들어와도 결과값을 예측할 수 있다. 이때, 선을 만드는 것을 Linear regression이라고 한다. 이때, 그래프에 대한 식은 H(x) = Wx + b으로 일차방정식으로 나타내는 것을 기본으로 한다. W와 b값에 따라 그래프의 생김새가 변화한다. 해당 선이 적합한 모델인지를 판단하기 위해 그래프와 데이터의 거리를 선으로 그어 비교한다. ..

[머신러닝/ML]Tensor Flow의 설치 및 기본적인 Operation

Tensor Flow 구글의 오픈 소스 소프트웨어 라이브러리 data flow graph를 사용하여 numerical 계산이 가능한 라이브러리 파이썬으로 구현이 가능! data flow graph? 각 노드: operation (+, *) edge: data (= tense) edge를 통해 각 nodes로 data들이 돌아다님(flow) => 어떤 데이터를 통해 결과값을 얻을 수 있는 그래프 Tensor Flow Download 콘다를 통해 local에 환경을 설정하는 방법이 있고, 구글 코랩을 통해 환경을 설정하는 방법이 있다. Colab 나는 코랩을 통해 설정하였다. 코랩을 들어가는 링크는 아래와 같다. https://colab.research.google.com/# Google Colaborato..

[머신러닝/ML]기본적인 ML 용어 및 개념

ML이란? 일종의 소프트웨어(프로그램) -> explicit programming (개발자가 원하는 일을 수행할 수 있음) 정확하게 프로그래밍하기 어려운 프로그램이 존재 ex) 스팸 메일 거르기, 자율주행 => Authur Samuel이 컴퓨터가 학습하여 자료 또는 현상에서 학습하는 것 -> ML 탄생 개발자가 행동을 정의하지 않음 Learning Supervised Learning 정해져 있는 데이터로 학습 (labeled example) = training set 각 데이터에 label이 달려있음 - Image labeling: label이 있는 이미지를 통해 learning - Email spam filter: 스팸인지 스팸이 아닌지를 구분한 labeling이 되어있는 email 통해 learnin..

반응형
LIST