기계 학습을 시작하는 방법?

인간의 지능을 뛰어넘는 기계를 만들려는 노력은 결코 새로운 시도가 아닙니다.

컴퓨터 과학 분야에서 인간의 “지능”을 탐구하려는 초기 시도 중 하나는 체스 게임을 통해서였습니다. 많은 사람들이 체스를 인간의 지능과 창의성을 평가하는 궁극적인 척도로 여겼으며, 1960년대와 70년대에는 컴퓨터 과학 내에서 다양한 의견들이 존재했습니다.

일부에서는 컴퓨터가 체스에서 인간을 능가하는 것은 시간문제라고 주장했지만, 다른 사람들은 그러한 일은 결코 일어나지 않을 것이라고 믿었습니다.

카스파로프 대 딥 블루

인간과 기계 간의 대결 구도를 보여준 가장 충격적인 사건은 1996년에 당시 세계 챔피언이었던 가리 카스파로프(역대 최고의 체스 선수 중 한 명으로 여겨짐)와 IBM의 슈퍼컴퓨터 딥 블루 간의 체스 경기였습니다. 딥 블루는 이 대결을 위해 특별히 설계된 컴퓨터였습니다.

이미지 출처: Wikipedia

1996년 경기에서 카스파로프는 4-2로 승리했지만, 1997년 재대결에서 3.5-4.5로 패배했습니다. 이후 카스파로프는 논쟁이 있었고 IBM이 부정행위를 했다는 의혹을 제기하기도 했습니다.

어찌 됐든 체스와 컴퓨터 과학의 시대는 새로운 국면을 맞이했습니다. 이제 컴퓨터는 살아있는 인간보다 더 똑똑해질 자격을 얻었습니다. 복수에 만족한 IBM은 딥 블루를 해체하고 다른 분야로 나아갔습니다.

오늘날에는 어떤 체스 그랜드마스터도 상용 하드웨어에서 작동하는 일반적인 체스 엔진을 이길 수 없습니다.

머신 러닝이 아닌 것?

머신 러닝에 대해 더 깊이 알아보기 전에 몇 가지 오해를 먼저 풀고 넘어가겠습니다. 머신 러닝은 인간의 두뇌를 복제하려는 시도가 아닙니다. 일론 머스크와 같은 사람들이 과장된 믿음을 가지고 있더라도, 컴퓨터 과학 연구자들은 그들이 신성한 영역을 탐험하는 것이 아니며, 그 목표에 근접하지도 않았다고 주장합니다.

간단히 말해 머신 러닝은 컴퓨터에 예시를 통해 학습하는 과정을 적용하는 방법입니다. 이는 가능한 모든 시나리오와 규칙을 시스템에 미리 입력해야 하는 전통적인 방식과는 대조적입니다.

쉽게 말해 머신 러닝은 소스 코드에 의존하는 대신, 수많은 데이터를 컴퓨터에 제공하여 예시(시행 → 오류 → 비교 → 개선)를 통해 학습하도록 하는 것입니다.

머신 러닝의 응용

그렇다면 머신 러닝이 신비로운 마법도 아니고 터미네이터를 만들어 내는 것도 아니라면, 어디에 유용하게 사용될 수 있을까요?

머신 러닝은 전통적인 프로그래밍 방식이 한계에 부딪히는 경우에 도움이 됩니다. 이러한 경우는 일반적으로 두 가지 범주로 나뉩니다.

이름에서 알 수 있듯이, 분류는 사물에 올바른 라벨을 붙이는 것과 관련이 있으며, 예측은 과거의 데이터를 바탕으로 미래를 예측하는 것을 목표로 합니다.

다음은 머신 러닝의 흥미로운 몇 가지 응용 분야입니다.

스팸 필터링

이메일 스팸은 만연하지만, 이를 차단하려는 노력은 마치 악몽과 같습니다. 스팸은 어떻게 정의해야 할까요? 특정 키워드의 존재일까요? 아니면 문장 구조일까요? 프로그램의 관점에서 명확한 규칙을 정하기는 어렵습니다.

이러한 이유로 머신 러닝을 활용합니다. 시스템에 수백만 개의 스팸 메시지와 정상 메시지를 보여주고, 나머지 분류는 시스템 스스로 학습하도록 합니다. 이것이 바로 2000년대 초 개인 이메일 시장을 뒤흔든 Gmail의 뛰어난 스팸 필터의 비결이었습니다!

