5 minute read

기존의 내용과 여러 자료를 보면서 추가적으로 공부한 것을 살짝 덧붙였습니다. 출처는 글 맨 아래에 있습니다.


1. 모두를 위한 딥러닝 Lec 0~1

1.1 머신러닝 알고리즘에 대한 기본적인 이해

image

  • 딥러닝을 이해하기 위한 기본적인 알고리즘 Linear regression, Logistic regression(이 두 개만 제대로 이해해도 머신러닝은 나름 이해했다고 생각할 수 있습니다.)


1.2 용어와 개념정리

목차

  • what is ML?
  • what is learning?
    • what is supervise?
    • what is unsupervised?
  • what is regression?
  • what is classification?

머신러닝은 명시적 프로그램의 한게 때문에 나오게 됐습니다. (ex)스팸필터, 자율주행


image


1.1.1 Supervised learning

  • 레이블이 정해져있는 데이터(training set)를 가지고 학습합니다.
  • ex) 이미지가 무엇인지 알아내는 것입니다.

image

1.1.2 Unsupervised learning : un-labeled data

  • 구글 뉴스 (자동적으로 비슷한 뉴스를 grouping함)
  • Word clustering(비슷한 단어를 모음)
  • 데이터를 보고 스스로 학습합니다.
    • 그래서 비지도학습이라고 합니다.


1.3 Supervised learning 자세한 설명

image

지도학습의 핵심은 레이블이 정해져있는 데이터를 가지고 학습을 하는 것이 핵심입니다.

1.3.1 Training data set

  • 지도학습에서 사용되는 머신러닝은 이렇게 생각할 수 있습니다.
    • 머신러닝이라는 모델이 있습니다.
    • 이미 답(레이블, y값)이 정해져있고, x라는 feature가 있습니다.
    • 이런 데이터를 가지고 학습을 하게됩니다. 학습을 하게되면 모델이 생겨납니다.
  • Xtest = [9,3,6] 이런 값이 주어지면, ML모델은 내 생각은 답(Y)가 3이다 하고 결과가 나옵니다. 이것이 지도학습의 형태입니다.

그래서 training data set이 반드시 필요합니다.


지도학습의 종류

  • 소비한 시간을 이용해서 시험 성적 예측 시스템을 만듭니다. 성적이란 것은 범위가 0~100점인데 범위가 넓습니다. 이런 예측을 하는 것을 regression이라고 합니다.
    • regression
  • 시험을 단순히 소비한 시간을 이용해서 pass/non-pass 인지 확인 해봅시다.
    • binary classification
  • 시간에 따라서 어떤 학점을 받을까 예측하는 시스템
    • multi-label classficaion

지도학습을 다룰 때는 대개 3가지인 위의 것을 다룹니다. 지도학습은 training data가 주어집니다.


1.4 지도학습 적용 예시

시험 점수 예측 예시

image

regression입니다.


패스 / 논패스 예측 예시

image

binary classification입니다.


학점 예측

image

multilevel-classification입니다.



2. 모두를 위한 딥러닝 Lec 2


image

  • 지도학습을 한다는 것으로 가정합시다.
  • 예측을 하려는 최종 목표가 0~100점 범위의 score를 예측하려 합니다.
    • 범위를 예측하는 것은 지도학습중에서도 regression에 해당됩니다.
  • 10시간 공부 - 90점, 9시간 공부 - 80점 이런 데이터를 가지고 학습(training)시키고 이 데이터는 training data라고 합니다.
  • regression model이 데이터를 가지고 학습하면 우리가 알 수 없는 모델을 하나 만들게 되고 이러면 학습이 끝난 것입니다.
  • 학습이 끝난 후에 regression을 사용한다는 것은 어떤 학생이 7시간을 공부했다고 하면, 시험을 치기전에 인공지능에게 학생의 예상점수를 물어봅니다.
    • 수학적으로는 x를 던지고 y를 받는 것입니다. 65점 정도 받을 수 있다고 regression이 학습된 데이터를 기반으로 예측해주는 것입니다.
    • 이것이 어떻게 동작하고 구현할 수 있는지를 살펴봅시다.


image 현재 가지고 있는 데이터는 위와 같습니다.

image

리그레션 모델을 학습한다는 것은 하나의 가설을 만들 필요가 있습니다. 가설의 예시를 들어보자면 리니어한 모델이 우리 데이터에 맞을 것 같다고 가설을 세웁니다.

세상에 있는 많은 현상들이 리니어한 것으로 설명되는 것이 많아서 효과적일 때가 많습니다. 데이터에 잘 맞는 리니어한 선을 찾는것을 목표라고 생각하면 될 것 같습니다.

이 선을 찾는것이 학습을 하는 것입니다.

image

w와 b에따라 선의 모양이 달라집니다. 우선 가설을 일차방정식으로 세우는 것이 linear regression의 첫 번째 단계입니다.

어떤 선이 좋은지를 어떻게 판단할까요? 이를 Cost Function에서 설명합니다.


2.1 Cost Function (Loss Function)

어떤 가설이 좋은지에 대해 애기를 해보려면 Cost Fucntion에 대해 이야기 해보아야 합니다.

Cost Function은 실제값과 예측값의 차이(loss, cost)를 수치화해주는 함수입니다 (조금 더 찾아보니 강의에서 Cost Function을 사용한 방식은 MSE방식의 Cost Function이네요.)

우선 한 번 선형적인 모델에서 실제값과 예측값의 차이를 구하는 방법을 생각해봅시다.

