20 種類の機械学習ツール、プログラマーが AI を始めるのに最適な言語はどれですか? (優れた)

20 種類の機械学習ツール、プログラマーが AI を始めるのに最適な言語はどれですか? (優れた)

よく訓練された兵士であっても、手ぶらで任務を遂行することはできない。 データ サイエンティストには、機械学習 (ML) ソフトウェアという独自の武器があります。 信頼できる機械学習ツールをリストし、その機能について詳細に説明した記事はすでにたくさんあります。 しかし、私たちの目標は業界の専門家からのフィードバックを得ることでした。

[[246793]]

そのため、私たちはデータ サイエンスの実践者、つまりその達人たちにインタビューを行い、彼らがプロジェクトに選択する便利なツールについて真剣に考えてみました。 私たちが連絡を取った専門家はさまざまな専門分野を持ち、FacebookやSamsungなどの企業で働いていました。 彼らの中には、AI スタートアップ企業 (Objection Co、NEAR.AI、Respeecher) を代表する者もいれば、大学 (ハリコフ国立放送大学) で教鞭をとる者もいます。

最も人気のある機械学習言語

あなたは外国のレストランにいますが、その文化に詳しくありません。 使用する食器が何なのかを知る前に、メニューに書かれた言葉やその意味についてウェイターに質問してみるのもいいでしょう。 そこで、データ サイエンティストのお気に入りのツールについて話す前に、彼らが使用するプログラミング言語を調べてみましょう。

Python: 高品質の機械学習とデータ分析ライブラリを備えた人気の言語

Python は、読みやすさ、優れた構造、比較的緩やかな学習曲線が評価されている汎用言語です。 1 月に実施された Stack Overflow の年次開発者調査によると、Python は最も急速に成長している主要プログラミング言語と言えます。これは最も人気のある言語の第 7 位 (38.8%) にランクされ、現在 C# (34.4%) を 1 歩上回っています。

音声認識に応用されるディープラーニングを専門とする Respeecher の研究ディレクター、グラント・リーバー氏は、「ディープラーニングにはほぼ全員が Python を使用している」ため Python を使用しています。「TensorFlow 用の Swens はクールなプロジェクトに思えますが、より成熟するまで使用を検討するのは控えたいと思います」とグラント氏は結論付けました。

スタートアップ企業 NEAR.AI の共同設立者で、以前は Google Research のチームでディープラーニング NLU に取り組んでいた Illia Polosukhin 氏も Python を使い続けている。「Python は常にデータ分析の言語であり、時が経つにつれて、すべての最新ライブラリがディープラーニング用の言語を提供するようになったのです。」

Python 機械学習の使用例の 1 つは、モデル開発、特にプロトタイピングです。

AltexSoft のデータサイエンス能力リーダーである Alexander Konduforov 氏は、これを主に機械学習モデルを構築するための言語として使用していると述べています。

Samsung UkraineのチーフエンジニアであるVitaliy Bulygin氏は、Pythonをラピッドプロトタイピングに最適な言語の1つだと考えています。 「プロトタイピングのプロセス中に、最適なソリューションを見つけて、それを C++ などのプロジェクトに必要な言語で書き直します」と専門家は説明します。

Facebook の AI 研究者 Denis Yarats 氏は、この言語には PyTorch フレームワークや NumPy ライブラリ (この記事の後半で説明します) などの素晴らしいディープラーニング ツールセットがあると指摘しました。

C++: CUDA 並列コンピューティングのための中級言語

C++ は、C プログラミング言語をベースにした、柔軟でオブジェクト指向の静的型付け言語です。この言語は、信頼性、パフォーマンス、およびサポートするアプリケーション ドメインの数が多いため、開発者の間で人気を博しています。 C++ には高水準言語機能と低水準言語機能の両方が備わっているため、中水準プログラミング言語と見なされます。この言語のもう 1 つの用途は、リアルタイム制約の下でハードウェアと直接対話できるドライバーとソフトウェアの開発です。 C++ は基本的な概念を説明できるほど明確であるため、研究や教育に使用されます。

