1. 사이킷런 (Scikit-learn)
ㅇ 머신러닝 전 과정을 쉽게 구현하도록 도와주는 라이브러리
- 데이터 전처리 → 모델 선택 → 학습 → 성능 평가까지 일관된 API 제공
ㅇ NumPy 기반의 빠른 계산 성능
- `효율적 배열 연산 + 벡터화된 처리`로 속도 우수
ㅇ 다양한 ML 알고리즘 및 유틸리티 제공
- 회귀, 분류, 군집화, 차원 축소, 모델 선택 등
- 풍부한 전처리 함수, 교차검증 도구, 샘플 데이터 포함
* 例) 보스턴 집값 데이터셋 (506개 샘플, 13개 특성 등)
ㅇ [참고] ☞ 사이킷런 홈페이지
2. 텐서플로 (TensorFlow)
ㅇ 딥러닝용 오픈소스 라이브러리
ㅇ 데이터 플로 그래프 구조
- 노드 : 수학 연산 또는 데이터 처리
- 엣지 : 노드 간 데이터 흐름(텐서 전달)
ㅇ 학습 과정 추상화
- 심볼릭 표현과 연산 그래프를 통해, 모델 학습 과정을 구조적으로 표현
. 심볼릭 (symbolic) 표현 방식
.. 즉시 값 계산 않고, 기호(심볼)로 표현된 수식이나 연산 구조 자체를 먼저 정의해두고,
.. 필요 시점에 실제 데이터를 넣어, 한꺼번에 계산하는 방식
ㅇ 언어 인터페이스
- Python 및 C++ 인터페이스 제공
ㅇ 고수준 API 내장
- 케라스를 기본 고수준 API로 통합해, 모델 구축 및 학습이 용이함
* 케라스 (Keras)
. 신경망 구축, 훈련, 평가, 실행을 목적으로 설계된 간결한 고수준 API
.. 모듈식 (계층적) 구조로 설계됨
. 모델, 층(Layer), 손실함수, 옵티마이저 등을 단순하고 직관적으로 구성 가능
.. 초보자도 빠르게 신경망 모델을 만들고 학습시킬 수 있으나,
.. 충분히 유연하고 표현력이 뛰어남
. TensorFlow 내부에서 기본 구현체로 통합되어, 일관된 방식으로 모델 정의,학습,평가 지원
3. 파이토치 (PyTorch)
ㅇ 딥러닝용 오픈소스 라이브러리 (Facebook/Meta AI 개발)
ㅇ 즉시 실행(Eager Execution) 방식
- 연산을 호출하면 바로 결과가 계산됨 → Python 코드처럼 직관적
- 디버깅, 실험, 연구 용도에 특히 강함
ㅇ 동적 계산 그래프(Define-by-Run) 지원
- 실행 흐름에 따라 계산 그래프가 매번 동적으로 생성
- 복잡한 모델 구조(순환신경망, 조건 분기 등)에 유연
ㅇ GPU 가속 및 텐서 연산 최적화
- CUDA 연동으로 고속 병렬 계산
ㅇ 생태계 풍부
- TorchVision, TorchText, TorchAudio 등 도메인별 확장 패키지 제공
ㅇ 연구 및 프로토타이핑에 강점
- 단, TensorFlow는 대규모 서비스,배포에 상대적으로 강점