2020年に知っておく必要のある15の未発見のオープンソース機械学習フレームワーク。

機械学習(ML)は、今日最も急速に出現しているテクノロジーの1つです。また、コンピューティングのさまざまな分野への機械学習の適用が急速に普及しています。

これは、安価で強力なハードウェアが存在するためだけではありません。また、無料のオープンソースの可用性が高まっているためです開発者が機械学習を簡単に実装できるようにする機械学習フレームワーク

この幅広いオープンソースの機械学習フレームワークにより、データサイエンティストと機械学習エンジニアは、機械学習システムを構築、実装、維持し、新しいプロジェクトを生成し、新しく影響力のある機械学習システムを作成できます。

ユースケースを解決するために機械学習フレームワークまたはライブラリを選択するには、ユースケースに適したものを決定するための評価を行う必要があります。この評価には、次のようないくつかの要素が重要です。

  • 使いやすさ。
  • 市場でのサポート(コミュニティ)。
  • 走行速度。
  • 開放性。

この記事は誰のためのものですか?

この記事は、理論を学んだ後、実際に知識を使用したい人のためのものです。

また、将来のMLプロジェクトのために、他の潜在的なオープンソースの機械学習フレームワークを探索したい人にも適しています。

これが、企業や個人が機械学習システムを構築するために使用できる、未発見のオープンソースフレームワークまたはライブラリのリストです。

1.ブロック

Blocksは、Theano上にニューラルネットワークモデルを構築するのに役立つフレームワークです。現在、「ブリック」と呼ばれるパラメータ化されたTheano操作の構築、モデルを最適化するための大規模モデルアルゴリズムで変数とブリックを選択するためのパターンマッチング、およびトレーニングの保存と再開をサポートおよび提供しています。ブロックのリポジトリ

また、主にブロック用に開発されたデータ処理エンジンであるFuelについても学ぶことができます。

プログラミング言語:Python

Githubリンク://github.com/mila-iqia/blocks

2.アナリティクス動物園

Analytics Zooは、TensorFlow、Keras、PyTorch、Spark、Flink、Rayプログラムを統合パイプラインにシームレスに統合する統合データ分析およびAIプラットフォームを提供します。統合パイプラインは、ラップトップから大規模クラスターまで透過的にスケーリングして、本番ビッグデータを処理できます。AnalyticsZooリポジトリ

AnalyticsZooを使用してAIソリューションを開発する必要がある場合:

  • AIモデルのプロトタイプを簡単に作成したい。
  • スケーリングが重要な場合。
  • 機能エンジニアリングやモデル選択などの自動化プロセスを機械学習パイプラインに追加する場合。

このプロジェクトは、Intel-analyticsによって管理されています。

プログラミング言語:Python

Githubリンク://github.com/intel-analytics/analytics-zoo

3. ML5.js

Ml5.jsは、幅広いアーティスト、クリエイティブコーダー、学生が機械学習に親しみやすいものにすることを目的としています。このライブラリは、TensorFlow.js。 "Ml5.jsリポジトリ"の上に構築された、ブラウザの機械学習アルゴリズムとモデルへのアクセスを提供します。

ml5.jsは、Processingとp5.jsに触発されています。

このオープンソースプロジェクトは、ニューヨーク大学のインタラクティブテレコミュニケーション/インタラクティブメディアアーツプログラムと、世界中のアーティスト、デザイナー、学生、技術者、開発者によって開発および保守されています。

注:このプロジェクトは現在開発中です。

プログラミング言語:Javascript

Githubリンク://github.com/ml5js/ml5-library

4.AdaNet

AdaNetは、専門家の介入を最小限に抑えて高品質のモデルを自動的に学習するための軽量のTensorFlowベースのフレームワークです。AdaNetは、学習保証を提供しながら、高速かつ柔軟になるための最近のAutoMLの取り組みに基づいています。重要なことに、AdaNetは、ニューラルネットワークアーキテクチャを学習するだけでなく、アンサンブルを学習してさらに優れたモデルを取得するための一般的なフレームワークを提供します。「AdaNetリポジトリ」

AdaNetは、本番環境でモデルをトレーニング、評価、提供するためのKerasのような使い慣れたAPIを提供します。

プログラミング言語:Python

Githubリンク://github.com/tensorflow/adanet

5.Mljar

プロトタイプモデルとデプロイメントサービスを作成するためのプラットフォームをお探しの場合は、Mljarが最適です。Mljarは、さまざまなアルゴリズムを検索し、ハイパーパラメーターの調整を実行して最適なモデルを見つける傾向があります。

また、クラウドですべての計算を実行し、最終的にアンサンブルモデルを作成することで、迅速な結果を提供します。次に、AutoMLトレーニングからマークダウンレポートを作成します。

Mljarは、次のMLモデルをトレーニングできます。

  • 二項分類、
  • マルチクラス分類、
  • 回帰。

