[머신러닝 한방 정리] 1.2 - 그래서 '학습'이 뭔데? (2)

 이야기로 읽는 머신러닝 한방 정리 

 인공지능?  딥러닝?  한방에 정리하는 핵심 요약




머신러닝을 이해하는 가장 직관적인 방법은 직접 기계가 되어보는 것이다

1.1 그래서 '학습'이 뭔데? (2)

난 시간에 당신은 스팸 메일 문제를 해결하려고 시도했다.
처음 시도한 방법은 규칙 기반 방법이었다. 어벙한 신참에게 일을 시키듯 '이걸 해라', '이건 하지 마라' 일일이 조건을 지정해주는 방법이었다.
하지만 이런 방법은 당장 몇 개의 메일을 분류하는 데는 유용할 수 있어도, 끝없이 쏟아지는 수많은 메일에 대해서는 예외가 너무 많이 발생할 수 있어 적합하지 않았다.
 
그래서 생각해낸 방법이 학습이었다. 기계를 학습시킬 수 있다면, 일 잘하는 김대리처럼 '알아서 좀' 융통성 있게 잘 분류할 수 있지 않을까? 이것이 바로 '머신러닝'의 발상이다. 우리는 다음과 같이 에밀리라는 학생의 학습 알고리즘과 머신러닝 모델의 학습 알고리즘을 비교하며 이해할 수 있었다.

그런데 이렇게 학습시킨 기계를 어떻게 사용해야 스팸 메일 문제를 해결할 수 있을까?
우선 머신러닝의 진행 과정을 크게 나누어 살펴보자.


 

1단계 학습


2단계 예측

 

위에서 살펴본 학습 알고리즘은 '1. 학습'에 해당한다. 그리고 학습된 그 모델을 가지고 새로운 데이터를 예측하는 것이 '2. 예측'에 해당한다. , '스팸 메일 분류 기계'라는 완제품을 가지고 새롭게 쏟아지는 메일들을 분류하는 것이다.
 
하지만 제품을 현장에 투입시키기 전에, 학습이 잘 되었는지 확인하는 절차가 필요하다. 왜냐하면 우리가 학습시킨 기계가, 학습하는 동안에 분류했던 메일만 잘 분류하고 새로운 메일을분류하는 능력은 훨씬 떨어질 수 있기 때문이다우리가 원하는 것은

이미 분류해본 메일만 잘 분류하는 기계가 아니라,
새로운 메일도 잘 분류할 수 있는 기계를 원하는 것이다.



따라서 기계가 잘 학습이 되었는지 검증하는 '시험'이 필요하다.
따라서 '1. 학습'을 다음과 같이 두 단계로 나눈다.
 

1단계 학습

 학습
② 시험

2단계 예측


 

1강에서는 메일 4개를 직접 레이블링하는 것으로 마쳤지만, 실제 머신러닝을 진행하기 위해서는 상당히 많은 데이터가 필요하다. 당신에게 1000개의 레이블링 된 메일 데이터가 있다고 상상하자. 레이블링이 뭔지 헷갈린다면 1강을 복습하자.
 
이제 당신은 이 1000개의 데이터로 1단계 '학습'을 진행해 '스팸 메일 분류 기계'를 만들 것이다. 하지만 1000개를 모두 ' 학습'하는 데만 사용한다면 '② 시험'을 진행할 수가 없다. 따라서 당신은 1000개 중 800개를 학습에 사용하고, 200개를 학습이 끝난 후 시험에 사용하려고 한다
이때 반드시 시험에 사용될 200개의 데이터는 학습하는 동안에 기계가 접근할 수 없게 해야한다. 시험 문제를 미리 본다면 기계가 자신의 예측 능력이 아닌 '정답 외우기' 능력을 사용해 시험을 잘 볼 수도 있기 때문이다.
 
학습을 위해 떼어놓은 800개의 데이터를 Training Data라고 하고,
시험을 위해 떼어놓은 200개의 데이터를 Test Data라고 한다.

이 두 데이터 세트는 1단계 '학습'을 위해 레이블링 된 데이터 전체를 두 덩어리로 나눈 것이다.




 
신은 이제 다시 기계가 된다.
그리고 1단계 '학습'' 학습'을 진행한다. 머신러닝 모델의 학습 알고리즘을 진행하는 것이다.
참고로 여기서 주어지는 데이터는 Training Data이다.
 
이것은 앞으로 진행되는 머신러닝 강의를 이해하고 감을 잡을 수 있는 중요한 체험이므로, 천천히 생각하면서 진행하기 바란다.

학습에 앞서 용어를 잠깐 정리하자.
완성된 모델을 가지고 실제 현장에서 예측하는 2단계 '예측'과 헷갈릴 수 있기 때문에, 1단계 '학습' 단계에서 당신이 예측하는 답은 '가설(hypothesis)'이라고 부르기로 하자.

        머신러닝 모델의 학습 알고리즘
  1. 정답을 치워둔다. (안 보이게 ' '로 처리한다.)
  2. 데이터를 바탕으로 예측을 한다.
  3. 기계가 한 예측(가설)과 실제 레이블을 비교한다.
  4. 맞으면 넘기고틀리면 본인의 예측 방향을 실제 레이블에 가까워지도록 수정한다.
  5. 이 과정을 반복한다.
 이 부분이 기억나지 않는다면 1강을 복습할 것

