1.1.1 머신러닝 (Machine Learning) 이란?
1) 인공지능의 하위 집합
2) 일반적으로 애플리케이션을 수정하지 않아도, 데이터를 기반으로 패턴을 학습하고 결과를 예측하는 알고리즘 기법
예를 들어, 금융 사기를 적발하는 프로그램을 개발한다고 가정해보자.
금융 사기를 예방하기 위해 아무리 수천 라인의 소스 코드를 작성하고 다양한 로직을 구현하여도,
금융 사기자들은 이 로직을 뚫어 낼 것이다.
그리고 이 과정에서 우리는 많은 시간과 비용을 소모하게 된다.
하지만, 머신러닝을 사용하면 여러 문맥과 상황을 바탕으로 패턴을 찾아내고, 신뢰도 있는 결과를 도출해낼 수 있을 것이다.
따라서 현대의 데이터 분석 영역은 머신러닝 알고리즘 분석으로 확대되고 있고,
이러한 머신러닝의 도입은 소프트웨어 코드만으로 해결하기 어려운 문제들을 해결해 나가고 있다.
1.1.2 머신러닝의 분류
머신러닝은 크게 지도학습(Supervised Learning), 비지도학습(Un-supervised Learning), 강화학습(Reinforcement Learning)으로 나뉜다.
1) 지도학습
: 문제에 대한 답을 알고 있을 때, 이 데이터를 활용하여 학습하도록 설계하는 방식
분류 / 회귀 / 추천시스템 / 시각,음성 감지, 인지 / 텍스트 분석, NLP
2) 비지도학습
: 정답이 없는 데이터들을 비슷한 것끼리 군집화하여 결과를 예측하는 방식
클러스터링 / 차원 축소 / 강화학습
1.1.3 데이터 전쟁
머신러닝에서 '데이터'와 '머신러닝 알고리즘' 중 어떤 것이 더 중요할까?
물론 2가지 모두 중요한 요소이겠지만, 머신러닝이 더욱 보편화된다면 데이터의 중요성이 커질 것이다.
그 이유를 꼽자면, 머신러닝은 데이터에 너무 의존적이다!
좋은 품질의 데이터를 집어 넣지 못한다면, 개발자가 코드를 작성하는 것보다 머신러닝의 정확도가 더 떨어질 수 있다.
(Garbage in, Garbage out,,,)
따라서 어쩌면 최적의 모델 파라미터를 구축하는 것 보다, 좋은 품질의 데이터를 가공하고 추출할 수 있는 능력이 더 중요할 수 있다.
1.1.4 파이썬과 R 기반 머신러닝의 비교
C / C++, Java 와 같은 컴파일러 언어로도 머신러닝 프로그램을 작성할 수 있지만,
개발 생산성이 떨어지고 생태계가 활발하지 않아 주로 사용하지 않는다. ( 주로 임베디드 영역에서 사용)
머신러닝 분야의 대표적인 오픈 소스 프로그램 언어로는 Python, R 이 있다.
1) R
- 통계 전용 프로그램 언어
- SPSS, SAS, MATLAB 과 같은 고비용 통계 패키지를 개선하기 위한 목적으로 개발
- 개발 언어에 익숙하지 않은 통계 통계 현업 사용자인 경우 추천
2) Python
- 개발 전문 프로그램 언어
- 직관적이고 쉬운 문법, 객체지향과 함수형 프로그래밍을 모두 포괄하는 유연한 언어
- 딥러닝 프레임워크인 TensorFlow, Keras, PyTorch 모두 파이썬 우선 정책 지원
- 많은 라이브러리와 높은 생산성을 보장하므로, 개발자 혹은 처음 머신러닝을 시작하는 경우 추천
권철민 '파이썬 머신러닝 완벽 가이드 (개정2판)' 책을 기반으로 작성하였습니다.
'[Capstone Study] 머신러닝 완벽 가이드' 카테고리의 다른 글
[머신러닝] 섹션 1.4 데이터 핸들링 - 판다스 (1) (0) | 2023.11.06 |
---|---|
[머신러닝] 섹션 1.3 넘파이 (2) (0) | 2023.11.06 |
[머신러닝] 섹션 1.3 넘파이 (1) (0) | 2023.09.21 |
[머신러닝] 섹션 1.2 파이썬 머신러닝 생태계를 구성하는 주요 패키지 (0) | 2023.09.21 |
[머신러닝] 섹션 0. 머신러닝을 공부하게 된 이유 / 스터디 계획 소개 (1) | 2023.09.21 |