머신러닝을 시작하는 개발자를 위한, (1) 머신러닝 용어정리, 분류부터 MLOps까지

안녕하세요. SQLER의 코난 김대우입니다. 

처음 머신러닝(Machine Learning), 딥러닝(Deep Learning)을 시작하면서 막막했던 시간이 있었고, 많은 시행 착오가 있었습니다. 이 문서에서는 개발자의 시각에서, 어떻게 하면 더 쉽고 빠르게 머신러닝을 시작할 수 있을지 그 경험을 나눠 보려고 합니다. 이 내용은 제가 지난 SOSCON 2016 발표자료 에서 많이 인용 하였습니다.

 

머신러닝? 쫄지마!

그거 그냥 파편화가 심각하고, 문서화가 불친절한 SDK라고 생각하면 편해. 

 

머신러닝을 처음 시작했을때의 느낌.

Slide3.JPG

처음 시작했을때의 느낌은 참 대략 난감하다. 

머신러닝, 깊이를 알기도 어렵고, 이것이 맞는 것인지, 예제라고 올라와 있는 코드들은 모두 개발 언어와 다르게 실행도 잘 안되며, 도움말이나 가이드도 매우 부족. 알고리즘들, 수학적인 내부 구조 등, 어떻게 시작해야 하는건지?

 

머신러닝은 더이상 새로운 기술이 아니다. 딥러닝도 Python? R로 되어있어서 러닝커브가 낮다고?

고민하지 말고, 그냥 새로운 일종의 Python이나 R의 파생언어/프레임워크라고 생각하면 편해.

Python 이랑 비슷하다고 해서 처음 시작했다가, 좌절한 경험이. 마음 편하게 새로운 언어라고 시작해도 좋다.

SQLER에서 계속 개발자를 위한 머신러닝 강좌가 제공될 예정이니 참고해도 좋을 듯.

 

 

수많은 머신러닝 관련 용어들, 분류와 정리 시작

Slide4.JPG

처음 새로운 프레임워크/플랫폼으로 개발할때도, 키워드 용어만 이해하고 잘 분류해도 개발할때 반은 먹고 들어감.

 

머신러닝을 접할때 가장 난감한게 바로 이런 다양한 새로운(이름도 복잡한) 키워드.

- 키워드 들이 어떻게 상호 연관되어 있는 것인지? 

- 어떻게 키워드들을 그룹으로 분류 가능한지?

- 실제 제품이나 서비스 벤더의 기술과 어떻게 연결되는지?

 

수많은 ML 문서에 나오는 다양한 용어들을 어떻게 계층적으로 그룹하고 정리할 수 있을지에 대해 시작.

 

인공지능 - 가장 상위의 개념

Slide5.JPG

이렇게 인공지능 = AI (Artificial Intelligence) 용어를 사용. 이미지와 같이 ML도 이렇게 AI의 한 분류.

 

NLP나 Vision Speech도 클라우드 서비스 벤더에서 ML의 하위로 묶는 경우도 있는데, 일반적인 업계에서의 분류는 이렇게 AI가 최상위의 개념이라고 보면 됨.

 

"인지(Cognitive)" 라는 것은 결국 사람의 인지 능력을 AI로 대신하는 서비스를 의미하고 이 이미지 처럼, NLP나 Vision, Speech 등의 서비스가 여러 클라우드 벤더에서 비슷한 이름으로 제공됨. 

 

그럼 머신러닝은?

엄밀한 분류로는, 이렇게 보는 것처럼 Deep Learning, Supervised Learning과 Unsupervised Learning을 포함. (Reinforcement learning도 포함)

 

실제 현업에서는 ML이 훨씬 더 폭 넓은 의미로 쓰이기도. 개발자의 시각에서 우선 개념만 정리해 두면 좋음.

 

참고로,

Cognitive Service와 클라우드 벤더의 이름만 기억해 두자, 나중에 SQLER.com 강좌에서 상세히 소개 예정

- Microsoft Cognitive Services (음성, 자언어 처리-LUIS, Face 인식, 감정처리, 동작인식, 챗봇(Bot framework) 등)

- Amazon Lex(자연어 처리, 챗봇 등), Amazon Polly(음성 변환 등), Amazon Rekognition(인지 서비스 API 모음)

- Google AI Service (비전, 텍스트, 음성, 챗봇 등)

 

느낌 오는 것처럼, 대부분의 벤더가 다 이름만 조금씩 다루고 대부분의 기술들은 크게 다르지 않음.

한두개 정도의 벤더 기술만 사용해보면, 나머지는 이름만 다르고 API 호출 방식만 조금씩 다를 뿐임. 

 

자꾸 클라우드 벤더 이야기를 하는 이유는, 결국 수 많은 기술들의 종착점이기 때문.

클라우드 기술은 이제 우리에게 더 피할 수 없는 개발자의 개발도구 같은 존재(개발할때 VI 쓰시는 분들은...)

 

 

다음 강좌 글에서 계속됩니다.

 

머신러닝을 시작하는 개발자를 위한 - (1) 머신러닝 용어정리, 분류부터 MLOps까지

머신러닝을 시작하는 개발자를 위한 - (2) 머신러닝 서비스/프레임워크/툴킷 분류 및 전체 개발 흐름

머신러닝을 시작하는 개발자를 위한 - (3) 우리 개발자가 머신러닝을 해야 하는 이유는?

머신러닝을 시작하는 개발자를 위한 - (4) 2021년의 ML Trend - MLaaS와 MLOps(Machine Learning + DevOps)

 

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 38050
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 20666
14 Python 머신러닝 강좌 - 5. Pandas DataFrame에 질의(Query) 코난(김대우) 2021.01.07 391
13 Python 머신러닝 강좌 - 4. Pandas DataFrame file 코난(김대우) 2021.01.07 367
12 Python 머신러닝 강좌 - 3. Pandas 소개 file 코난(김대우) 2021.01.07 378
11 Python 머신러닝 강좌 - 2. Anaconda와 Conda 구성 file 코난(김대우) 2021.01.06 362
10 Jupyter notebook 단축키 등의 cheat sheet file 코난(김대우) 2021.01.06 447
9 Python 머신러닝 강좌 - 1. 주피터 노트북(Jupyter Notebook) 구성 file 코난(김대우) 2021.01.06 1048
8 2021년 머신러닝과 인공지능(AI) 트렌드 - MLaaS (서비스로의 머신러닝) file 코난(김대우) 2020.12.29 429
7 머신러닝을 시작하는 개발자를 위한 - (4) 2021년의 ML Trend - MLaaS와 MLOps(Machine Learning + DevOps) 코난(김대우) 2020.12.28 444
6 머신러닝을 시작하는 개발자를 위한 - (3) 우리 개발자가 머신러닝을 해야 하는 이유는? 코난(김대우) 2020.12.28 310
5 머신러닝을 시작하는 개발자를 위한 - (2) 머신러닝 서비스/프레임워크/툴킷 분류 및 전체 개발 흐름 코난(김대우) 2020.12.28 458
» 머신러닝을 시작하는 개발자를 위한 - (1) 머신러닝 용어정리, 분류부터 MLOps까지 file 코난(김대우) 2020.12.28 722
3 Deep Learning 개발 중 현재 GPU를 점유하는 pid 및 GPU 사용량 확인하는 방법 file 코난(김대우) 2020.12.26 385
2 GPU 머신에서 Machine Learning을 수행할때 Deep Learning 툴킷 & 패키지들이 GPU를 이용하는지 체크하는 python 코드 코난(김대우) 2020.12.21 241
1 머신러닝 새로운 글 코난(김대우) 2020.12.18 278





XE Login