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

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

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




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




1.1 그래서 '학습'이 뭔데?


이제부터 당신은 기계.
그렇게 생각해보자. 어느 날 눈을 떴더니, 기계가 된 것이다.

당신에게 첫 번째 임무가 주어졌다.
스팸 메일을 골라내는 것이다. 날마다 들어오는 수많은 이메일 중에, 스팸 메일만 골라내고 싶다
 

어떻게 해야할까?






가장 쉽게 떠올릴 수 있는 방법은, 특정 단어가 제목에 포함된 메일을 색출하는 것이다.
일단 한 번 시도해보자.
 

문제 1

당신은 다음 명령을 그대로 수행하는 기계다.


명령: 제목에 다음 단어들 중 적어도 하나가 포함된 메일을 체크한다.
           {"초특가", "판매", "무료"}




결과:

 


살펴보면 문제점이 생긴다.

먼저 "판매" 때문에, 일반적인 업무 메일인 (3)이 스팸으로 잘못 분류된다.
그렇다고 "판매"를 지우자니, (2)가 스팸으로 분류되지 않는 문제가 예상된다.

또한 단어 목록에 해당하는 단어가 없기 때문에, (4)는 스팸인데도 스팸으로 분류되지 않는다.


이번엔 조금 업그레이드 된 명령을 내려보자.




문제 2

당신은 다음 명령 두 가지를 그대로 수행하는 기계다.


명령1: 제목에 다음 단어들 중 적어도 하나가 포함된 메일을 체크한다.
            {"초특가", "무료", "더블 배당"}


명령2: 제목에 "판매"가 포함된 경우, 다음을 순서대로 실행한다.

         I. 다음과 같은 단어들이 제목에 함께 있는 경우, 체크하지 않는다:
           {"업무", "보고서", "영업"}

        II. I의 조건에 해당하지 않는 경우, 체크한다.




결과:




우선 네 가지 이메일을 제대로 분류하는데 성공했다.
하지만 이 두 가지 명령을 가지고, 다른 수천 개의 이메일을 분류하는데 몇 퍼센트 정도 성공적으로 분류할 수 있을까?
그렇게 높지 않을 것이다.
 

1번 예시에서 "무료"가 아닌 "공짜"로 바뀔 경우 스팸 필터링을 피할 수 있다.

또한 예를 들어, "1분기 판매량 관련 첨부파일 재전송 부탁드립니다" 라는 제목의 메일은,
"판매"는 포함하지만, 명령2-I의 단어 목록과 함께 제시되지 않았으므로, 명령2-II에 따라 스팸으로 분류된다.
 

실제로 스팸을 배포하는 사람들은 스팸 필터링 시스템이 업그레이드됨에 따라, 스팸 필터링에 걸리지 않으면서 스팸 메일을 성공적으로 보낼 수 있는 방법을 연구하고 발전시킨다.
, 조건을 하나하나 붙여가는 방식으로는 제대로 일을 수행할 수 없고, 예측 불가능한 스팸 메일의 변화에 대처할 수 없다.
 




이건 마치 어벙한 신입사원과도 같다.
일을 시키려면 모든 경우에 대해 일일이 지시를 해줘야 한다. 그러다 지시해준 경우에서 조금 벗어난 상황이 발생하면? 어김없이 상사에게 달려와 해결해달라고 징징댈 것이다.
상사는 속으로 생각한다.


 '이정도면 알아서 좀 할 것이지!'



자, 이번에는 일 잘하는 3년 차 김대리를 보자.

부장님이 그의 어깨를 툭 치며 말한다.
 "이번에도 믿고 맡길게, 김대리!"
일일이 어떻게 하는지 가르쳐주지 않아도, 어떻게든 기한 내에 제대로 된 성과를 들고 나타나는 김대리우리는 이런 능력을 보고 '융통성'유도리이 있다고 한다.
 

다시 스팸 메일 문제로 돌아가 보자.
어떻게 하면 김대리처럼 융통성유도리 있게, 알아서 좀  일 처리를 시킬 수 있을까?
구구절절 모든 상황을 적어 놓고, 문제가 생길 때마다 일일이 수정하고 새로운 조건을 붙여야 하는 조잡한 방식 말고.
 
 
여기서 드디어 '학습'이 등장한다.
학습의 원리를 설명하기에 앞서, 잠깐 기계 상태에서 벗어나 인간으로 돌아가자.
그리고 다음 문제를 풀어보자.



문제 3

당신은 인간이다. 당신의 두뇌를 활용해 다음 사항을 처리하라.


Data에 속한 스팸 메일을 찾아서, Label의 해당 번호에 체크하라.


Data
(1) 온라인 게임장 짜릿한 타격감과 96% 환수율 무료머니 5만으로 먼저 체험하세요!
(2) 전상­품 1 + 1 이벤트 총알 배송! 특가 패키지 상품 한정 판매!
(3) 영업1팀 판매실적보고서 수정사항 확인 바랍니다.
(4) 더블 배당 이벤트━가입 즉시 5만━정식인증━모바일 지원

Label


이번 경우에는 당신이 직접 '답지'를 만든 것이기 때문에 채점 되는 결과가 없다.




방금 당신이 한 행위를 레이블링(labeling)이라고 한다. 라벨, 즉 꼬리표를 붙인다는 뜻이다.
정확하게는 4개의 데이터에 대해서, 그 데이터의 정답을 표시했다는 의미다.
다음 표와 같이, 스팸 메일인 데이터에는 '1', 스팸 메일이 아닌 데이터에는 '0'이라는 정답 표기가 있는 '답지'를 오른쪽에 추가한 것이다.

