- この記事では、まだ使ったことのないかもしれないオープンソースの機械学習ツールを 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だけで実行できます。使いやすさと、機能を拡張するための様々なアドオンを追加できることから、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. ビッグデータオープンソース機械学習ツール ビッグデータとは、データセットから情報を分析・体系的に抽出する方法、あるいは従来のデータ処理ソフトウェアでは処理しきれないほど巨大または複雑なデータセットを処理する方法を研究する分野です。感情分析のために毎日何百万ものツイートを処理することを想像してみてください。途方もない作業のように聞こえませんか? 心配しないでください。次の 3 つのツールは、ユーザーがビッグデータを処理するのに役立ちます。 - Hadoop:Hadoopは、ビッグデータ処理において最も優れた、かつ適切なツールの一つです。Hadoopは、シンプルなプログラミングモデルを用いて、大規模なデータセットを複数のコンピュータに分散処理することを可能にします。単一のサーバーから、それぞれがローカルな計算とストレージを提供する数千台のマシンまで、あらゆる環境を想定して設計されています。
- Spark:Apache Sparkは、ビッグデータアプリケーション向けのHadoopの高度なバージョンと考えられています。Apache Sparkの鍵となるのは、Apache Hadoop内のデータ処理におけるギャップを埋めることです。興味深いことに、Sparkはバッチデータとリアルタイムデータの両方を同時に処理できます。
- Neo4j:Hadoopはビッグデータ関連の問題を処理するのに最適な選択肢ではないかもしれません。例えば、大量のWebデータやグラフ関連の問題(ソーシャルネットワークや人口統計パターンなど)を処理する必要がある場合、グラフデータベース(Neo4j)が最適な選択肢となります。
[[272612]] 4. コンピューター ビジョン、自然言語処理、オーディオ用のオープンソースの機械学習ツール。 - SimpleCV:OpenCVはあらゆるコンピュータービジョンプロジェクトに不可欠です。しかし、SimpleCVについてご存知ですか?SimpleCVは、ビット深度、ファイル形式、色空間、バッファ管理、固有値、行列およびビットマップの保存に関する事前知識を必要とせずに、OpenCVをはじめとする複数の高性能コンピュータービジョンライブラリへのアクセスを提供します。これにより、コンピュータービジョンプロジェクトの開始がはるかに容易になります。
- Tesseract OCR:スマートフォンのカメラで書類や請求書をスキャンしたり、小切手を撮影するだけで銀行口座に入金できるような、クリエイティブなアプリを使ったことがありますか?これらのアプリはすべてOCR(光学式文字認識)ソフトウェアを使用しています。TesseractはOCRエンジンで、100以上の言語を認識でき、さらに多くの言語を認識できるようにトレーニングすることも可能です。
- Detectron:Detectronは、FacebookのAI研究会社が開発したソフトウェアシステムです。Mask R-CNNを含む最先端の物体検出アルゴリズムを採用しています。DetectronはPythonで記述されており、Caffe2ディープラーニングフレームワークを搭載しています。
- StanfordNLP: StanfordNLPは自然言語解析用のPythonパッケージです。70以上の言語をサポートしていることが最大の特徴です。StanfordNLPには、以下の手順で使用できるツールも含まれています。
— 人間の言語テキストを含む文字列を文と単語のリストに変換します。 —生成された単語の基本形、品詞、形態学的特徴 —論理的統語構造依存分析 - BERT as a Service:自然言語処理に興味のある人なら、Google の画期的な自然言語処理アーキテクチャである 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 上に構築された複雑な人工知能実験プラットフォームであり、人工知能分野の基礎研究をサポートするように設計されており、Microsoft によって開発されました。
データサイエンスや人工知能(AI)プロジェクトに取り組むユーザーにとって、オープンソースは現実的なアプローチです。この記事で紹介したのはほんの一部です。様々なタスクに対応できるツールが数多く存在し、データサイエンティストのプロジェクトライフをはるかに楽にしています。データサイエンティストに必要なのは、オープンソースをどこで見つけられるかを知ることだけです。 |