주제

1. 데이터 모델링
2. 선형회귀(Linear regression)
3. 비용 함수 : 평균 제곱오차(MSE)
4. 옵티마이저 : 경사하강법 (Gradient Descent)
5. Regularization
6. Logistic regression
7. Support Vector Machine(SVM) & Random forest

 

 

데이터모델링이란?

  • 주어진 데이터에서 사용하고자 하는 x, 알고 싶은 값 y가 있을 때 x와 y의 관계를 효과적으로 설명하는 함수 f()를 만드는 일
  • x는 독립변수(feature), y는 종속변수(label)라고 함
  • y값의 존재 여부에 따른 분류 :
y값이 존재하는 경우 y값이 존재하지 않는 경우
supervised learning unsupervised learning
  • y값의 데이터 종류에 따른 문제 분류 :
연속형인 경우 categorical 값인 경우
regression task classification task

 

 

데이터 모델링 과정

  1. 전처리 및 분석
  2. 데이터를 training set, test set으로 나눔
  3. training set에 대해 사용할 모델을 학습시킴
  4. test set에 대해 학습된 모델의 예측값을 통해 모델의 성능을 평가(실제값과 예측값 비교)
  5. 모델의 성능이 충분히 쓸만하다고 판단될 때, 새로운 데이터에 대해 학습된 모델을 이용해 y값을 예측

 

 

선형회귀 (Linear Regression)

  • 주어진 데이터로부터 y와 x의 관계를 잘 나타내는 직선을 그리는 일
  • x와 y 간에 선형의 관계가 있다고 가정할 때 사용
  • 단순 성형 회귀 분석 : y와 x가 모두 1개씩일 때
    • 예측값이 실제 y값과 최대한 가까워지는 w(weight, 가중치)와 b(bias, 편향)값을 찾는 과정
    • 그래프 시점에서 w는 직선의 기울기, b는 절편

단순 선형 회귀

  • 다중 선형 회귀 분석 : y는 1개이지만 x가 여러 개일 때

다중 선형 회귀
선형회귀

 

 

비용 함수(Cost function) : 평균 제곱 오차(MSE)

  • 비용 함수 혹은 손실 함수(Loss function) : 예측값의 오차를 줄이는 일에 최적화된 식, 값을 최소화하려고 하는 것이 비용함수
  • 오차(error) : 주어진 데이터에서 각 x에서의 실제 y와 직선에서 예측하고 있는 H(x)값의 차이
  • 평균 제곱 오차(Mean Squared Error, MSE) : 회귀문제에서 사용되는 비용 함수의 종류
    • 오차의 크기를 측정하기 위한 가장 기본적인 방법 : 오차를 모두 더하기
    • [그림1-1] 하지만 오차를 더하면 음수 오차나 양수 오차 둘 다 나올 수 있으므로 모든 오차를 제곱하여 더하는 방법을 사용(n은 데이터 개수)
    • [그림1-2] 데이터의 개수인 n으로 나누면 오차의 제곱합의 평균을 구할 수 있다 → MSE

그림1-1
그림 1-2

  • 평균 제곱 오차의 값을 최소값으로 만드는 w와 b를 찾는 것
  • 모든 점들과의 오차가 클수록 평균 제곱 오차는 커지고, 오차가 작아질수록 평균 제곱 오차도 작아진다
  • 따라서, 평균 최소 오차(Cost(w,b))를 최소로 만드는 w와 b를 구하면 결과적으로 y와 x의 관계를 가장 잘 나타내는 직선을 그릴 수 있다

 

 

옵티마이저(Optimizer) : 경사하강법(Gradient Descent)

  • w와 b를 찾기 위해 사용되는 알고리즘을 옵티마이저라고 한다
  • 옵티마이저를 이용하여 찾아내는 과정 → 훈련(training) 또는 학습(learning)
  • Cost와 w의 관계를 그린 그래프 :
    • 기울기(w)가 무한대로 커지면 cost도 무한대로 커지고, 작아지면 무한대로 작아진다
    • 결국 cost가 가장 작을 때는 볼록한 부분의 맨 아래 부분 즉, 접선의 기울기가 0 혹은 미분값이 0인 지점이다
    • 따라서 그 부분의 w를 찾는 과정이 필요하다

cost와 w의 관계 그래프

  • 경사하강법(Gradient Descent) :
    • 임의의 랜덤값 w를 설정한 후, 맨 아래 볼록한 부분을 향해 점차 수정해나가는 것
    • 비용함수를 미분하여 현재 w에서의 접선의 기울기를 구하고, 점점 낮은 방향으로 w값을 변경하여 다시 미분하고 ...
    • 접선의 기울기가 0인 곳을 향해 값을 변경하는 작업을 반복
    • 그렇다면 그냥 한번에 w값을 하강시키면 되지 않을까?
    • α : 학습률(learning rate) - w의 값을 변경할 때 얼마나 크게 변경할지를 결정하며 0과 1 사이의 값을 가진다
    • α가 지나치게 크면 cost값이 발산하고, α가 지나치게 낮으면 학습 속도가 느려진다 → 적당한 α값을 찾아내는 것도 중요

 

 