Index
Email title
Label*
1
온라인 게임장 짜릿한 타격...
1
2
전상­1 + 1 이벤트 총알...
1
3
영업1팀 판매실적보고서 수...
0
4
더블 배당 이벤트가입 즉...
1
* 스팸 메일이면 1, 스팸이 아니면 0.
 


국에서 공부하고 있는 학생인 에밀리는 국어 시험 문제지를 풀고 있다. 
그런데 만약 답지가 없다면, 에밀리는 자신이 고민해서 선택한 ''이 실제로 맞았는지 틀렸는지 알 수가 없다. 하지만 답지가 있다면, 자신이 '예측한 답'과 답지의 '정답'을 비교하고 채점할 수 있다.
채점을 할 때, 에밀리는 맞은 답의 경우는 고개를 끄덕이며 넘기고, 틀린 답의 경우는 왜 틀렸는지 고민하며 앞으로는 틀리지 않도록 그 부분에 대한 본인의 잘못된 생각을 수정한다. , 다음과 같은 알고리즘을 수행한다.
 

       에밀리의 학습 알고리즘

  1. 답지를 다른 곳에 치워둔다.
  2. 문제를 공책에 푼다(예측한 답을 적는다).
  3. 공책에 적힌 답과 답지의 정답을 비교한다.
  4. 맞으면 넘기고, 틀리면 본인의 생각을 정답에 가까워지도록 수정한다.
  5. 이 과정을 반복한다.
 

이것이 학습의 기본 개념이다.
맞은 것은 넘기고, 틀린 것은 수정하면서 정답을 향해 발전해나가는 것.
 

이제 당신에게는 레이블링 된 데이터 4개가 있다.
이 레이블링된 데이터를 어떤 '학습하는 기계'에 집어넣으면, 그 모델('학습하는 기계')은 다음의 과정을 진행한다.

 
       머신러닝 모델의 학습 알고리즘

  1. 레이블(정답)을 다른 곳에 치워둔다.
  2. 데이터를 바탕으로 예측을 한다.
  3. 기계가 한 예측과 실제 레이블을 비교한다.
  4. 맞으면 넘기고, 틀리면 본인의 예측 방향을 실제 레이블에 가까워지도록 수정한다.
  5. 이 과정을 반복한다.
 
에밀리가 그랬듯이, 레이블을 가리고 그 데이터를 문제처럼 풀고(예측을 진행하고), 각 데이터의 레이블을 답지로 참고하며 학습을 진행한다. ,
 
맞은 것은 넘기고, 틀린 것은 수정하면서 정답을 향해 발전해나가는.
이것이 바로 기계학습, 즉 머신러닝(machine learning)이다.
 
 


 

오늘 당신은 기계가 되어 스팸 메일 문제를 해결하려고 시도했다.
처음에는 어벙한 신참에게 일을 시키듯이, 모든 경우를 일일이 만족시킬 수 있는 조건을 지정해주는 방법을 시도했다. 이것을 '규칙 기반(rule-based)' 방법이라고 한다.
 
그러다가 당신은 여러 가지 문제를 만나고, 도저히 안 될 것 같아서 방법을 바꾸었다. 바로 '학습'이란 방법이다. 이는 일 잘하는 김대리를 만들어내는 걸로 비유할 수 있다.
결과는 물론 '학습', 즉 머신러닝의 압승이다!
이 밖에도 머신러닝이 눈부신 성과를 내는 사례는 셀 수 없이 찾을 수 있다.

 
이제 '학습'에 대해 감이 오는가?
 


당신은 이번 강의를 통해 레이블링을 실제로 해봤고, 학습과정에 대해 간략히 알게 되었다. 다음 강의에서는 학습과 예측의 과정을 이해하고, 훈련집합과 시험집합에 대해 알아보도록 하자.
 
챕터 1 '큰 그림 보기'가 끝나고 챕터 2 부터는,  학습 알고리즘들을 자세히 살펴볼 것이다. , 어떻게 모델이 학습을 진행하면서 발전하는지를 가까이서 지켜볼 것이다. 물론, 당신이 그 기계가 되어 문제를 해결하면서 말이다.

 

댓글 쓰기

14 댓글

  1. 다음 레슨이 기대됩니다! 그림도 귀여워용 >.<

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

      삭제
  2. 생소한 용어들인데 이해하기 쉽게 설명되어있어서 편했습니다. 좋은 정보 얻어갑니다.

    답글삭제
    답글
    1. 감사합니다 :) 앞으로도 쉽고 유용한 내용으로 찾아뵐게요!

      삭제
  3. '머신러닝'에 대해 전혀 모르는 저와 같은 사람도
    이해하기 쉽게 아주 친절하고도 체계적으로 설명이
    잘 되어있어서 무척 좋았습니다.

    답글삭제
    답글
    1. 감사합니다! 생소하셨는데도 잘 이해되었다니 기쁘네요 :)

      삭제
  4. 진위여부를 가리고 예측하여 진행하는 머신러닝의 개념을 한장에 정히해 주네요~~~~^^

    답글삭제
    답글
    1. 감사합니다! 남은 강의도 한방에 정리해주는 강의 만들겠습니다 :)

      삭제
  5. 체계적으로 설명이 잘 되어있네요!
    이모티콘이 너무 귀여워요 ㅠ

    답글삭제
    답글
    1. 감사합니다! 이모티콘 나중에 모아서 카톡 스토어에도 신청해보려구요 :)

      삭제
  6. 설명 쉽고 간명하군요!! good!

    답글삭제
  7. 설명을 너무 잘하시네요. 내용을 떠나 글자체가 재밌어서 읽게 됩니다 :)

    답글삭제
    답글
    1. 감사합니다! 재미있게 읽으셨다니 너무 기쁘네요 :)

      삭제