추천

오늘날 주요 전자상거래 회사들은 모두 강력한 추천 시스템을 갖추고 있습니다. 때로는 우리가 이전에 클릭한 적이 없는 항목임에도 불구하고 우리가 유용하다고 “생각할 수 있는” 항목을 추천하는 능력은 놀라울 정도로 정확합니다.

단순한 우연일까요? 절대 아닙니다!

머신 러닝이 이 분야에서 핵심적인 역할을 합니다. 테라바이트 단위의 데이터를 처리하고 우리의 변덕스러운 기분과 선호도를 예측하려 합니다.

챗봇

이상하게 로봇처럼 보이지만 흥미로운 대화를 나눌 수 있는 1차 고객 지원을 경험해 보신 적이 있나요?

바로 머신 러닝이 작동하고 있는 것입니다!

대화를 통해 학습하고 언제 무엇을 말해야 할지 결정하는 것은 챗봇 응용 프로그램의 미래를 밝게 하는 흥미로운 분야입니다.

잡초 제거

농업 분야에서는 머신 러닝으로 작동하는 로봇을 사용하여 작물 사이에 있는 잡초와 원치 않는 식물을 선택적으로 제거합니다.

만약 그렇지 않다면 시스템은 작물에도 제초제를 살포할 것이기 때문에, 손으로 직접 제거해야 하거나 큰 낭비가 발생할 것입니다!

음성 검색

컴퓨터 시스템과의 음성 기반 상호 작용은 더 이상 공상 과학 소설이 아닙니다. 오늘날 우리는 구두 명령을 이해하고 제대로 작동하는(거의 완벽하게!) Alexa, Siri, Google Home과 같은 디지털 비서를 가지고 있습니다.

어떤 사람들은 이러한 기술이 인류를 그 어느 때보다 게으르게 만든다고 주장할 수도 있지만, 그 효과에 대해서는 논쟁의 여지가 없습니다.

의료 진단

머신 러닝 기반 시스템이 경험 많은 의사를 능가하기 시작하면서 의료 진단 분야는 혁명을 맞이하고 있습니다. 진단은 엑스레이 등을 통해 이루어집니다.

이것은 곧 의사가 필요 없어질 것이라는 의미가 아니라, 의료 서비스의 품질이 크게 향상되는 반면 비용은 급격히 줄어들 것이라는 의미입니다 (물론, 기업 카르텔이 다른 방향으로 움직이지 않는 한!).

이것들은 단지 머신 러닝이 사용되는 예시일 뿐입니다. 오늘날 자율주행차, 전략 게임 봇, 티셔츠 접는 기계, 보안 문자 해독, 흑백 사진 채색 등 다양한 분야에서 머신 러닝이 활용되고 있습니다.

머신 러닝의 유형

머신 러닝 기술은 크게 두 가지 유형으로 나눌 수 있습니다.

시스템이 인간의 판단에 따라 지시를 받는 지도 학습과 시스템이 스스로 학습하도록 내버려 두는 비지도 학습입니다. 다시 말하면, 지도 학습에서는 시스템이 비교하고 자체적으로 수정할 때 사용하는 입력값과 예상 출력값을 모두 포함하는 데이터 세트가 존재합니다. 그러나 비지도 학습에서는 측정할 기존 출력값이 없으므로 결과가 크게 달라질 수 있습니다.

비지도 머신 러닝의 흥미롭고 어려운 응용 분야는 무엇일까요?

그것은 바로 보드 게임을 하는 봇일 수 있습니다. 프로그램이 게임 규칙과 승리 조건을 학습한 다음 스스로 작동하도록 내버려 두는 것입니다. 그런 다음 프로그램은 실수를 통해 배우고 유리한 결정을 강화하면서 수백만 번의 게임을 스스로 진행합니다.

충분히 강력한 컴퓨터를 사용한다면 몇 시간 안에 세계 최고 수준의 AI 게임 플레이어를 만들 수 있습니다!

다음 이미지는 이러한 개념을 간결하게 보여줍니다 (출처: Medium).

머신 러닝 시작을 위한 자료

