Best Python Libraries for Machine Learning and Deep Learning
多くの言語から選ぶことができますが、Python は最も開発者に優しい機械学習および深層学習プログラミング言語の 1 つで、あらゆる使用ケースやプロジェクトに対応できる幅広いライブラリのサポート付きです。
● TensorFlow
The revolution is here ! TensorFlow 2.0 へようこそ。
TensorFlow は、研究および生産のための高速、柔軟、かつ拡張性のあるオープンソースの機械学習ライブラリです。 Google が提供する TensorFlow は、初心者でも専門家でも簡単に ML モデルを構築できます。
TensorFlow を使用すると、同じ利点をモバイル プラットフォームと高性能サーバーに提供する TensorFlow Lite と TensorFlow Serving によって、コンピューターだけではなくモバイル デバイスやサーバーでも ML モデルを作成して訓練することが可能です。
TensorFlow が輝く ML や DL において不可欠な領域は、いくつかあります。
●ディープニューラルネットワークを扱う
●自然言語処理
●偏微分方程式
●抽象化機能
●画像、テキスト、音声認識
●アイデアとコードの簡単なコラボレーション
コアタスク.TensorFlowを使用すること
●ディープネットワークを扱う
●偏微分方程式
TensorFlowで特定のタスクを達成する方法を理解するには、TensorFlowチュートリアルを参照できます。
● Keras
Keras は最も人気がありオープンソースな Python用ニューラルネットワークライブラリの1つです。 当初、Google のエンジニアが ONEIROS (Open-Ended Neuro Electronic Intelligent Robot Operating System の略) のために設計しましたが、すぐに TensorFlow のコアライブラリにサポートされ、TensorFlow の上でアクセスできるようになりました。 Kerasは、以下のようなニューラルネットワークを作成するために必要なビルディングブロックやツールをいくつか備えています。
●ニューラル レイヤー
●活性化およびコスト関数
●目的
●バッチ正規化
●ドロップアウト
●プーリング
など、ニューラルネットワークを作成するのに必要ないくつかのビルディング ブロックやツールを備えています。
Keras は ML や DL のプログラミングのためにこれらの追加機能で TensorFlow のユーザビリティを拡張しています。 親切なコミュニティと専用のSlackチャンネルがあるため、サポートを受けるのも簡単です。 また、標準的なニューラルネットワークとともに、畳み込みニューラルネットワークとリカレントニューラルネットワークのサポートも存在します。 また、スタンフォードのKerasとComputer Visionクラスで他のサンプルモデルを参照することができます。
Keras Cheat Sheet : https://s3.amazonaws.com/assets.datacamp.com/blog_assets/Keras_Cheat_Sheet_Python.pdf
Core Task.NET(英語):(英語):Core Task: Deep Learningモデルの構築
Getting Started with Keras –
● PyTorch
Facebookによって開発された、Python用の数少ない機械学習ライブラリの1つであるPyTorchは、機械学習モデルの構築や、機械学習モデルの解析に最適です。 Pythonの他に、PyTorchはC++もサポートしており、C++インターフェースに興味があれば、そちらも利用可能です。 PyTorchは最高の機械学習・深層学習フレームワークとして、TensorFlowとの競争にさらされています。 その他の詳細については、PyTorchのチュートリアルを参照してください。
TensorFlow と異なる PyTorch を設定するいくつかの重要な機能は、次の通りです。
●グラフィックス・プロセッシング・ユニットによる加速処理機能を備えたテンソルコンピューティング
● 学習、使用、および他の Python エコシステムと統合が容易
● テープベースの自動 diff システムで構築したニューラルネットワークのサポート
ニューラルネットワークの作成と学習を助ける、さまざまな PyTorch モジュール:
●Tensors – torch.Tensor.Tensor.Flow
●PyTorch.Tensor.Flow
●PyTorch.Tensor.Tensor.Flow
● Optimizers – torch.Tensor Tensor Optimization – torch.optimモジュール
● Neural Networks – nnモジュール
● Autograd
Pros: 非常にカスタマイズしやすい、深層学習研究で広く使われている
Cons: NLP抽象化が少ない、スピードに最適化していない
核となるタスク。 深層学習モデルの開発とトレーニング
Keras vs Tensorflow vs PyTorch|深層学習フレームワーク比較
● Scikit-learn
Scikit-learn も活発に使われるPython用の機械学習ライブラリである。 NumPyやPandasのような異なるMLプログラミングライブラリとの容易な統合を含みます。 Scikit-learnは、次のような様々なアルゴリズムをサポートしています。
●分類
●回帰
●クラスタリング
●次元削減
●モデル選択
●前処理
使いやすいけれども柔軟に、という考えに基づいて作られたのが、このライブラリです。 Scikit-learnはデータのモデリングに重点を置いており、データの読み込み、処理、操作、視覚化といった他のタスクには焦点を当てていません。 研究フェーズからデプロイメントまで、エンドツーエンドのMLとして使用するのに十分であると考えられています。 scikit-learn をより深く理解するために、Scikit-learn チュートリアルをご覧ください。
コアタスク。 モデリング
Learn Scikit-Learn-
●Pandas
Pandas は Python データ分析ライブラリで、主にデータ操作と分析に使用されます。 データセットがトレーニングのために準備される前に登場します。 Pandasは、機械学習プログラマーにとって、時系列や構造化された多次元データを楽に扱えるようにします。 データの取り扱いに関して、Pandasの素晴らしい機能のいくつかを紹介します。
●データセットのリシェイプとピボット
●データセットのマージと結合
●欠損データの処理とデータのアライメント
●階層軸インデックスなどのさまざまなインデックスオプション。 Fancy indexing
●Data filtration options
Pandas では DataFrames というものを使っているようですね。 これは、DataFrameオブジェクトをプログラマに提供することで、データの2次元表現を行うための技術用語に過ぎません。
コアタスク。 データ操作と分析
Google Trends – Pandas Interest Over Time
● NLTK
NLTK は Natural Language Toolkit の略で、自然言語処理を扱うための Python ライブラリです。 これは、人間の言語データを操作するための最も人気のあるライブラリの一つとして考えられています。 NLTKは、FrameNet、WordNet、Word2Vecなどの語彙リソースの広い配列と一緒に、プログラマに簡単なインタフェースを提供します。 NLTKのハイライトをいくつか紹介します。
●文書中のキーワード検索
●テキストのトークン化と分類
●音声と手書きの認識
●レマティスとステミングの words
NLTK およびそのパッケージ群は学生にとって信頼できる選択肢と考えられています。 技術者、研究者、言語学者、そして言語を扱う産業界。
Core Task: テキスト処理
●Spark MLlib
MLlib is Apache Spark’s scalable machine learning library
Apacheによって開発されたSpark MLlibは機械学習ライブラリで、計算を簡単にスケーリングすることが可能です。 使い方は簡単で、素早く、簡単にセットアップでき、他のツールとのスムーズな統合が可能です。 Spark MLlibは、機械学習アルゴリズムやアプリケーションを開発するための便利なツールとして、瞬く間に普及しました。
Spark MLlib がもたらすツールは次のとおりです:
Spark MLlib を使用して機械学習に取り組むプログラマが活用できる人気のアルゴリズムおよび API は、次のとおりです。
●回帰
●クラスタリング
●最適化
●次元削減
●分類
●基本統計
●特徴抽出
●Theano
Theanoは、簡単に定義、使用できる強力な Pythonライブラリです。 強力な数式を最適化し、評価することができます。 Theanoは、大規模な科学計算を行うための堅牢なライブラリであることを示すいくつかの特徴があります。
● CPU に比べて負荷の高い計算で優れたパフォーマンスを発揮する GPU のサポート
● NumPy との強力な統合サポート
● 最も難しい変数の評価も高速かつ安定して行うことが可能
● 数学演算用のカスタム C コード作成機能
Theano.With Theano.With は、科学的計算を行うために最適なライブラリです。 最も効率的な機械学習アルゴリズムの迅速な開発を実現します。 Theanoの上に構築されているのは、Keras、Blocks、Lasagneなどのよく知られた深層学習ライブラリです。 Theano のより高度な概念については、Theano チュートリアルを参照してください。
● MXNet
A flexible and efficient library for deep learning
If your field of expertise includes Deep Learning.は、ディープラーニングのための柔軟で効率的なライブラリです。 MXNetが最適であることがお分かりいただけると思います。 ディープニューラルネットワークの学習と展開に使用されるMXNetは、高いスケーラビリティを持ち、迅速なモデル学習をサポートします。 Apache の MXNet は Python だけでなく、C++、Perl、Julia、R、Scala、Go など、他の多くの言語でも動作します。
MXNet の移植性と拡張性により、あるプラットフォームから別のプラットフォームに移行して、プロジェクトの厳しいニーズに応じて拡張することができます。 Intel、Microsoft、MIT など、技術および教育の分野で最も有名な企業が現在 MXNet をサポートしています。 アマゾンのAWSは、MXNetを好ましいディープラーニングフレームワークの選択肢として好んでいます。
●Numpy
Python 用 NumPy library は広範囲の多次元データやデータ上で操作する複雑な数学関数に集中して取り組んでいる。 NumPy は、高速な計算と、配列上で動作する複雑な関数の実行を提供します。 NumPyの利点は、以下の通りである。
●数学および論理演算のサポート
●図形操作
●ソートおよび選択機能
●離散フーリエ変換
●線形代数および統計演算
●ランダムシミュレーション
●n-行列のサポート
●Random Simulation
NumPy はオブジェクト指向のアプローチで動作し、C.NumPy を統合するためのツールを備えています。 C++やFortranのコードで、NumPyは科学界で非常に人気があります。
Core task: データのクリーニングと操作
Google Trends – Numpy Interest Over Time