データ サイエンティストは、さまざまな特定のタスクにこの言語を使用します。ハリコフ国立無線電子工学アカデミー (NURE) の上級講師である Andrii Babii 氏は、C++ を使用して、Nvidia GPU コンピューティング プラットフォームである CUDA 上でアルゴリズムを並列実装し、これらのアルゴリズムに基づくアプリケーションを高速化しています。

「CUDA 用のカスタム カーネルを作成するときは、C++ が必要です」と Denis Yarats 氏は付け加えます。

R: 統計計算とグラフィックスのための言語

R は、統計、視覚化、データ分析のための言語および環境であり、データ サイエンティストにとって好ましい選択肢です。 これは S プログラミング言語の別の実装です。

R とそれに記述されたライブラリは、古典的な統計テスト、線形および非線形モデリング、時系列分析、分類、クラスタリングなど、多くのグラフィカルおよび統計的手法を提供します。 R 機械学習パッケージを使用して言語を簡単に拡張できます。 この言語を使用すると、数式や数学記号を含む高品質の図を作成できます。

Alexander Konduforov 氏は、機械学習に R を使用すると、高速なデータ分析と視覚化が可能になると指摘しています。

データ分析および視覚化ツール

pandas: 分析とモデリングを強化するための Python データ分析ライブラリ

さて、今度は、とてもかわいい名前を持つ無料ライブラリ、Python Pandas についてお話しましょう。データ サイエンス愛好家の Wes McKinney が、Python でのデータ分析とモデリングを容易にするためにこのライブラリを開発しました。 pandas 以前は、このプログラミング言語はデータの準備と変更にのみ適していました。

pandas は、CSV、JSON、TSV データ ファイルまたは SQL データベースをデータ フレーム (行と列を持つ Excel または SPSS テーブルのような Python オブジェクト) に変換することで、分析を簡素化します。さらに、pandas は IPython ツールキットやその他のライブラリと統合され、パフォーマンスを向上させ、共同作業をサポートします。

matplotlib: 高品質な視覚化を実現する Python 機械学習ライブラリ

matplotlib は Python 2D プロット ライブラリです。プロットは機械学習データを視覚化したものです。 matplotlib は MATLAB から派生したものです。開発者の John D. Hunter が Mathworks の MATLAB ソフトウェアのプロット コマンドをエミュレートしました。

このライブラリは主に Python で書かれていますが、NumPy やその他のコードで拡張されているため、大規模な配列でも優れたパフォーマンスを発揮します。

Matplotlib を使用すると、わずか数行のコードで本番品質の視覚化を生成できます。ライブラリ開発者は、その使いやすさを強調しています。「データのヒストグラムを見たい場合、オブジェクトをインスタンス化したり、メソッドを呼び出したり、プロパティを設定したりする必要はありません。そのまま動作するはずです。」

ライブラリの機能は、seaborn、ggplot、HoloViews などのサードパーティの視覚化パッケージを使用して拡張できます。 専門家は、Basemap および cartopy 投影およびマッピング ツールキットを使用して追加機能を追加することもできます。

データ サイエンスの専門家は、matplotlib の柔軟性と統合機能に注目しています。 たとえば、Andrii Babii は ggplot2 だけでなく matplotlib や seaborn も好んで使用します。

Denis Yarats 氏 (Facebook AI Research) は、matplotlib を選択した主な理由は、Python ツールセットとうまく統合され、NumPy ライブラリまたは PyTorch 機械学習フレームワークで使用できるためだと述べています。

Alexander Konduforov 氏と彼の AltexSoft チームも matplotlib を使用しています。 チームは、R と Python の両方をサポートする pandas や Plotly などの多数の Python 機械学習ライブラリに加えて、dplyr、ggplot2、tidyr、Shiny R ライブラリも選択しました。 「これらのツールは無料で使用できますが、少なくとも使用するにはプログラミングの知識が必要であり、場合によっては余分な時間がかかります。」

Jupyter Notebook: 共同作業のしやすさ

Jupyter Notebook は、インタラクティブ コンピューティング用の無料の Web アプリケーションです。これにより、ユーザーはライブ コードを使用してドキュメントを作成および共有したり、コードを開発および実行したり、タスクの結果を提示および議論したりできるようになります。ドキュメントは、Dropbox、電子メール、GitHub、Jupyter Notebook Viewer を介して共有でき、グラフィックや説明テキストを含めることができます。