이제 머신 러닝과 머신 러닝이 세상을 정복하는 데 어떻게 도움이 되는지 알게 되었으니, 어디서부터 시작해야 할까요?

아래에는 박사 학위를 취득하지 않고도 머신 러닝을 익힐 수 있는 훌륭한 웹 리소스가 나열되어 있습니다. 컴퓨터 과학 분야에서 머신 러닝 연구원이 아니더라도 머신 러닝은 프로그래밍만큼 실용적이고 즐거울 수 있습니다.

그러니 걱정하지 마세요. 현재 수준에 관계없이 머신 러닝 프로그램처럼 스스로를 가르치고 실력을 향상시킬 수 있습니다. 😛

#1. 프로그래밍

머신 러닝을 시작하기 위한 첫 번째 단계는 프로그래밍을 배우는 것입니다. 머신 러닝 시스템은 다양한 프로그래밍 언어의 라이브러리 형태로 제공되기 때문입니다.

가장 추천되는 방법은 파이썬입니다. 배우기 쉽고 방대한 라이브러리와 리소스 생태계를 가지고 있기 때문입니다.

공식 초보자 가이드는 파이썬에 대해 약간이라도 알고 있다면 시작하기 좋은 곳입니다. 아니면, 이 부트캠프 코스를 통해 기초부터 고급까지 학습할 수도 있습니다.

#2. 생각 통계

파이썬의 기초를 익히면 두 가지 훌륭한 책을 살펴보는 것이 좋습니다. 100% 무료이며 PDF로 다운로드할 수 있습니다. 생각 통계생각 베이즈는 머신 러닝 엔지니어를 지망하는 모든 사람이 반드시 이해해야 할 현대적인 고전입니다.

#3. 유데미

이 시점에서는 유데미에서 몇 가지 강좌를 수강하는 것이 좋습니다. 상호작용적이고 자기 주도적인 학습 방식은 핵심 사항을 이해하고 자신감을 키우는 데 도움이 됩니다.

강좌를 시작하기 전에 코스 미리보기, 리뷰(특히 부정적인 리뷰!) 및 코스의 전반적인 느낌을 확인하십시오.

YouTube에서 무료로 제공되는 훌륭한 튜토리얼도 시청할 수 있습니다. Sentdex는 추천할 만한 채널 중 하나입니다. 항상 재미있지만 그의 접근 방식은 초보자에게 적합하지 않을 수 있습니다.

#4. 앤드류 응

앤드류 응이 진행하는 코세라 강좌는 머신 러닝 기초를 학습하는 데 가장 인기 있는 자료 중 하나입니다.

R 프로그래밍 언어를 사용하지만, 주제를 다루는 방식과 명확한 설명은 여전히 독보적입니다. 이 강좌 덕분에 앤드류 응은 머신 러닝 분야에서 거의 신과 같은 위치를 차지하게 되었으며, 사람들은 그의 궁극적인 지혜를 배우기 위해 그를 존경합니다(농담이 아닙니다!).

이 강좌는 초보자에게는 적합하지 않지만, 데이터 분석에 이미 익숙하고 진행하면서 부가적인 연구를 하는 데 거부감이 없다면 최고의 선택이 될 것입니다.

#5. 유다시티

유다시티에서 이 나노 학위를 취득하여 머신 러닝 엔지니어가 되어보세요.

이 과정을 완료하는 데 약 3개월이 걸리며, 머신 러닝 알고리즘, 모델링 및 프로덕션 배포 방법에 대한 기본적인 이해를 얻을 수 있습니다.

결론

인터넷에는 무한한 자료가 있기 때문에, 시작할 때 길을 잃기 쉽습니다. 대부분의 튜토리얼과 토론은 수학적으로 어렵거나 구조가 부족하여 시작하기도 전에 자신감을 잃게 만들 수 있습니다.

따라서 자멸을 경계하라고 말씀드리고 싶습니다. 목표를 낮게 잡고 최소한의 단계를 밟아나가세요. 머신 러닝은 하루나 이틀 만에 익힐 수 있는 것이 아니지만, 곧 즐거움을 느끼기 시작할 것이며, 어쩌면 놀라운 것을 만들 수도 있을 것입니다!

즐거운 시간 보내세요! 🙂