rodmarkun/SmolML

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

何を解決するか

SmolMLは、機械学習ライブラリの内部動作を明確にするために設計されています。PyTorch や Scikit-Learn などの本番用ツールの複雑さや最適化を排除し、基本的な機械学習の概念を透明で教育的な実装で提供します。

動作方法

このライブラリは純粋な Python と標準ライブラリモジュール(collectionsrandommath)のみを使用して構築されており、NumPy や C++ 拡張を意図的に避けています。ML の基本的な構成要素をすべて自前で実装しており、以下の機能を含みます:

  • コアエンジン:独自の N 次元配列実装(MLArray)と自動微分エンジン(Value)による勾配計算。
  • 前処理:データスケーリング用ツール(Standard および MinMax スケーラ)。
  • ニューラルネットワークコンポーネント:活性化関数(ReLU、Sigmoid、Softmax)、重み初期化(Xavier、He)、損失関数(MSE、Cross-Entropy)、最適化手法(SGD、Adam、AdaGrad)の実装。
  • モデルアーキテクチャ:線形および多項式回帰、順伝播ニューラルネットワーク、木ベースモデル(決定木、ランダムフォレスト)、および K-Means クラスタリングの実装。

対象読者

機械学習アルゴリズムやデータ処理ツールがコード内でどのように実装されているかを学びたい学生や開発者向けです。ブラックボックスとして使うのではなく、内部の仕組みを理解することを目的としています。

特徴

  • 外部依存なし:完全に純粋な Python で構築され、最大限のアクセス性を実現。
  • カスタム自動微分:組み込みの自動微分エンジンを備えています。
  • 包括的なカバレッジ:基本的な回帰やクラスタリングから、複雑なニューラルネットワークやランダムフォレストまで網羅。
  • 教育的焦点:計算性能よりもコードの可読性と理解を最優先しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト