기계 학습 또는머신 러닝(machine learning)은 경험을 통해 자동으로 개선하는 컴퓨터 알고리즘의 연구이다.인공지능의 한 분야로 간주된다. 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야이다. 가령, 기계 학습을 통해서 수신한 이메일이 스팸메일인지 아닌지를 구분할 수 있도록 훈련할 수 있다.
기계학습 문제들을 학습 종류에 따라 지도학습(문제와 답이 둘다 존재), 비지도학습(문제는 존재하지만 답은 알아서 알아야함.) 그리고 강화학습(문제도 답도 알아서 찾아나가야 함.)3가지로 나눌 수 있다.
특히 지도학습과 비지도학습의 구분은 레이블(label)의 유무에 따라 이뤄진다. 여기서 레이블이란, 학습 데이터의 속성을 무엇을 분석할지에 따라 정의되는 데이터를 뜻한다.
파이썬(Python)은 스크립트 작성과 프로세스의 자동화와 웹 개발 그리고 일반 애플리케이션 등 여러 소프트웨어 개발 영역에서 꾸준히 인기를 얻어 왔으며 최근에는 머신러닝(Machine Learning) 언어로도 큰 주목받고 있다.
1. Numpy(Numerical Python)
NumPy 행렬이나 일반적으로 대규모 다차원 배열을 쉽게 처리 할 수 있도록 지원하는 파이썬의 라이브러리이다.
NumPy는 데이터 구조 외에도 수치 계산을 위해 효율적으로 구현된 기능을 제공한다.
넘파이NumPy(Numerical Python)는 파이썬에서 개발된 선형 대수로 많은 개발자 및 전문가들은 다른 머신러닝 파이썬 라이브러리보다 이를 선호한다. SciPy, Matplotlib, Scikit-learn 등 거의 모든 파이썬 머신러닝 패키지가 넘파이에 대부분의 범위 내에 많이 의존하고 있기 때문이다.
또한 선형 대수, 난수 생성기, 선형 대수학 루틴, 푸리에 변환 및 파이썬에서 행렬 및 n차원 배열과 사용되는 기능 등을 제공하고 광범위한 하드웨어 및 컴퓨팅 플랫폼을 지원하며 분산, GPU 및 희소 배열 라이브러리와 잘 작동을 합니다.
더 나아가 이 파이썬 패키지는 과학적 계산까지 가능하다. 그러므로 음파, 이미지 및 다른 이진 함수를 처리하는데 널리 사용되고 있다.
NumPy는 scikit-learn 및 SciPy 와 같은 강력한 기계 학습 라이브러리의 기초를 형성합니다 . 머신 러닝이 성장함에 따라 NumPy에 구축된 라이브러리 목록도 증가합니다. TensorFlow의 딥 러닝 기능에는 음성 및 이미지 인식, 텍스트 기반 애플리케이션, 시계열 분석 및 비디오 감지와 같은 광범위한 애플리케이션이 있습니다.
또 다른 딥 러닝 라이브러리인 PyTorch 는 컴퓨터 비전 및 자연어 처리 연구자들 사이에서 인기가 있습니다. MXNet 은 딥 러닝을 위한 청사진과 템플릿을 제공하는 또 다른 AI 패키지입니다.
비닝(binning), 배깅( bagging) , 스태킹(stacking) 및 부스팅(boosting)과 같은 앙상블 방법 이라고 하는 통계 기술 은 가장 빠른 추론 엔진 중 하나인 XGBoost , LightGBM 및 CatBoost 와 같은 도구로 구현되는 ML 알고리즘 중 하나입니다. Yellowbrick 과 Eli5 는 기계 학습 시각화를 제공합니다.
2. TensorFlow
TensorFlow는 머신러닝을 위한 엔드 투 엔드 오픈소스 플랫폼입니다. 도구, 라이브러리, 커뮤니티 리소스로 구성된 포괄적이고 유연한 생태계를 통해 연구원들은 ML에서 첨단 기술을 구현할 수 있고 개발자들은 ML이 접목된 애플리케이션을 손쉽게 빌드 및 배포할 수 있습니다.
ensorFlow는 다양한 수준의 추상화를 제공하므로 사용자는 자신의 요구에 맞는 수준을 선택할 수 있습니다. 상위 수준의 Keras API를 사용하여 모델을 빌드하고 학습시키세요. 그러면 TensorFlow 및 머신러닝을 쉽게 시작할 수 있습니다.
유연성이 더 필요한 경우 즉시 실행 기능을 사용하면 즉각적인 반복 및 직관적인 디버깅이 가능합니다. 대규모 ML 학습 작업이 필요한 경우, 모델 정의를 변경하지 않고 서로 다른 하드웨어 구성에서 분산 학습을 진행하려면 Distribution Strategy API를 사용하세요.
TensorFlow는 항상 프로덕션에 바로 배포할 수 있는 방법을 제공해왔습니다. 서버, 에지 기기 또는 웹 등 어디서나 TensorFlow를 사용하면 언어나 플랫폼에 관계없이 모델을 쉽게 학습시키고 배포할 수 있습니다.
전체 프로덕션 ML 파이프라인이 필요한 경우 TensorFlow Extended(TFX)를 사용하세요. 모바일 및 에지 기기에서 추론을 실행하려면 TensorFlow Lite를 사용하세요. TensorFlow.js를 사용하면 자바스크립트 환경에서 모델을 학습시키고 배포할 수 있습니다.
3. PyTorch
TorchScript를 통해 PyTorch는 Eager 모드에서 사용 편의성과 유연성을 제공하는 동시에 C++ 런타임 환경에서 속도, 최적화 및 기능을 위해 그래프 모드로 원활하게 전환합니다.
TorchServe는 PyTorch 모델을 대규모로 배포하기 위한 사용하기 쉬운 도구입니다. 클라우드 및 환경에 구애받지 않으며 다중 모델 제공, 로깅, 메트릭 및 애플리케이션 통합을 위한 RESTful 엔드포인트 생성과 같은 기능을 지원합니다.
Python 및 C++에서 액세스할 수 있는 집단 작업의 비동기 실행 및 P2P 통신에 대한 기본 지원을 활용하여 연구 및 생산 모두에서 성능을 최적화합니다.
PyTorch는 Python에서 iOS 및 Android 배포에 이르는 종단 간 워크플로를 지원합니다. PyTorch API를 확장하여 모바일 애플리케이션에 ML을 통합하는 데 필요한 일반적인 사전 처리 및 통합 작업을 처리합니다.
활발한 연구자 및 개발자 커뮤니티는 PyTorch를 확장하고 컴퓨터 비전에서 강화 학습에 이르는 영역의 개발을 지원하기 위한 풍부한 도구 및 라이브러리 에코시스템을 구축했습니다.
4. Pandas
2008년 판다 개발은 AQR Capital Management 에서 시작되되어 2009년 말까지 그것은 오픈 소스가 되었다.
머신러닝 프로젝트에서는 데이터 준비하고 기본 트렌드 및 패턴을 분석하는데에 상당한 시간이 필요하다. 바로 여기가 파이썬 판다스가 머신러닝 전문가들의 관심을 끄는 대목이다. 파이썬 판다스는 데이터 조작 및 분석을 위한 다양한 툴과 함께 제공되는 오픈 소스 라이브러리이다. 이 라이브러리의 도움으로 SQL 데이터베이스, CSV, JSON 파일 및 엑셀Excel과 같은 다양한 소스의 데이터를 읽을 수 있게 된다.
- 통합 인덱싱으로 데이터 조작을 위한 빠르고 효율적인 DataFrame 개체입니다.
- 인메모리 데이터 구조와 다양한 형식 간의 데이터 읽기 및 쓰기 도구 : CSV 및 텍스트 파일, Microsoft Excel, SQL 데이터베이스, 고속 HDF5 형식
- 지능적인 데이터 정렬 및 누락된 데이터 의 통합 처리 : 계산에서 자동 레이블 기반 정렬을 얻고 지저분한 데이터를 정돈된 형태로 쉽게 조작합니다.
- 데이터 세트의 유연한 재구성 및 피벗
- 지능형 레이블 기반 슬라이싱 , 멋진 인덱싱 및 대규모 데이터 세트의 하위 집합
- 크기 가변성을 위해 데이터 구조에서 열을 삽입 및 삭제할 수 있습니다 .
- 데이터 세트에 대한 분할-적용-결합 작업을 허용 하는 엔진 별 강력한 그룹으로 데이터를 집계하거나 변환 합니다.
- 데이터 세트의 고성능 병합 및 결합
- 계층적 축 인덱싱 은 저차원 데이터 구조에서 고차원 데이터로 작업하는 직관적인 방법을 제공합니다.
- 시계열 기능: 날짜 범위 생성 및 빈도 변환, 창 통계 이동, 날짜 이동 및 지연. 도메인별 시간 오프셋을 생성하고 데이터 손실 없이 시계열을 결합할 수도 있습니다.
- Cython 또는 C로 작성된 중요한 코드 경로 를 통해 성능 에 대해 고도로 최적화되었습니다 .
- Python with pandas 는 금융, 신경 과학, 경제학, 통계, 광고, 웹 분석 등을 포함한 다양한 학문 및 상업 영역 에서 사용됩니다 .
5. Scipy
사이파이Scipy도 마찬가지로 또 하나의 인기 있는 머신러닝 파이썬 라이브러리다. 인테그레이션integration, 최적화, 선형 대수와 통계에 대한 다양한 모듈을 포함하여 머신러닝 매니아들 사이에서 가장 인기 있는 라이브러리였다. 사이파이 라이브러리와 사이파이 구성stack에는 차이가 있다. 사이파이가 사이파이 구성을 뒷받침해주는 핵심 패키지 중 하나이다. 더불어 사이파이는 이미지 조작에도 아주 유용하다.
6. Keras
Keras 는 Kaggle 에서 상위 5위 안에 드는 팀 중 가장 많이 사용되는 딥 러닝 프레임워크 입니다. Keras를 사용하면 새로운 실험을 더 쉽게 실행할 수 있으므로 경쟁업체보다 더 많은 아이디어를 더 빨리 시도할 수 있습니다.
TensorFlow 2를 기반으로 구축된 Keras는 GPU의 대규모 클러스터 또는 전체 TPU 포드로 확장할 수 있는 업계 최강의 프레임워크입니다
케라스는 내부적으로 텐서플로나 티아노를 백엔드로 사용하고 있으며 CNTK와 같은 다른 인기 있는 신경망 프레임워크도 사용할 수 있습니다. 케라스는 백엔드 인프라를 사용하여 계산 그래프를 구성하고 이를 작업 수행하는 데 사용하기 때문에 다른 라이브러리에 비해 속도 느리지만 Inception, SqueezeNet, Mnist, VGG, ResNet 등의 pre-trained 모델과 전처리된 데이터 세트를 제공한다.
7. Scikit-Learn
scikit-learn 프로젝트는 프랑스 데이터 과학자 David Cournapeau의 Google Summer of Code 프로젝트인 scikits.learn으로 시작되었습니다 . 그 이름은 그것이 "SciKit"(SciPy 툴킷)을 별도로 개발 및 분산 타사 확장이라는 개념에서 유래
SciPy의 코드베이스는 나중에 다른 개발자가 다시 작성했습니다. 2010 파비안 Pedregosa, 가엘 Varoquaux, 알렉산더 Gramfort와 빈센트 미셸의 모든에서 컴퓨터 과학 및 자동화 연구를위한 프랑스 연구소 에서 Rocquencourt , 프랑스 , 2월 1일 2010년 최초의 공개 자료를 프로젝트의 리더십을 가져다가 만든 다양한 scikit 중에서 scikit-learn과 scikit-image Scikit-learn은 GitHub 에서 가장 인기 있는 기계 학습 라이브러리 중 하나입니다 .
'Learn Coding > python' 카테고리의 다른 글
파이썬 머신러닝 - Titanic 생존자 예측하기(Kaggle)#1 (0) | 2021.11.25 |
---|---|
isnan vs isna vs isnull 차이점(스마트인재개발원) (0) | 2021.11.24 |
댓글