rodmarkun/SmolML

A fully functional and simple Machine Learning library made entirely from scratch with Python.

해결하는 문제

SmolML은 기계학습 라이브러리의 내부 동작 방식을 명확히 하기 위해 설계되었습니다. PyTorch나 Scikit-Learn과 같은 프로덕션 수준 도구의 복잡성과 최적화를 제거하여 핵심 ML 개념의 투명하고 교육적인 구현을 제공합니다.

작동 방식

이 라이브러리는 순수한 Python과 표준 라이브러리 모듈(collections, random, math)만 사용하여 구현되었으며, 의도적으로 NumPy나 C++ 확장 기능을 사용하지 않습니다. ML의 핵심 구성 요소를 모두 직접 구현하였으며, 다음과 같은 기능을 포함합니다:

  • 핵심 엔진: 자체 N차원 배열 구현(MLArray)과 기울기 계산을 위한 자동 미분 엔진(Value)
  • 전처리: 데이터 스케일링 도구(Standard 및 MinMax 스케일러)
  • 신경망 구성 요소: 활성화 함수(ReLU, Sigmoid, Softmax), 가중치 초기화 방법(Xavier, He), 손실 함수(MSE, Cross-Entropy), 최적화 알고리즘(SGD, Adam, AdaGrad)
  • 모델 아키텍처: 선형 및 다항 회귀, 순전파 신경망, 트리 기반 모델(결정 트리, 랜덤 포레스트), K-평균 클러스터링 구현

대상 사용자

ML 알고리즘과 데이터 처리 도구가 코드 내에서 어떻게 구현되는지 배우고 싶은 학생과 개발자에게 적합합니다. 단순히 블랙박스처럼 사용하는 것이 아니라, 내부 동작을 이해하고 싶은 분들을 위한 것입니다.

주요 특징

  • 외부 종속성 없음: 순수한 Python으로만 구성되어 있어 최대한의 접근성을 제공합니다.
  • 사용자 정의 자동 미분: 내장된 자동 미분 엔진을 포함합니다.
  • 포괄적인 커버리지: 기본 회귀 및 클러스터링부터 복잡한 신경망과 랜덤 포레스트까지 모두 포함합니다.
  • 교육 중심: 계산 성능보다 코드의 가독성과 이해를 우선시합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트