Mljarは、次の2種類のインターフェースを提供します。

  • MljarAPI上のPythonラッパー。
  • Webブラウザで機械学習モデルを実行する。

プログラミング言語:Python

Githubリンク://github.com/mljar/mljar-supervised。

6. ConvNetJS

Javascriptでのディープラーニング。ブラウザで畳み込みニューラルネットワーク(または通常のネットワーク)をトレーニングします。 "convnetjsRepository"

Tensorflow.jsと同様に、ConvNetJSは、Webブラウザーでさまざまな深層学習モデルのトレーニングをサポートするJavaScriptライブラリです。GPUやその他の重いソフトウェアは必要ありません。

ConvNetJSは以下をサポートします。

  • ニューラルネットワークモジュール。
  • 画像の畳み込みネットワークのトレーニング。
  • 回帰および分類のコスト関数。
  • Deep QLearningに基づく強化学習モジュール。

注:積極的にメンテナンスされていません。

プログラミング言語:Javascript

Githubリンク://github.com/karpathy/convnetjs

7.NNI(Neural Network Intelligence)

NNI(Neural Network Intelligence)は、ユーザーが機能エンジニアリング、ニューラルアーキテクチャ検索、ハイパーパラメータチューニング、およびモデル圧縮を自動化するのに役立つ軽量で強力なツールキットです。このツールは、自動機械学習(AutoML)実験を管理し、アルゴリズムを調整して生成された実験のトライアルジョブをディスパッチして実行し、ローカルマシン、リモートサーバー、OpenPAI、Kubeflowなどのさまざまなトレーニング環境で最適なニューラルアーキテクチャやハイパーパラメーターを検索します。他のクラウドオプション。NNIリポジトリ

NNIの使用を検討する必要がある場合

  • さまざまなAutoMLアルゴリズムを試したい場合。
  • さまざまな環境でAutoMLトライアルジョブを実行する場合。
  • プラットフォームでAutoMLをサポートする場合。

注:Microsoftによるオープンソースプロジェクト。

プログラミング言語:Python

Githubリンク://github.com/Microsoft/nni

8.データムボックス

Datumbox Machine Learning Frameworkは、Javaで記述されたオープンソースのフレームワークであり、機械学習および統計アプリケーションの迅速な開発を可能にします。フレームワークの主な焦点は、多数の機械学習アルゴリズムと統計手法を組み込み、大規模なデータセットを処理できるようにすることです。「DatumBoxリポジトリ」

Datumboxは、スパム検出、感情分析、言語検出、トピック分類など、さまざまなタスク用に事前にトレーニングされたモデルを多数提供します。

プログラミング言語:Java

Githubリンク://github.com/datumbox/datumbox-framework

9.XAI(ML用のeXplainabilityツールボックス)

XAIは、AIの説明性を中核として設計された機械学習ライブラリです。XAIには、データとモデルの分析と評価を可能にするさまざまなツールが含まれています。XAIライブラリは、Institute for Ethical AI&MLによって管理されており、責任ある機械学習の8つの原則に基づいて開発されました。 "XAIリポジトリ"

責任ある機械学習の8つの原則は次のとおりです。

  • 人間強化
  • バイアス評価
  • 正当化による説明可能性
  • 再現性のある操作
  • 変位戦略
  • 実用的な精度
  • プライバシーによる信頼
  • データリスクの認識

XAIの詳細については、TensorflowLondonでこの講演をご覧ください。このライブラリの定義と原則に関する洞察が含まれています。

XAIは現在開発の初期段階にあり、現在のバージョンは0.05(アルファ)です。

プログラミング言語:Python

Githubリンク://github.com/EthicalML/xai

10.プラート

Platoは、さまざまな環境で会話型AIエージェントを開発するための柔軟なフレームワークです。Platoは、会話型AIのバックグラウンドが限られているユーザーと、この分野の経験豊富な研究者の両方のために設計されました。クリーンで理解しやすい設計を提供し、既存の深層学習およびベイズ最適化フレームワークと統合し、コードを記述する必要性を減らします。

それは、テキスト、スピーチ、および対話行為を介した相互作用をサポートします。Plato Research Dialogue Systemの仕組みについては、こちらの記事をご覧ください。

注: PlatoはUberによるオープンソースプロジェクトです。

プログラミング言語:Python

Githubリンク://github.com/uber-research/plato-research-dialogue-system

11.DeepDetect

DeepDetectは、C ++で記述された機械学習APIおよびサーバーです。これにより、最先端の機械学習を簡単に操作して既存のアプリケーションに統合できます。

DeepDetectは、画像、テキスト、時系列、およびその他のデータの教師ありおよび教師なし深層学習のサポートを実装し、シンプルさと使いやすさ、テスト、および既存のアプリケーションへの接続に重点を置いています。分類、オブジェクト検出、セグメンテーション、回帰、およびオートエンコーダーをサポートします。DeepDetectリポジトリ