이제 당신의 임무가 시작된다.
Iteration의 학습을 '1회'차로 선택하고 주어지는 명령을 수행해보자.*
 * 선택을 했으나 화면에 변화가 없는 경우에는 클릭


1단계

1. 학습

Iteration: 회차



초록색: 예측한 가설과 정답이 같은 경우
노란색: 예측한 가설과 정답이 근소하게 차이나는 경우
빨간색: 예측한 가설과 정답이 크게 차이나는 경우

방금 진행한 과정이 바로 학습 '1'라고 할 수 있다.
머신러닝에서는 이를 '이터레이션(iteration)'이라고 한다.
현재 '가설-정답' 칸에서 초록색이 몇 개인지 세어보자. 아직 하나도 없을 수도 있다. 그 개수를 총 Training Data의 개수인 10으로 나누면, 학습 1회차의 정확도, '1Training Accuracy'가 된다. 일단 그 정확도를 다음 보고서에 기록해두자.
 


 보고서 ] 



첫 번째 iteration인 '1회'에서는 아직 학습된 정보가 아무것도 없기 때문에, 무작위로 찍은 것이다. 그렇다면 이제 무작위로 찍은 가설과 실제 정답을 비교하고 피드백을 받을 차례다.
위의 표로 다시 돌아가, '1''2'로 변경하고 주어지는 명령을 수행해보자.

'2회'를 완수했다면, 마찬가지로 '가설-정답' 칸에서 초록색이 몇 개인지 세어보자. 이것을 10으로 나누면 '2Training Accuracy'가 된다. 이것도 보고서에 기록하자.
그리고 2회와 똑같은 명령이 기다리고 있는 '3'를 수행하며 학습을 진행해보자.

'3'를 완수했다면, 마찬가지로 '가설-정답' 칸에서 초록색이 몇 개인지 세어보자. 이것을 10으로 나누면 '3Training Accuracy'가 된다. 마찬가지로 보고서에 기록하자.
, 이제 1, 2, 3회를 진행하며 정확도가 어떻게 변했는지 한눈에 파악해보자.
회를 거듭할수록 증가했을 것이다.
이렇게 Training Accuracy가 iteration을 거듭하면서 증가하는 것이, 학습이 잘 되어간다는 첫 번째 증거라고 할 수 있다.
 
당신은 이제 1단계 '학습' 과정 속 '학습'이 어떻게 진행되는지 간략하게 체험해보았다. 실제 머신러닝에서는 수십, 수백 회까지 진행하기도 한다.
이런 학습이 종료되면, 'Test Data'를 가지고 '② 시험'을 보게 된다. 시험 결과'Test Accuracy', 즉 시험 정확도를 가지고 우리는 모델의 능력을 객관적으로 파악할 수 있는 것이다.
Test Accuracy가 만족스러운 성능(예를 들어 96%)을 낸다면, 마침내 우리의 '스팸 메일 분류 기계'는 학교를 졸업하고 현장으로 투입될 수 있는 것이다. 그리고 그 녀석에게 주어지는 임무가 바로
 

2단계 '예측' 인 것이다.

 


이렇게 1강과 2강을 통해, 우리는 학습과 예측이 어떻게 이루어지는지 간략하게 살펴보았다.
학습에 대해서 아직 선명한 상이 잡히지 않더라도 괜찮다. 지금은 'Chapter 1: 큰 그림 살펴보기' 단계이기 때문에, 전체적인 그림만 파악해도 성공한 것이다.

다음 강의에서는 인공지능, 머신러닝, 딥러닝이라는 용어가 정확히 어떤 관계인지 한방에 정리하고 직접 사례를 나눠보는 시간을 가질 것이다




댓글 쓰기

10 댓글

  1. 학습 과정을 직접 체험해 볼 수 있다는게 좋네요 ~. 학습 내용이 어떻게 레이블에 대한 스팸메일 분류로 이어지는지가 궁금해요.

    답글삭제
    답글
    1. 감사합니다! Chapter 2에서 머신러닝 알고리즘에 대해 자세히 살펴볼 예정입니다 :)

      삭제
  2. 하나씩 이해의 정도가 깊어가는 것 같네요~~~~~ 다음 강의도 궁금해지는군요

    답글삭제
    답글
    1. 감사합니다! 도움이 되었다니 기쁘네요 :)

      삭제
  3. 2강 시작하면서 지난 시간 1강의 내용을 친절하게
    정리해 주니까 더욱 이해가 잘 되어 참 좋네요
    다음 3강도 기대됩니다^^

    답글삭제
    답글
    1. 감사합니다! 다음 강의도 열심히 준비하겠습니다 :)

      삭제
  4. 강의 잘 듣고 가요!

    답글삭제
  5. 굳굳! 테스트 작동하는 거 신기하다ㅋㅋ

    답글삭제
    답글
    1. 감사합니다! 이번 강의의 퀴즈는 만드느라 정말 고생 좀 했습니다ㅎㅎ

      삭제