오진이 블로그

[ML][Introduction] What is Machine Learning? 본문

Development/Machine Learning

[ML][Introduction] What is Machine Learning?

오늘도 진이 2021. 4. 2. 16:15
What is Machine Learning? - Introduction | Coursera
This Course Video Transcript Machine learning is the science of getting computers to act without being explicitly programmed. In the past decade, machine learning has given us self-driving cars, practical speech recognition, effective web search, and a vastly improved understanding of the human genome.
https://coursera.org/share/15cbb5381360790db52514d5110445d6

기계학습이란 무엇인가요? 이번 강의에서는 '기계학습'을 정의하고, '기계학습'을 언제 사용하면 좋을지 알아보려 합니다. 아직 전문가들 사이에서도 무엇이 '기계학습'이고 무엇이 '기계학습'이 아닌지 합의가 이루어지지 않았습니다. 그 동안 나온 정의를 하나씩 살펴보겠습니다. 먼저 Arthur Samuel의 정의입니다. 기계학습이란, 컴퓨터가 명시적(explicit) 프로그램이 없어도 스스로 학습할 수 있는 능력을 연구하는 학문 분야입니다.

Samuel은 1950년대에 체커 게임을 직접 수행하는 프로그램을 만들면서 유명해졌습니다. 믿기 어렵겠지만, 프로그램을 만든 Samuel은 체커 게임을 잘 못했습니다. Samuel은 프로그램이 게임을 수만 번 반복 수행하도록 만들었습니다. 프로그램은 반복 횟수가 축적되면서 어떤 수(手)로 이길 수 있고, 어떤 수(手)로 지는지 알게 되었으며, 상황에 따라 수(手)의 좋고 나쁨을 판단할 수 있게 되었습니다. 결국 이 프로그램은 Arthur Samuel보다도 체커 게임을 잘 하게 되었습니다. 놀라운 결과입니다. Arthur Samuel은 체커 게임을 못했지만, 같은 게임을 수만 번 반복할 끈기가 있는 컴퓨터를 활용했습니다. 그 어떤 사람도 이런 인내심은 없습니다. 컴퓨터는 체커 게임을 여러 번 반복한 끝에 게임을 Arthur Samuel보다도 잘 하게 된 것입니다.

지금까지 본 Samuel의 정의는 사실 조금 오래된 느낌이 있습니다. 더 최근에 나온 Tom Mitchell의 정의를 볼까요? Tom Mitchell은 Carnegie Mellon 대학교 교수입니다. Tom Mitchell은 '기계학습'을 '학습 과제(well-posed learning problem)' 중심으로 정의하고 있습니다. 프로그램이 일정 수준의 작업 성능(P)을 가지고 작업(T)을 수행한다고 했을 때, 경험(E)이 증가함에 따라 작업(T)를 수행하는 성능(P)이 향상될 수 있습니다. 이 때 프로그램이 경험(E)으로부터 학습(learn)을 했다고 표현합니다. Mitchell이 일부러 운(rhyme)을 맞추려고 한 것 같지 않나요? Tom Mitchell의 정의를 체커 게임에 대입해 봅시다. 체커스에서 경험(E)는 '같은 게임을 수만 번 반복하는 과정', 작업(T)는 체커 게임을 수행하는 행위, 작업 성능(P)는 프로그램이 다음 판을 새로운 상대로 했을 때 그 판을 이길 확률(probability)입니다.

우리 강의에서는 제가 일방적으로 가르치는 것 외에도, 여러분이 잘 이해하고 있는지 확인하는 차원에서 질문을 하나씩 드릴 예정입니다. 지금 문제 하나 풀어볼까요?

페이지 상단에 있는 파랑색 글씨는 Tom Mitchell의 기계학습 정의입니다. 이메일 프로그램은 사용자가 어떤 메일을 스팸으로 체크하는지 기록합니다. 이렇게 생긴 이메일 client가 있을 때, 여러분은 어떤 메일에는 Spam 버튼을 눌러서 신고를 하는 반면, 어떤 메일은 신고하지 않습니다. 이메일 프로그램은 여러분의 신고 패턴을 기억함으로써 스팸을 잘 제거하는 방법을 학습합니다. 이 상황에서 작업(T)는 무엇일까요? 영상이 잠시 멈추면 마우스를 이용해서 4개 선지 중 정답을 하나만 선택해 주세요.