DeepDetectは、次のような外部の機械学習ライブラリに依存しています。

  • 勾配ブースティングライブラリXGBoost。
  • ディープラーニングライブラリ(Caffe、Tensorflow、Caffe2、Torch、NCNN、およびDlib)。
  • T-SNEによるクラスタリング。
  • AnnoyとFAISSによる類似性検索。

DeepDetectは、他のさまざまな貢献者の助けを借りて、Jolibrainによって設計、実装、およびサポートされています。

プログラミング言語:C ++

Githubリンク://github.com/jolibrain/deepdetect

12.Streamlit

Streamlit —カスタムMLツールを構築するための最速の方法。

Streamlitは、データサイエンティスト、MLエンジニア、開発者が機械学習プロジェクト用の高度にインタラクティブなWebアプリケーションをすばやく構築できる優れたツールです。

Streamlitは、Web開発の知識を必要としません。Pythonを知っているなら、行ってもいいです!

また、ホットリロードもサポートしています。つまり、ファイルを編集および保存している間、アプリの更新がライブで行われます。

Streamlitの動作をご覧ください。

プログラミング言語:Javascript&Python

Githubリンク://github.com/streamlit/streamlit

13.ドーパミン

ドーパミンは、強化学習アルゴリズムのラピッドプロトタイピングのための研究フレームワークです。これは、ユーザーが自由にワイルドなアイデアを試すことができる、小さくて簡単に作成できるコードベースのニーズを満たすことを目的としています(投機的調査)。ドーパミンリポジトリ

ドーパミンの設計原理は次のとおりです。

  • 簡単な実験。
  • 柔軟な開発。
  • コンパクトで信頼性があります。
  • 再現可能。

昨年(2019)Dopamineは、ネットワーク定義をtf.keras.Modelを使用するように切り替えました。以前のtf.contrib.slimベースのネットワークは削除されました。

ドーパミンの使用方法については、共同ノートブックをご覧ください。

注:ドーパミンはGoogleのオープンソースプロジェクトです。

プログラミング言語:Python

Githubリンク://github.com/google/dopamine

14.TuriCreate

TuriCreateは、カスタムCoreMLモデルを作成するためのオープンソースツールセットです。

TuriCreateを使用すると、画像分類、音声分類、オブジェクト検出、スタイル転送、アクティビティ分類、画像類似性推奨、テキスト分類、クラスタリングなどのさまざまなMLタスクを実行できます。

フレームワークは使いやすく、柔軟性があり、視覚的です。大規模なデータセットで機能し、デプロイする準備ができています。トレーニング済みのモデルは、iOS、macOS、tvOS、watchOSアプリで、追加の変換なしですぐに使用できます。

TuriCreateの詳細については、WWDC2019およびWWDC2018でのTuriCreateの講演をご覧ください。

注: TuriCreateは、Appleによる0penソースプロジェクトです。

プログラミング言語:Python

Githubリンク://github.com/apple/turicreate

15.フレア

Flairは、ベルリンのフンボルト大学によって開発およびオープンソース化された単純な自然言語処理(NLP)フレームワークです。フレアはPyTorchエコシステムの公式部分であり、何百もの産業および学術プロジェクトで使用されています。

Flairを使用すると、固有表現抽出(NER)、品詞タグ付け(PoS)、意味の曖昧性解消、分類など、最先端の自然言語処理(NLP)モデルをテキストに適用できます。フレアリポジトリ

フレアは、さまざまなNLPタスク(名前付きエンティティの認識、品詞のタグ付け、チャンキング)で以前の最良の方法よりも優れています。この表をチェックしてください:

:F1スコアは、主に分類タスクに使用される評価指標です。F1スコアは、存在するクラスの分布を考慮に入れています。

この記事では、フレア埋め込みを使用してテキスト分類を実行する方法を学びます。

プログラミング言語:Python

Githubリンク://github.com/flairNLP/flair

結論

機械学習アプリケーションの構築を開始する前に、そこにある多くのオプションから1つのMLフレームワークを選択する必要があります。これは難しい作業になる可能性があります。

したがって、最終決定を行う前に、いくつかのオプションを評価することが重要です。上記のオープンソースの機械学習フレームワークは、誰でも効率的かつ簡単に機械学習モデルを構築するのに役立ちます。

最も人気のある機械学習フレームワークは何か疑問に思っていますか?これは、ほとんどのデータサイエンティストと機械学習エンジニアがほとんどの時間を使用するリストです。

  • Tensorflow
  • Pytorch
  • Fastai
  • ケラス
  • scikit-learn
  • Microsoft Cognitive Toolkit
  • テアノ
  • Caffe2
  • DL4J
  • MxNet
  • H20
  • Accord.NET
  • Apache Spark

次の投稿でお会いしましょう!Twitter @ Davis_McDavidでも連絡できます。