ラップトップは機能が豊富で、さまざまな使用シナリオを提供します。

Apache Spark、pandas、TensorFlow などの多くのツールと統合できます。 R、Scala、Python、Julia など 40 を超える言語をサポートしています。これらの機能に加えて、Jupyter Notebook はコンテナ プラットフォーム (Docker と Kubernetes) もサポートしています。

NEAR.AI の Illia Polosukhin 氏は、カスタム アドホック分析には主に Jupyter Notebook を使用していると述べています。「このアプリケーションを使用すると、リモート サーバー上のカーネルに接続して、データやモデルの分析をすばやく実行できます。また、作成したノートブックを同僚と共有することもできます。」

Tableau: 強力なデータ探索とインタラクティブな視覚化

Tableau は、データ サイエンスとビジネス インテリジェンスに使用されるデータ視覚化ツールです。多くの特定の機能により、このソフトウェアはさまざまな業界やデータ環境における問題を効果的に解決できます。

Tableau ソフトウェアは、データの探索と検出を通じて、データから洞察をすばやく抽出し、わかりやすい形式で提示できます。優れたプログラミングスキルを必要とせず、さまざまなデバイスに簡単にインストールできます。小さなスクリプトを書く必要はありましたが、ほとんどの操作はドラッグ アンド ドロップで実行できました。

Tableau はリアルタイム分析とクラウド統合 (AWS、Salesforce、SAP など) をサポートしており、さまざまなデータ セットを組み合わせてデータ管理を一元化できます。

データ サイエンティストがこのツールを選択する理由は、その使いやすさと機能セットにあります。 「Tableau には多くの機能が組み込まれており、コーディングは必要ありません。UI で多くのデータの前処理、分析、視覚化を実行できるため、多くの労力を節約できます。ただし、無料製品ではないため、ライセンスを購入する必要があります」と Alexander Konduforov 氏は述べています。

一般的な機械学習のフレームワーク

NumPy: Python による科学計算のための拡張パッケージ

前述の NumPy は、NumArray や Numeric に代わる、Python で数値計算を実行するための拡張パッケージです。 多次元配列 (テーブル) と行列をサポートします。 ML データは配列として表されます。 行列は数値の2次元配列です。 NumPy には、C/C++ と Fortran コードを統合するためのツールとしてブロードキャスト機能が含まれています。 その機能には、フーリエ変換、線形代数、乱数関数も含まれます。

データ サイエンスの専門家は、多次元の一般的なデータを保存するための効率的なコンテナーとして NumPy を使用できます。 任意のデータ型を定義できるため、NumPy はさまざまなデータベースと簡単かつ迅速に統合できます。

scikit-learn: 多くの業界で使いやすい機械学習フレームワーク

scikit-learn は、SciPy (Scientific Python)、NumPy、matplotlib をベースに構築されたオープンソースの Python 機械学習ライブラリです。

scikit-learn は、もともと 2007 年に David Cournapeau によって Google Summer of Code プロジェクトとして開始されましたが、現在はボランティアによってメンテナンスされています。本日現在、1,092名が参加しております。

このライブラリは本番環境での使用を目的として設計されています。シンプルさ、質の高いコード、コラボレーション オプション、パフォーマンス、シンプルな言語で書かれた広範なドキュメントが、さまざまな専門家の間で人気を博しています。

scikit-learn は、教師あり学習と教師なし学習のための成熟したアルゴリズムを多数ユーザーに提供します。 Machine Learning Mastery のデータ サイエンス実践者である Jason Brownlee 氏は、このライブラリはデータの読み込み、操作、要約ではなく、データのモデリングに重点を置いていると指摘しました。彼は、これら 3 つの機能を実装するために NumPy と pandas を使用することを提案しました。

Denis Yarats 氏は、一般的な機械学習に NumPy、pandas、scikit-learn を使用することについて次のように述べています。「私は、これらのツールのシンプルさと透明性が気に入っています。また、これらのツールが長年にわたって多くの人々に広く採用され、実戦テストされていることも役立っています。」

「AltexSoft のデータ サイエンス チームは、分類と回帰のタスクに主に scikit-learn や xgboost などの Python ライブラリを使用しています」と Aleksander 氏は述べています。