잘 푸셨나요? 작업(T)는 '스팸 메일 선별/신고하기'입니다. 경험(E)와 작업 성능(P)도 찾아볼까요? 경험(E)은 컴퓨터가 여러분이 메일을 스팸/정상 메일로 분류하는 것을 관찰하는 것이고, <br /> 작업 성능(P)은 '정확하게 분류된 메일의 비율'이겠죠? 정의로 돌아가보면, 우리 이메일 시스템은 경험(E)의 증가에 따라 작업(T)를 수행하는 작업 성능(P)이 향상될 것입니다.우리 강의에서는 다양한 학습 알고리즘을 배울 예정입니다. 학습 알고리즘도 여러 개가 있는데요, 우리가 주로 배울 학습 알고리즘은 지도학습(Supervised Learning)과 자율 학습 입니다. 이 용어들이 정확히 무엇을 의미하는지는 이후 강의에서 다루겠습니다. 지도학습(Supervised Learning)은 작업을 수행할 수 있는 방법을 컴퓨터에게 가르치는 것이 핵심이라면, 비지도학습(Unsupervised Learning)의 경우, 컴퓨터가 스스로 학습하도록 유도합니다. 아직 두 개의 차이가 느껴지지 않아도 걱정하지 마세요! 다음 두 개 영상에서 '지도학습'과 '비지도학습'이 각각 무엇인지 자세히 가르쳐 드리겠습니다. 강화학습(Reinforcement Learning), 추천 시스템(Recommender Systems)과 같은 새로운 용어를 들어보셨을 수도 있습니다. 강화학습과 추천 시스템도 기계학습 알고리즘입니다. 그래도 가장 많이 사용되는 알고리즘은 지도학습과 비지도학습 두 가지입니다. 지도학습과 비지도학습 알고리즘은 다음 두 강의에서 자세히 정의하겠습니다. 여기에서 배울 개념은 이후 강의의 기초가 될 것입니다. 우리 강의에서는 기계학습 이론 외에도 학습 알고리즘을 응용하는 실무를 다루고 싶습니다. 저는 '실무'를 특히 강조하는 편인데, 일반적으로 대학 교수들이 선택하는 교수법은 아닙니다. 학습 알고리즘을 가르친다는 것은 여러분께 도구를 드리는 것입니다. 어쩌면 도구 그 자체보다 더 중요한 것은 이 도구를 잘 활용할 수 있는 방법을 가르쳐 드리는 것입니다. 공부하는 것은 목수가 되는 것과 유사합니다. 누군가 여러분에게 목수가 되는 방법을 가르쳐 주고 있습니다. 망치, 드라이버, 톱 하나씩 던져주기만 하고 알아서 하라고 하면 어떨까요? 도움이 안 되겠죠? 도구는 많겠지만 가장 중요한 것은 도구를 활용하는 방법을 배우는 것입니다.

기계학습 알고리즘을 '잘 활용할 줄 아는 사람'과 알고리즘을 '잘 활용하지 못하는 사람' 간에는 큰 차이가 있습니다. 제가 살고 있는 실리콘밸리에는 유명한 회사가 많은데요, 이런 회사에 있는 사람들도 때로는 6개월씩이나 별다른 결과 없이 기계학습 알고리즘과 씨름하고 있습니다. 이 사람들이 하고 있는 일을 가만히 보면 답답할 때가 있습니다. 6개월 전에 저한테 변형된(modified) 학습 알고리즘을 받아갔다면 성공할 확률이 훨씬 높았을 텐데요. 그래서 우리 강의에서는 실무를 더 많이 다루려 합니다. 실제로 기계학습 시스템을 개발하게 되면 어떻게 접근해야 최적화된 시스템을 만들 수 있을지 고민해봐야 합니다. 그래야 여러분은 실무를 시작했을 때 다른 사람이 순식간에 해결할 수 있는 문제를 6개월 동안 붙잡고 있는 참사가 일어나지 않겠죠. 저는 특별히 기계학습(ML)과 인공지능(AI) 분야의 Best Practice를 많이 다룰 예정입니다. 실리콘밸리를 비롯한 전 세계에서 최고의 인재들이 어떻게 일하는지 알려드리겠습니다. 저는 여러분을 기계학습(ML)과 인공지능(AI) 분야에서 최고의 시스템을 설계할 수 있도록 키우고 싶습니다. 기계학습에 대한 서론은 여기까지입니다. 다음 강의에서는 지도학습(Supervised Learning)과, 이어서 비지도학습(Unsupervised Learning)을 살펴보겠습니다. 또한, 지도학습과 비지도학습은 각각 언제 활용할 수 있을지 알아보겠습니다.

Comments