image

  이것을 구하는 방법은 단순히 \(H(x) - y\)의 형태로 볼 수 있습니다. 하지만 \(H(x) - y\) 수식의 형태는 좋은형태는 아닙니다. 차(또는 거리(distance))가 음수일 수도 있고 양수일 수도 있기 때문에 보통 distance를 계산할 때는 distance값을 제곱을 한 방식을 사용하게 됩니다. \((H(x) - y)^2\) 이렇게 수식을 작성하게 되면 음수인지 양수인지를 떠나서 차이를 계산할 수 있게 되고, 제곱이기 때문에 차이가 클 때 패널티를 더 줄 수 있기도 합니다.

위에서 나온 \((H(x) - y)^2\) 이것을 우리는 cost function이라고 부릅니다.

조금 더 포말하게 정리 해보자면 다음과 같습니다.

image

설명은 강의에 잘 나와있으니 짧게 하자면, 가설의 값과 실제 데이터값의 차를 제곱한 것을 모두 더하고 평균을 낸 것입니다. 이것이 Cost Function입니다.

image

\(H(x) = Wx + b\)를 H(x)에 기계적으로 대입하게 되면 Cost Function은 실제적으로 W와 b에 대한 함수가 됩니다. 여기서 선형 회귀의 숙제는 Cost의 값을 가장 작게 하는 것이 중요합니다. 그래서 Cost를 작게하는 W와 b의 값을 구하는 것이 선형 회귀의 학습입니다.

image

즉, 이 내용이 핵심이며 cost를 최소화할 수 있는 W와 b를 구하는 것이 선형회귀의 목표라고 할 수 있습니다.



3. 모두를 위한 딥러닝 Lec3

이 강의에서는 어떻게 Cost Function을 최소화해서 선형 회귀의 학습을 완성하는지 알아봅니다.

3.1 Hypothesis와 Cost

image

위의 식들이 이전 강의에서 나왔던 가설의 식과 Cost Function의 식입니다.


3.2 간략화 된 가설

image

설명을 위해서 가설의 식에서 b를 없앴습니다.


3.3 Cost 함수는 어떻게 생겼나?

image

image

W= 1,0,2 각각 일 때의 값은 위와 같습니다.


그래프를 그리게 되면 다음과 같이 나옵니다.

image

우리의 목표는 Cost가 최소화 되는 곳을 찾는 것입니다. 이럴 때 사용하는 방법이 Gradient descent algorithm(경사하강법)입니다.


3.4 Gradient descent algorithm

image

단순히 W,b에 대해서 뿐만 아니라, 많은 값들이 있는 Cost Function도 minimize시킬 수 있는 알고리즘입니다.


3.5 Gradient descent algorithm의 동작법

image

경사가 있으면 내려가고, 경사가 있으면 내려가고 이것을 계속 반복합니다. 그러면 어느 시점에인가 바닥에 도착합니다.

경사도를 보고 경사도를 따라서 한 발짝 움직이고, 움직인 시점에서 또 움직이고를 반복합니다. 그래서 경사도가 0이 되었을 때 거기에 머무릅니다.

image

  • 어떤 값에서나 시작할 수 있습니다. W와 b를 조금 바꾼다음에 코스트를 줄이게 됩니다. 그런 다음에 경사도를 계산해서 계산해서 과정을 반복합니다.
  • 지역 최소값(local minimum)에 도달할 때 까지 반복합니다.
  • 경사도를 구하는 방법은 미분을 사용합니다.


3.6 경사도를 구하는 방법, 경사 하강법의 수식

image

미분을 적용할 때 쉽게하기 위해서 숫자2를 추가해줍니다. 1/2m이나 1/m이나 의미적으로 같은 이유는 최소화 하는 대상에 상수값 나눔이 추가 된 것 뿐이라 의미적으로는 같습니다.

image 알파를 추가하는데, 이것을 learning rate라고 합니다. 우선 이것은 상수로 가정합니다. 식의 뜻은 Cost함수를 미분하고 그 값을 W에 다시 넣는 것입니다.

image

식의 뜻은 기울기가 양수면 -를해서 w를 작은쪽으로 움직이겠다라는 뜻입니다. 만약에 기울기가 음수면 -와 -가 만나서 w가 큰쪽으로 움직이게 됩니다.

image

위 이미지는 미분의 절차입니다. W로 미분을 하게 되면 2번째 식처럼 됩니다. 2를 생략시키면 마지막의 식이 완성됩니다. 마지막 식을 여러번 실행시켜서 W값이 지속적으로 변화되면 Cost를 minimize할 수 있는 값이 구해지게 됩니다.

image

  결국 경사 하강법은 위와 같은 하나의 식으로 정리할 수 있습니다. 이 식을 적용만 시키면 Cost Function을 최소화하는 W를 구해낼 수 있습니다. 그것이 선형 회귀의 핵심인 학습 과정을 통해서 모델을 만든다고 할 수 있습니다.


3.7 Convex

image   Cost function을 그렸더니 이와 같은 이미지가 나온다면 알고리즘에 제대로 동작하지 않는다는 문제점이 있습니다. (제대로 된 최소화 값에 도달하지 못합니다.)

image   현재 우리의 가설의 Cost Function의 그림을 그리게 되면 이런 형태의 그림이 나오게 되는데 이것을 보고 Convex function이라고 합니다. Convex할 때는 어느 시작점이든 경사 하강법이 답을 찾는다는 것을 보장하게 됩니다. 그래서 중요한 것은 Cost Function을 설계할 때 Cost Function의 모양이 Convex한지 확인해야 합니다. Convex하다면 안심하고 경사 하강법을 적용할 수 있습니다.


참고자료

손실 함수의 종류

손실 함수의 개념

수업 PPT

모두를 위한 딥러닝 Lec0

모두를 위한 딥러닝 Lec1

모두를 위한 딥러닝 Lec2

모두를 위한 딥러닝 Lec3