- この記事では、まだ使ったことがないかもしれないオープンソースの機械学習ツールを21個紹介します。
- 各オープンソース ツールは、データ サイエンティストがデータベースにアプローチする方法について、異なる視点を提供します。
- この記事では、非プログラマー向けツール (Ludwig、Orange、KNIME)、モデル展開 (CoreML、Tensorflow.js)、ビッグデータ (Hadoop、Spark)、コンピューター ビジョン (SimpleCV)、NLP (StanfordNLP)、オーディオ、強化学習 (OpenAI Gym) の 5 種類の機械学習ツールに焦点を当てます。
[[272611]] R、Python、Jupyter Notebook などのよく知られたオープンソース ツールをいくつかご存知でしょう。しかし、その先には、目立たない機械学習ツールが存在する世界があります。これらはよく知られているオープンソースツールほど優れているわけではありませんが、ユーザーが多くの機械学習タスクを解決するのに役立ちます。 オープンソースの機械学習ツールは、次の 5 つのカテゴリに分類できます。 1. 非プログラマー向けのオープンソース機械学習ツール プログラミングやテクノロジーの知識がない人にとって、機械学習は複雑に思えるかもしれません。機械学習は広大な分野であり、ご想像のとおり、初めて学習を始めるときは、不安に感じるかもしれません。プログラミング経験のない人でも機械学習で成功できますか? 成功は達成できることが判明しました!ここでは、非プログラマーがスキルギャップを乗り越えて、新興の機械学習の世界に参入するのに役立つ 3 つのツールを紹介します。 - Uber Ludwig: Uber の Ludwig は TensorFlow 上に構築されたツールボックスです。 Ludwig を使用すると、ユーザーはコードを記述せずにディープラーニング モデルをトレーニングおよびテストできます。ユーザーが提供する必要があるのは、データ、入力用のリスト、および出力用のリストを含む CSV ファイルだけです。残りの作業は Ludwig が行います。ユーザーは少ない時間と労力で複雑なモデルを構築できるため、実験に非常に便利です。ユーザーは、コード内で使用するかどうかを決定する前に、それを調整および処理することができます。
- KNIME: KNIME を使用すると、ユーザーはドラッグ アンド ドロップ インターフェイスを使用してデータ サイエンスのワークフロー全体を作成できます。ユーザーは基本的に、特徴エンジニアリングから特徴選択まですべてを実装でき、予測機械学習モデルをワークフローに組み込むこともできます。モデル ワークフロー全体を視覚的に実行するこの方法は非常に直感的で、複雑な問題を扱うときに非常に便利です。
- Orange: Orange を使用してデータをマイニングし、数値を計算し、独自の洞察を引き出すために、ユーザーはコードの書き方を知らなくてもかまいません。代わりに、ユーザーは基本的な視覚化、データ操作、変換、データ マイニングなどのタスクを実行できます。 Orange は、その使いやすさと、機能を補完する複数のアドオンを追加できることから、最近、学生や教師の間で人気が高まっています。
世の中には、(大量の)コードを書かなくても優れた機械学習機能を提供する、興味深い無料のオープンソース ソフトウェアが数多くあります。 さらに、Google AutoML、Azure Studio、Deep Cognition、Data Robot などの有料サービスも検討できます。 2. モデルを展開するためのオープンソースの機械学習ツール 機械学習モデルの導入は、ユーザーが注意を払うべき重要なタスクですが、最も見落とされがちです。面接では必ず話題に上がるので、ユーザーはこのトピックについてよく理解しておく必要があります。 ここでは、ユーザーがプロジェクトを実際のデバイスに簡単に移行できるようにする 4 つのツールを紹介します。 - MLFlow: MLFlow は、機械学習ライブラリまたはアルゴリズムと連携し、機械学習モデルの実験、再検証、展開を含むライフサイクル全体を管理するように設計されています。現在、MLFlow にはアルファ版にトラッキング、プロジェクト、モデルの 3 つのセクションがあります。
- Apple の CoreML: CoreML は、ユーザーの iOS/Apple Watch/Apple TV/MacOS アプリケーションに機械学習モデルを組み込むことができる非常に人気のあるツールです。 CoreML の優れた点は、ユーザーがニューラル ネットワークや機械学習に関する広範な知識を必要とせず、最終的に双方にメリットのある結果を達成できることです。
- TensorFlow Lite: TensorFlow Lite は、開発者がモバイル デバイス (Android および iOS) や IoT デバイスで TensorFlow モデルを実行するのに役立つツール セットです。これは、開発者がサーバーとの間でデータを送受信するのではなく、ネットワークの「エッジ」にあるデバイスで機械学習を簡単に実行できるように設計されています。
- TensorFlow.js: TensorFlow.js は、ユーザーが機械学習モデルをオンラインで展開するための第一の選択肢です。これは、ユーザーがブラウザ内で機械学習モデルを構築および処理するためのオープンソース ライブラリです。 GPU アクセラレーションに対応し、WebGL を自動的にサポートします。ユーザーは、既存の事前トレーニング済みモデルをインポートしたり、既存の機械学習モデル全体をブラウザ上で再処理したりできます。
3. ビッグデータオープンソース機械学習ツール ビッグデータとは、従来のデータ処理ソフトウェアでは処理できないほど大きすぎたり複雑すぎたりするデータセットを分析し、そこから体系的に情報を抽出したり、その他の方法で処理する方法を研究する分野です。感情分析のために 1 日に何百万ものツイートを処理することを想像してみてください。それは大変な作業のように感じませんか? リラックス!次の 3 つのツールは、ユーザーがビッグ データを処理するのに役立ちます。 - Hadoop: Hadoop は、ビッグ データを処理するための最も有名で関連性の高いツールの 1 つです。 Hadoop を使用すると、ユーザーはシンプルなプログラミング モデルを使用して、大規模なデータ セットの処理をコンピューターのクラスター全体に分散できます。単一のサーバーから数千台のマシンまで拡張できるように設計されており、各マシンはローカルコンピューティングとストレージを提供します。
- Spark: Apache Spark は、ビッグデータ アプリケーション向けの Hadoop の高度なバージョンと見なされています。 Apache Spark の鍵となるのは、Apache Hadoop のデータ処理のギャップを埋めることです。興味深いことに、Spark はバッチ データとリアルタイム データの両方を処理できます。
- Neo4j: ビッグデータ関連の問題を処理する場合、Hadoop は最適な選択肢ではない可能性があります。たとえば、ユーザーが大量のネットワーク データや、ソーシャル ネットワークや人口統計パターンなどのグラフ関連の問題を処理する必要がある場合などです。グラフ データベース (Neo4j) が最適です。
[[272612]] 4. コンピュータビジョン、自然言語処理、オーディオのためのオープンソースの機械学習ツール - SimpleCV: OpenCV はあらゆるコンピューター ビジョン プロジェクトに必須です。しかし、SimpleCV を検討したことがありますか? SimpleCV は、ビット深度、ファイル形式、色空間、バッファ管理、固有値、マトリックスおよびビットマップのストレージを事前に理解する必要なく、OpenCV などのいくつかの高性能コンピュータ ビジョン ライブラリへのアクセスをユーザーに提供します。コンピューター ビジョンにより、プロジェクトへのアクセスが容易になります。
- Tesseract OCR: スマートフォンのカメラを使用して書類や買い物の請求書をスキャンしたり、小切手の写真を撮るだけで銀行口座に入金したりできるクリエイティブなアプリケーションを使用したことがありますか?これらのアプリケーションはすべて、OCR (光学式文字認識) ソフトウェアを使用します。 Tesseract は、100 以上の言語を認識でき、他の言語を認識するようにトレーニングすることもできる OCR エンジンです。
- Detectron: Detectron は、Facebook の人工知能研究会社が開発したソフトウェア システムで、Mask R-CNN などの最先端のオブジェクト検出アルゴリズムを使用しています。 Detectron は Python で記述されており、Caffe2 ディープラーニング フレームワークを活用しています。
- StanfordNLP: StanfordNLP は Python 用の自然言語解析パッケージです。素晴らしいのは、70 を超える人間の言語をサポートしていることです。 StanfordNLP には、次のプログラム ステップで使用できるツールも含まれています。
—人間の言語テキストを含む文字列を文と単語のリストに変換します - 単語の基本形、品詞、形態的特徴を生成します —論理的統語構造依存分析 - BERT サービス: NLP 愛好家なら誰でも、Google の画期的な NLP アーキテクチャである BERT について聞いたことがあるはずですが、まだ使用したことがないかもしれません。 Bert-as-a-service は BERT を文エンコーダーとして使用し、ZeroMQ 上のサーバーとして提供することで、ユーザーはわずか 2 行のコードで文を固定長表現にマッピングできるようになります。
- Google Magenta: Google Magenta は、機械学習モデルで使用されるソース データ (主に音楽と画像) を処理し、最終的にこれらのモデルから新しいコンテンツを生成するためのユーティリティを提供します。
- LibROSA: LibROSA は、音楽およびオーディオ分析用の Python パッケージです。音楽情報検索システムを構築するために必要な構成要素を提供します。 LibROSA は、ユーザーが音声テキスト変換ディープラーニングなどのアプリケーションに取り組んでいるときに、オーディオ信号の前処理手順で広く使用されています。
5. 強化学習のためのオープンソースツール 強化学習 (RL) は機械学習の新しいトピックであり、環境と対話して複雑なタスクを解決できるインテリジェントエージェントをトレーニングし、ロボットや自動運転車などの実用的なアプリケーションを実現することを目的としています。 強化学習の分野の急速な発展は、古典的な Atari コンソール ゲーム、伝統的な囲碁、Dota 2 や Starcraft 2 などのビデオ ゲームなど、インテリジェント エージェントにとって挑戦的な環境を提供するゲームをインテリジェント エージェントにプレイさせることによって促進されました。この環境では、新しいアルゴリズムによって、安全かつ再現可能な方法でアイデアをテストできます。強化学習に最も適した環境を 4 つ紹介します。 - Google Research Football: Google Research Football Environment は、世界で最も人気のあるスポーツであるサッカーをマスターするためにインテリジェント エージェントが設計された新しい強化学習環境です。この環境により、ユーザーは強化学習スマートエージェントをより適切にトレーニングできます。
- OpenAI Gym: Gym は、強化学習アルゴリズムを開発および比較するためのツールキットであり、歩行からピンボールやピンボールなどのゲームのプレイまで、あらゆることをエージェントに教えることをサポートします。次の GIF では、ティーチングエージェントが歩行を学習している様子を見ることができます。
- Unity ML Agents: Unity Machine Learning Agents Toolkit (ML-Agents) は、ゲームやシミュレーションでインテリジェント エージェントをトレーニングするための効果的な環境を提供できるオープン ソース ツールキット プラグインです。使いやすい Python API を通じて、ユーザーは強化学習、模倣学習、ニューロ進化、またはその他の機械学習手法を使用してスマートエージェントをトレーニングできます。
- Project Malmo: Malmo プラットフォームは、Minecraft 上に構築された複雑な AI 実験プラットフォームであり、Microsoft によって開発され、AI 分野の基礎研究をサポートするように設計されています。
ユーザーがデータ サイエンスや AI 関連のプロジェクトに取り組んでいる場合、オープン ソースが最適です。この記事で紹介したのはほんの一部に過ぎません。さまざまなタスクを処理し、データ サイエンティストのプロジェクトを簡素化するために使用できるツールは、まだまだたくさんあります。データ サイエンティストは、オープン ソースをどこで探すべきかを知るだけでよいのです。 |