안녕하세요 저는 부스트캠프 웹 과정을 진행중인 이주현이라고 합니다.
오늘은 여러분들이 머신러닝과 딥러닝의 개념을 간단하게나마 이해할 수 있도록 발표를 준비했습니다.
오늘 알아볼 내용은 머신러닝이 무엇이고 학습과 예측이 어떻게 이루어지는지,
그리고 딥러닝은 또 무엇이고 딥러닝이 어떻게 활용되는지 알아보겠습니다.
머신러닝은 크게 다음과 같은 과정으로 진행됩니다.
먼저 주어진 데이터를 분석하여 알맞은 구조의 모델을 정하게 됩니다.
여기서 모델이란 사람의 뇌와 같은 역할이라고 생각하시면 됩니다.
모델을 정했다면 모델에 맞게 데이터를 가공하고, 가공한 데이터로 모델을 학습시킵니다.
모델이 충분히 학습되었다면, 새로운 데이터를 넣어 결과를 예측하게 됩니다.
그렇다면 구체적인 예를 통해 좀 더 자세히 알아보겠습니다.
먼저 첫번째로 데이터에 맞는 모델을 정의해야 합니다.
우리에게 1시간을 공부하면 2점, 2시간을 하면 4점, 3시간을 하면 6점을 받는다는 데이터가 있다고 하면,
이 데이터가 직선적인 관계를 가질 것으로 추측할 수 있습니다.
따라서 y^=wx 라는 선형회귀분석모델을 사용하겠습니다. 여기서 y^은 참값이 아닌 예측값을 뜻합니다.
물론 지금은 데이터가 간단하기 때문에 w가 2인 것을 바로 알 수 있지만, 컴퓨터는 이 값을 찾는 과정이 필요합니다.
이제 모델 학습을 통해 어떻게 w 값을 찾을 수 있는지 알아보겠습니다.
먼저 올바른 w 값을 찾기 위해서는 임의로 정한 w 값이 얼마나 잘못되었는지 계산해야 합니다.
이 잘못된 정도를 loss라고 하며, loss를 계산하기 위한 함수를 loss function이라고 합니다.
linear regression에서는 일반적으로 Mean Squared Error, 평균제곱오차를 사용합니다.
평균제곱오차는 예측값에서 참값을 빼고 제곱한 뒤 평균을 계산한 값입니다.
이 loss function을 통해 우리는 음이 아닌 정수 값으로 loss 값을 구할 수 있습니다.
이제 모든 w 값의 평균제곱오차를 구해 그래프로 그려보면 다음과 같은 그래프를 얻을 수 있습니다.
우리의 목표는 여기서 loss가 가장 작은 w 값을 구하는 것입니다.
하지만 현실적으로 모든 w 값의 loss를 구하는 것은 너무 많은 연산이 필요하기 때문에
임의의 w 값을 정하고 loss가 적은 방향으로 이동시키는 알고리즘을 사용하게 됩니다.
w를 loss가 감소하는 방향으로 이동시키기 위해서는 loss function의 w에서의 미분값을 빼주면 됩니다.
w가 loss가 최소 지점보다 오른쪽에 있으면 양의 기울기, 왼쪽에 있으면 음의 기울기를 갖기 때문에 뺄셈을 통해 최소 지점으로 이동할 수 있습니다. 이 때 너무 많이 이동하게 되면 최소 지점을 지날 수 있기 때문에 learning rate 알파 값을 곱한 후 빼게 됩니다.
다음은 우리가 가진 데이터로 gradient descent 알고리즘을 통해 모델을 학습시키는 과정입니다.
w를 임의의 값 1로 설정하고, learning rate는 0.01로 설정한 뒤 10번의 학습과정을 거치면,
w가 우리의 목표인 2에 가깝게 이동하는 것을 볼 수 있습니다.
따라서 이 학습된 w를 통해 모델이 더 정확한 예측을 할 수 있습니다.
하지만 방금과 같이 입력값이 하나가 아니라 이미지라면 어떨까요??
이미지는 픽셀 하나 하나가 변수로 들어가게 되는데, 이 이미지는 약 35만개의 픽셀로 이루어지므로, 변수도 35만개가 됩니다.