Andrii Babii は、R 言語のライブラリとパッケージを学習するために sc 言語を使用することを好みます。 「オープンソースであり、強力な機能があり、互いに補完し合うため、この組み合わせを使用しています」とデータ サイエンティストは説明しました。

NLTK: Python ベースの人間言語データ処理プラットフォーム

NLTK は、人間の言語で動作する Python プログラムを開発するためのプラットフォームです。

Aleksander Konduforov は、NLP タスクにこのツールを好んで使用しています。 「NLTK は Python のテキスト処理用のほぼ標準ライブラリであり、多くの便利な機能を備えています。たとえば、さまざまな種類のテキスト、文と単語の処理、品詞のタグ付け、文の構造分析、固有表現の認識、テキストの分類、感情分析などです。これらのライブラリはすべて無料で、ほとんどのタスクを解決するのに十分な機能を提供します」と専門家は指摘しました。

ニューラルネットワークモデリングのための ML フレームワーク

TensorFlow: 大規模な機械学習のための柔軟なフレームワーク

TensorFlow は、2015 年に Google の人工知能組織内の Google Brain チームによって開発およびリリースされた、機械学習とディープ ニューラル ネットワークの研究のためのオープン ソース ソフトウェア ライブラリです。

[[246795]]

このライブラリの重要な特徴は、ノードとエッジで構成されるデータフローグラフを使用して数値計算が実行されることです。 ノードは数学演算を表し、エッジはこれらの演算が実行される多次元データ配列、つまりテンソルです。

TensorFlow は柔軟性が高く、デスクトップからサーバー クラスター、モバイル、エッジ システムまで、さまざまなコンピューティング プラットフォーム (CPU、GPU、TPU) やデバイスで使用できます。 Mac、Windows、Linux で動作します。

このフレームワークのもう 1 つの利点は、研究と反復的な機械学習タスクの両方に使用できることです。

TensorFlow には、特に Android 向けの豊富な開発ツールが用意されています。 「Android で何かを実装する必要がある場合は、TensorFlow を使用してください」と、 Samsung Ukraine の主任エンジニアである Vitaliy Bulygin 氏は述べています。

Objection Co.のCEOであるカーティス・ボイド氏は、TensorFlowがオープンソースであり、統合が非常に簡単であるため、チームが機械学習にTensorFlowを使用することを選択したと述べた。

Google がオープンソース化した 2 つの AIY キットにより、個人が人工知能を簡単に利用できるようになります。 2 つのキットはコンピューター ビジョンと音声アシスタントに重点を置いており、必要なすべてのコンポーネントが付属する小さな組み立て式段ボール箱に入っています。

TensorFlow についてさらに詳しく知りたい場合や、人工知能プロジェクトを実践したい場合は、Google の別のツール、つまり Google の AIY Projects プロジェクトが役立つかもしれません。 AIY Vision Kit に付属するソフトウェアは、3 つの TensorFlow ベースのニューラル ネットワークを実行します。 そのうちの 1 つは Google の MobileNets プラットフォームをベースとしており、1,000 を超える日常的な物体を認識できます。 2 つ目は、画像内の顔や表情を認識できるものです。 最後は猫、犬、人の認識に特化したニューラルネットワークです。

TensorBoard: モデルトレーニングの視覚化に適したツール

TensorBoard は、TensorFlow における機械学習のさまざまな側面と段階をグラフィカルに表現するためのツール セットです。

TensorBoard は、TensorFlow の実行中に生成された概要データ (モデルの特定の操作に関する観察) を含む TensorFlow イベント ファイルを読み取ります。

モデル構造を図式的に表示することで、研究者はモデルコンポーネントが必要な場所にあり、正しく接続されていることを確認できます。

グラフ視覚化ツールを使用すると、ユーザーはモデル抽象化のさまざまなレイヤーを探索し、スキーマの任意の部分を拡大/縮小することができます。 TensorBoard 視覚化のもう 1 つの重要な利点は、同じタイプおよび類似の構造のノードが同じ色で描画されることです。ユーザーは、デバイスごとの色分け(CPU、GPU、またはその両方の組み合わせ)を表示したり、トレース入力機能を使用して特定のノードを強調表示したり、一度に 1 つ以上のグラフを視覚化したりすることもできます。