Overfitting

  • fitting : 머신러닝에서 학습 또는 훈련하는 과정
  • overfitting(과적합, high variance) : 훈련 데이터를 과하게 학습한 경우, 성능 측정을 위한 데이터인 테스트 데이터나 실제 서비스에서는 정확도가 떨어진다
    • 모델이 generalization되기 어려워진다
    • 보통 데이터에 내재된 복잡도보다 모델의 복잡도가 더 과한 경우 혹은 데이터셋 사이즈가 작은 경우 발생
    • 선형회귀의 경우, 고려하는 변수가 많아질수록 overfittin 발생 가능성이 높아진다
  • generalization(일반화) : 학습할 때와 추론할 때의 성능 차이가 많이 나지 않는 경우, 실제 추론 상황에서 잘 쓰일 수 있음을 의미

 

 

 

Regularization(정규화)

  • overfitting을 해결하는 방법 두 가지 :
    • 모델의 복잡도 줄이기
    • 정규화
  • generalization : 모델이 가지는 복잡도를 제한하는 방법. 보통 모델의 파라미터가 가지는 값의 크기를 cost function에 추가해주는 방식으로 파라미터 값의 크기를 제한
  • L1 규제 : 가중치 w들의 절대값 합계를 비용 함수에 추가
    • 모든 가중치에 대해서 λ |w| 를 더한 값
  • L2 규제 : 모든 가중치 w들의 제곱합을 비용 함수에 추가
  • λ는 규제의 강도를 정하는 하이퍼파라미터(hyperparameter)
  • Lasso regression :  선형 회귀 모델에 L1 loss를 추가해서 파라미터를 정규화
    • 파라미터가 갖는 사각형의 제약 조건 내에서 cost에 최저점에 가까운 w*를 사용하며, 유의미하지 않은 변수들에 대한 계수를 0으로 주어 중요한 변수를 선택할 때 유용하게 사용 가능
  • Ridge regression : 선형 회귀 모델에 L2 loss를 추가해서 파라미터를 정규화
    • 파라미터가 갖는 원형의 제약 조건 내에서 cost의 최저점에 가장 가까운 w*를 사용

 

 

Logistic regression

  • 로지스틱 회귀분류 : 이진 분류를 풀기 위한 알고리즘
  • 이진분류는 둘 중 하나를 고르는 것이기 때문에 직선으로 표현하는 것은 적합하지 않다
  • 따라서 S자 형태로 그려지는 시그모이드 함수(Sigmoid function)을 사용한다

  • 시그모이드 함수에서는 가중치가 그래프의 경사도를 결정
    • w가 커지면 경사가 커지고, w가 작아지면 경사가 작아진다
    • 입력값이 커지면 1에 수렴하고, 입력값이 작아지면 0에 수렴
     

시그모이드 함수

 

 

 

Support vector machine(SVM) & Random forest

Support vector machine(SVM)

  • SVM : 기계학습 분야 중 하나로, 패턴인식, 자료분석을 위한 지도학습 모델 분류와 회귀분석을 위해 사용
  • 두 카테고리 중 어느 하나에 속한 데이터 집합이 주어졌을 때 :
    • 주어진 데이터 집합을 바탕으로 새로운 데이터가 어느 카테고리에 속하는지 판단하는 비확률적 이진 선형분류모델을 만든다
    • 데이터가 사상된 공간에서 경계로 표현되는데, SVM알고리즘은 그 중 가장 큰 폭을 가진 경계를 찾는다
    • 두 부류 사이의 여백이 가장 넓어지면(margin최대화) 그 둘을 가장 잘 분류했다고 할 수 있다

 

Random forest

  • 머신러닝 알고리즘으로, 하나의 결과에 도달하기 위해 여러 의사결정 트리(decision tree)의 출력을 결합한 것
  • 분류와 회귀 문제 모두 다룸
  • overfitting 문제를 보완하기 위해 사용
  • 앙상블(Ensemble) 방법 : 강력한 하나의 모델을 사용하는 대신 보다 약한 여러 개의 모델을 조합하여 더 정확한 예측을 해주는 것
    1. 부트스트랩핑을 통해 데이터 샘플링 시 복원추출은 하고, 작은 결정나무(decision tree)를 만든다
    2. 이 트리들이 모여 숲을 이루고, 몇개의 특성들을 무작위 선택하여 합친다(aggregating)
    3. 회귀 문제일 경우 기본 모델들의 결과를 평균내고
    4. 분류 문제일 경우 다수결로 투표한다
     

random forest 예시

 

 

 


느낀점

이번주 강의는 입문자들에게는 조금 불친절한 강의였던 것 같다. 통계학을 처음 접한 사람에게는 생소한 수식들이 가득 나오니 당황스러울 수밖에...그래서 따로 기초통계학 강의를 들으면서 보완하고 있고, 오늘은 갑자기 데이터 모델링이 나와서 좀 당황스러웠다.. 머신러닝은 시작도 안했는데 갑자기 나와서 이것도 역시나 구글링하면서 공부했다. 쉽게 설명한 부분들을 찾아 읽으니 이해가 조금씩 되는 것 같긴하다. 다음주부터는 2차 프로젝트인데 오늘 특강 끝나고 조원들과 처음으로 모여서 아이스 브레이킹도 하고 그러니 좋았다. 이번 프로젝트는 더 즐거운 마음으로 참여할 수 있을 것 같은 예감이다. 이번주 강의 마무리하고 프로젝트에 쓸 데이터셋을 찾아야겠다.

+ Recent posts