この視覚化方法により、TensorBoard はモデルのパフォーマンス評価、特にディープ ニューラル ネットワークなどの複雑な構造を持つモデルのモデルのパフォーマンス評価によく使用されるツールとなっています。

Grant Reaber 氏は、TensorBoard を使用するとモデルのトレーニングを簡単に監視できると指摘しました。 Grant 氏と彼のチームは、カスタム視覚化にもこのツールを使用しています。

Illia Polosukhin 氏も TensorBoard を選択しました。 「TensorBoard はモデル開発中にメトリクスを表示し、モデルに関する決定を下すことを可能にします。たとえば、ハイパーパラメータを調整しながらモデルのパフォーマンスを監視し、最もパフォーマンスの高いものを選択するのは非常に便利です」と Illia 氏はまとめています。

TensorBoard は、パフォーマンス メトリックの表示に加えて、ヒストグラム、オーディオ、テキストおよび画像データ、分布、埋め込み、スカラーなど、他の多くの情報もユーザーに表示できます。

<<:  AIの原動力となるディープラーニング

>>:  人工知能のための 6 つの無料オープンソース ツール! 3 分で機械学習を始めましょう!

ブログ    

推薦する

OpenAI、超知能AIの制御に関する中核的な技術的課題に取り組むため新チームを結成

7月7日、OpenAIは、共同設立者で主任科学者のイリヤ・スツケバー氏とアラインメント責任者のヤン・...

エッジAIはIoTのメリットを高める

今日のデジタル世界では、人工知能とモノのインターネットが私たちの生活のあらゆる側面に大きな変化をもた...

コロナウイルスを分類する機械学習はわずか数分で完了

物理学者協会のウェブサイトが28日に伝えたところによると、カナダのコンピューター科学者と生物学者は、...

Alibaba Cloud がバッチおよびストリーム機械学習プラットフォーム Alink をオープンソース化し、アルゴリズム開発のハードルを下げる

11月28日、アリババクラウドは、世界初の統合バッチ・ストリームアルゴリズムプラットフォームでもある...

技術革命は初期の成果を達成した:AIはサプライチェーン管理の分野で2つの地位を獲得した

データ共有は依然として課題ですが、多くの組織はすでに AI の力をサプライ チェーン管理の 2 つの...

数学者は解けないコンピュータの問題を発見した

最近、海外メディアの報道によると、数学者たちは自分たちには解決できない機械学習に関連したコンピュータ...

感情知能の高いNPCがやって来て、手を伸ばすとすぐに次の行動に協力する準備が整いました。

仮想現実、拡張現実、ゲーム、人間とコンピュータの相互作用などの分野では、仮想キャラクターが画面外のプ...

ビッグデータ、人工知能、そして法曹界の未来

私は人工知能と法曹界の将来について数多くの講演を行ってきました。過去2年間、AlphaGo Zero...

Nvidia は年末に大きな動きを見せます!強力な画像ジェネレーターStyleGAN2のリリース

今年初め、NVIDIA の研究エンジニアは、生成的敵対ネットワーク用のスタイルベースのジェネレーター...

ETHは、画像の超解像と画像の再スケーリングを考慮して、新しい統合フレームワークHCFlowを提案しています。

[[423154]]近年、正規化フローモデルは、画像超解像(画像SR)[SRFlow、ECCV20...

インテリジェントな運用とメンテナンスからスマートな運用まで、Qingchuang Technologyは企業に探偵シャーロックの能力を提供します

[51CTO.com からのオリジナル記事] 運用保守作業は、初期の手動運用保守から自動化運用保守、...

2020年に人工知能がIT業界を変える

21 世紀は人類史上刺激的な時代であり、人々の日常生活に技術の進歩が起こっています。今では、患者の健...

AI が台頭して 9 年目を迎えた今、どんな大きな可能性があるのでしょうか?

2012年以来、人工知能の復活は9年目に入りました。「人工知能とは何か」に対する人々の認識は、当初...

2020年の世界コンサルティング会社の新ランキング:AI時代の新たな課題

[[348678]] 5G、人工知能、ブロックチェーンなどの新技術の継続的な進歩は、あらゆる企業の変...