|
この記事の著者であるプラナフ・ダールは、Analytics Vidhyaの編集者です。彼はデータサイエンスと機械学習に関する深い研究と洞察を持ち、機械学習と人工知能を活用して人類の進歩を促進する新たな方法を見つけることに尽力しています。2018年を通して、著者は推奨オープンソースプロジェクトのリストを毎月公開してきました。この記事は、1年間を通して注目されたオープンソースプロジェクトをレビューし、要約したものです。 最先端 コードのホスティング、チームメンバーとのコラボレーション、そしてコーディングスキルをアピールする「オンライン履歴書」として最適なプラットフォームはどれでしょうか?データサイエンティストに尋ねれば、誰もがGitHubを挙げるでしょう。近年、GitHubは真に革新的なプラットフォームとなり、コードのホスティング方法、さらにはコーディング方法さえも変革しています。 しかし、それだけではありません。さらに、これは学習プラットフォームでもあります。どのように学習すればいいのかとお悩みなら、ヒントを一つ。オープンソースプロジェクトです! テクノロジー企業は、人気のアルゴリズムのコードをGitHubで公開することで、プロジェクトをオープンソース化しています。2018年には、GoogleやFacebookなどの企業が主導し、この種のオープンソースプロジェクトが大幅に増加しました。中には、コードを書いた研究者が事前学習済みのモデルも提供しており、私たちのような人々が複雑なモデルをゼロから作成する時間を節約しています。 同時に、チートシート、動画リンク、電子書籍、研究論文リンク、その他リソースなど、コーディングや開発者向けの人気オープンソースプロジェクトも数多く存在します。初心者、中級者、上級者など、どのレベルの方でも、GitHubでは常に新しい学びを見つけることができます。 2018年は、データサイエンスの多くの分野にとって異例の年でした。これについては後ほど詳しく説明します。ULMFiTやBERTといったプロジェクトがGitHubでオープンソース化されたことで、自然言語処理(NLP)は瞬く間にコミュニティで最も話題となる分野の一つとなりました。この素晴らしいGitHubコミュニティに全力を尽くすため、データサイエンティストが今年一年を通して知っておくべきオープンソースプロジェクトのトップ5を厳選し、月次リストシリーズとしてまとめました。以下のリンクをクリックすると、全リストをご覧いただけます。
これらの記事の内容の一部は、2018年のAIとMLにおける最大のブレークスルーのリストと重複しています。以下のリンクからその記事もご覧いただけます。これは基本的に、この分野の主要な進歩をまとめたリストであり、この分野の関係者なら誰でも知っているはずです。さらに、この記事には専門家による予測も掲載されており、きっと見逃せない内容です。
さあ、新しいプロジェクトを探索し、2019 年のデータ サイエンス スターを目指しましょう。下にスクロールして、各プロジェクトの横にあるリンクをクリックすると、GitHub リポジトリに移動できます。
ツールとフレームワーク まずは、ツール、ライブラリ、フレームワークに関連するオープンソースプロジェクトをいくつか見てみましょう。ソフトウェアリポジトリプラットフォームについて議論しているので、これが適切なアプローチのように思えます。 テクノロジーは急速に進歩し、コンピューティングコストはかつてないほど低下しているため、利用可能なオープンソースプロジェクトが数多く存在します。今こそ機械学習コーディングの黄金時代と言えるでしょうか?これはまだ議論の余地がありますが、データサイエンス分野のプログラマーにとって今が絶好の時期であることは誰もが認めるところです。このセクションでは(そしてこの記事全体を通して)、できる限り多様なプログラミング言語を取り上げようと努めてきましたが、Pythonが依然として圧倒的な地位を占めていることは否めません。 ML.NET
.NET開発者の皆さん、既存のスキルを補うために機械学習を学びたいとお考えですか?そんな皆さんを手助けしてくれる素晴らしいオープンソースプロジェクトがあります。この素晴らしいオープンソースプロジェクトとは、MicrosoftのML.NETです。これは、.NETを使用してモデルを設計・開発できるオープンソースの機械学習フレームワークです。 既存の機械学習モデルを、開発方法を詳しく知らなくてもアプリケーションに統合できます。ML.NETは、Windows、Bing検索、MS Officeなど、多くのMicrosoft製品で実際に使用されています。 ML.NET は Windows、Linux、macOS で実行できます。 TensorFlow.js
ブラウザで機械学習を実装しましょう!数年前までは単なる夢物語でしたが、今では驚くべき現実です。この分野のほとんどの人は、お気に入りのIDEと切っても切れない関係にありますが、TensorFlow.jsはそれを変える可能性を秘めています。今年初めのリリース以来、TensorFlow.jsは信じられないほど人気の高いオープンソースプロジェクトとなり、その柔軟性は今もなお人々を驚かせ続けています。 オープンソース プロジェクトで説明されているように、TensorFlow.js には 3 つの主な機能があります。
Keras を使い慣れているなら、その高レベル API にも精通しているはずです。現在、GitHub には多数のオープンソースのサンプルが公開されています。コミュニティでそれらを確認すれば、すぐに使い始めることができます。 パイトーチ 1.0
2018年はPyTorchにとって驚異的な年でした。世界中のデータサイエンティストや機械学習研究者の心を掴み、彼らは今もPyTorchを使ったプロジェクトに携わっています。PyTorchは理解しやすく柔軟性が高く、多くの著名な研究プロジェクトで利用されています(この記事の後半で解説します)。PyTorchの最新バージョン(PyTorch 1.0)は、既にFacebookの多数の製品やサービスでスケーラブルな基盤として利用されており、1日あたり600億件ものテキスト翻訳を実行しています。PyTorchの導入時期を迷っているなら、今がまさにその時です。 この分野の初心者であれば、まずは Faizan Shaikh の PyTorch 初心者ガイドをご覧ください: https://www.analyticsvidhya.com/blog/2018/02/pytorch-tutorial/ コード付き論文
厳密に言えば、Papers with Codeはツールでもフレームワークでもありませんが、データサイエンティストにとってはまさに金鉱です。私たちの多くは、論文を読んでから提示された手法を試してみるのに苦労します(少なくとも私はそうです)。多くの可動部品が、私たちのマシンではうまく動作しないようです。 ここでPapers with Codeが役に立ちます。名前の通り、ここ6年ほどに発表された重要な論文のコード実装を提供しています。この論文集ウェブサイトは、思わず褒めてしまうほど魅力的です。NIPS (NeurIPS) 2018で発表された論文のコードも追加されています。ぜひPapers with Codeをご利用ください。 コンピュータービジョン コンピューティングコストの低下と研究者による画期的な研究成果の急増(この2つの要因は相互に関連している可能性を示唆する事例もいくつかあります)により、ディープラーニングは研究においてますます利用しやすくなっています。ディープラーニング分野において、コンピュータービジョンプロジェクトは最も普及しており、本章で紹介するオープンソースプロジェクトのほとんどは、何らかのコンピュータービジョン技術を採用しています。 コンピュータービジョンは現在、ディープラーニングにおいて最もホットな分野であり、今後もその傾向は続くでしょう。物体検出や姿勢推定など、ほぼすべてのコンピュータービジョンタスクには、対応するオープンソースプロジェクトが存在します。今こそ、これらの進歩について学ぶ絶好の機会です。近い将来、多くの仕事のチャンスに恵まれるかもしれません。 FacebookのDetectron
2018年初頭にリリースされたDetectronは、大きな話題を呼びました。Facebook AI Research (FAIR) によって開発されたDetectronは、最先端の物体検出フレームワークを実装しています。DetectronはPythonでコーディングされており(驚くべきことに!)、DensePose(後述)を含む複数のプロジェクトの実装に既に貢献しています。 このオープンソースプロジェクトには、コードと70以上の事前学習済みモデルが含まれています。この素晴らしい機会を逃したら、どう思いますか? Nvidiaのvid2vidテクノロジー
画像内のオブジェクト検出は今のところかなりうまくいっていますが、動画内のオブジェクト検出はどうでしょうか?さらに、このコンセプトを拡張して、ある動画のスタイルを別の動画のスタイルに変換できるでしょうか?はい、可能です!これは非常に優れたコンセプトで、NVIDIAは誰でも実験できるようにPyTorch実装を惜しみなくリリースしています。 このオープンソースプロジェクトには、技術紹介ビデオ、完全な研究論文、そしてコードが含まれています。NVIDIAの例では、公開されているCityscapesデータセット(https://www.cityscapes-dataset.com/からダウンロード可能)を使用しています。これは、2018年以来、私が個人的に気に入っているオープンソースプロジェクトです。 ImageNetデータセットでモデルを18秒でトレーニング
ディープラーニングモデルを18秒でトレーニング?しかも、ハイエンドのコンピューティングリソースを一切使わずに?信じてください、今やそれが可能になりました。Fast.aiのジェレミー・ハワードと彼の学生チームは、人気のImageNetデータセットを用いて、Googleのアプローチさえも凌駕するモデルを作成しました。 研究者がどのようにコードを構築しているかを理解するために、このオープンソースプロジェクトを少なくとも一度は覗いてみることをおすすめします。誰もが複数のGPUを持っているわけではありません(中には1台も持っていない人もいます)。そのため、このオープンソースプロジェクトは初心者にとって非常に重要な意味を持っています。 物体検出に関する論文集
こちらも研究論文をまとめたオープンソースプロジェクトです。選択した研究テーマが長年にわたりどのように進化してきたかを理解するのに役立ちます。また、この包括的な歴史記録は、物体検出が長年にわたりどのように変化してきたかを理解するのに役立ちます。2014年から現在までの論文を網羅的に収集しており、各論文に対応するコードも可能な限り収録しています。 上の画像は、過去5年間の物体検出フレームワークの進化と変遷を示しています。素晴らしいと思いませんか?画像には2019年の成果も含まれているので、ぜひ取り組んでみてください。 FacebookのDensePose
ポーズ検出の分野に目を向けてみましょう。私は今年、この概念自体を知り、それ以来ずっと魅了されてきました。上の画像は、このオープンソースプロジェクトの真髄、つまり屋外シーンにおける人間のポーズの集中的な評価を捉えています。 このオープンソースプロジェクトには、DensePose-RCNNモデルの学習と評価のためのコードと、DensePose COCOデータセットの可視化に関するメモが含まれています。ポーズ評価学習を始めるのに最適な場所です。 みんなで踊ろう—姿勢評価
上の画像(動画のスクリーンショット)は、本当に興味をそそられました。8月のレビュー記事でこの研究論文のオープンソースプロジェクトについて書きましたが、この技術には感銘を受け続けています。この技術は、異なる動画内の人物の動きを転送するものです。先ほど触れた動画もオープンソースプロジェクトで見ることができます。その効果は想像を絶するものです! このオープンソースプロジェクトには、この手法のPyTorch実装も含まれています。この手法が捉え、再現できる複雑な詳細の量は驚異的です。 生成的敵対ネットワーク(GAN) 皆さんの多くは、GANの応用例を目にしたことがあると思います(たとえ当時は気づいていなかったとしても)。GAN(Generative Adversarial Networks)は、2014年にイアン・グッドフェロー氏によって提唱され、それ以来ますます人気が高まっています。GANは、特に芸術的な分野など、クリエイティブなタスクを実行するために特別に設計されています。Faizan Shaikh氏による入門ガイド(https://www.analyticsvidhya.com/blog/2017/06/introductory-generative-adversarial-networks-gans/)をご覧ください。Pythonを使った実装例も掲載されています。 2018 年には GAN ベースのプロジェクトが非常に多く登場したため、GAN 関連のオープンソース プロジェクトを紹介する別の章を設けたいと思います。 深い絵画的調和
まずは、私のお気に入りのオープンソースプロジェクトの一つから始めましょう。少し時間を取って、上の画像を眺めてみてください。どれが人間が作ったもので、どれが機械が生成したものか、見分けられますか? おそらく無理でしょう。ここで、最初の画像は入力画像(オリジナル)で、3番目の画像はこの技術によって生成されたものです。 驚きましたか?このアルゴリズムは、任意の画像に選択した外部オブジェクトを追加し、まるで最初からそこにあったかのように見せることができます。コードを見て、さまざまな画像で試してみてはいかがでしょうか? イメージアウトペインティング
もしあなたが一枚の画像を渡され、その画像に描かれた風景の中でどのように見えるかを想像しながら、その画像の境界を広げるように言われたら、あなたはどうしますか? 通常は、画像編集ソフトウェアに画像をインポートするでしょう。しかし、今、素晴らしい新しいソフトウェアが登場しました。たった数行のコードで、それができるのです。 このプロジェクトは、スタンフォード大学の論文「Image Outpainting」(論文リンク:https://cs230.stanford.edu/projects_spring_2018/posters/8265861.pdf、実例を交えた素晴らしい論文です。多くの研究論文はこうあるべきです!)のKeras実装です。モデルをゼロから作成することも、このオープンソースプロジェクトの著者が提供するモデルを使用することもできます。ディープラーニングは人々を驚かせ続けます。 GANの視覚化と理解
GANをまだ習得していない方は、このオープンソースプロジェクトを試してみると良いでしょう。MIT CSAILが提案するこのプロジェクトは、研究者がGANを視覚化し理解するのに役立ちます。GANモデルのニューロンを観察したり操作したりすることで、GANモデルが学習した内容を探求できます。 MIT プロジェクトの公式ホームページ (https://gandissect.csail.mit.edu/) を確認することをお勧めします。このホームページには、概念をよりよく理解するのに役立つリソース (ビデオ デモを含む) が豊富に用意されています。 GANimation
このアルゴリズムを使うと、画像内の人物の表情を変えて、幸せそうにしたり、悲しそうにしたりすることができます。上の緑色の枠で囲まれた画像は元の画像で、残りはGANimationによって生成された画像です。 オープンソースプロジェクトのリンクには、入門ガイド、データ準備リソース、前提条件、Pythonコードが含まれています。論文の著者が述べているように、非倫理的な目的で使用しないでください。 NvidiaのFastPhotoStyle
FastPhotoStyleオープンソースプロジェクトは、前述のDeep Painterly Harmonizationと非常によく似ています。しかし、NVIDIA自身が開発したという点が注目に値します。上の画像でわかるように、FastPhotoStyleアルゴリズムはスタイル画像とコンテンツ画像の2つの入力を必要とします。アルゴリズムはこれらの2つの入力パスのいずれかを実行し、リアルな画像フォーマットコードまたはセマンティックラベルマップを使用して出力を生成します。 その他のディープラーニングオープンソースプロジェクト コンピューター ビジョンの分野はディープラーニングの他の研究を凌駕するかもしれませんが、それでもコンピューター ビジョン以外の代表的なオープン ソース プロジェクトをいくつか挙げたいと思います。 NvidiaのWaveGlow
音声処理は、ディープラーニングが将来性を示し始めているもう一つの分野です。音楽生成だけでなく、音声分類、フィンガープリンティング、セグメンテーション、アノテーションといったタスクも実行できます。この分野にはまだまだ探求すべき点が多く残されています。もしかしたら、これらのオープンソースプロジェクトからキャリアをスタートできるかもしれません。 ここでは、このオープンソース作業に慣れるのに役立つ、非常に直感的な 2 つの記事を紹介します。
NVIDIAの話に戻りましょう。WaveGlowは、高品質なオーディオを生成できるストリームベースのネットワークです。基本的には、音声合成用に設計された単一のネットワークです。 このオープンソースプロジェクトには、WaveGlowのPyTorch実装と、ダウンロード可能な事前学習済みモデルが含まれています。研究者らは上記に使用手順も記載しています。独自のモデルをゼロから学習したい場合は、以下の手順に従ってください。 アストロネット
自分の惑星を発見してみませんか?オープンソースプロジェクト「AstroNet」は少々過大評価されているかもしれませんが、夢の実現に確実に近づくことができます。2017年12月、Google BrainチームはAstroNetを用いて2つの新しい惑星を発見しました。AstroNetは天文データの処理に特化したディープラーニング(深層学習)ネットワークであり、ディープラーニングの幅広い応用を実証し、真のマイルストーンと言えるでしょう。 このテクノロジーの開発チームは現在、AstroNet を実行するコード全体をオープンソース化しています (ヒント: このモデルは CNN に基づいています)。 VisualDL – ディープラーニングモデルの可視化
視覚化は誰もが好きなはずです。しかし、ディープラーニングモデルがどのように動作するのかを想像するのは、少々難解かもしれません。しかし、VisualDLは、特定のディープラーニングタスクを設計することで、こうした課題を大幅に軽減します。 視覚化タスクの場合、VisualDL は現在次のコンポーネントをサポートしています。
自然言語処理(NLP) NLPがリストの下位にランクインしていることに驚きましたか?これは主に、この記事で重要なオープンソースプロジェクトのほぼすべてをレビューしたかったためです。NLPの前に、すべてのオープンソースプロジェクトをチェックすることを強くお勧めします。NLPのセクションで言及したフレームワークには、ULMFiT、GoogleのBERT、ELMo、FacebookのPyTextなどがあります。BERTとその他のオープンソースプロジェクトについては、非常に役立つと思ったので、簡単に触れておきます。 GoogleのBERT
NLPのセクションでは、BERTについて触れなければなりません。Google AIによるこのオープンソースプロジェクトは、NLP分野に画期的な進歩をもたらし、NLP愛好家や専門家から強い注目を集めています。ULMFiTとELMoに続き、BERTは競合を凌駕し、11のNLPタスクでトップクラスの成績を達成しました。 上記で示したGoogleオープンソースプロジェクトの公式リンクに加えて、BERTのPyTorch実装(https://github.com/huggingface/pytorch-pretrained-BERT)もチェックする価値があります。これがNLPの新たな時代を切り開くかどうかは、まだ分かりません。 マッチズー
MatchZooは、ベンチマークにおけるモデルのパフォーマンスを理解するのに役立ちます。NLP、特にディープテキストマッチングモデルにおいては、MatchZooツールキットは非常に信頼できると感じています。MatchZooを適用できるその他の関連タスクには、以下のようなものがあります。
MatchZoo バージョン 2.0 はまだ開発中なので、このすでに非常に便利なツールボックスにさらに新しい機能が追加されるのを楽しみにしています。 NLPの進捗
このオープンソースプロジェクトは、セバスチャン・ルーダー氏によって単独で開発され、NLP分野における最新の進歩を追跡することを目的としています。データセットと最先端のモデルが含まれています。 これまでもっと詳しく学びたいと思っていたNLP技術があれば、今が絶好の機会です。このオープンソースプロジェクトは、読解や品詞タグ付けといった、NLPの伝統的なコアタスクを網羅しています。この分野に漠然とした興味をお持ちの方でも、ぜひこのオープンソースプロジェクトにスターを付けたり、ブックマークを付けたりしてください。 自動機械学習(AutoML) 2018年はAutoMLにとっても輝かしい年でした。産業界が機械学習をコア業務に統合するにつれ、データサイエンスの専門家に対する需要は高まり続けています。現在、需要と供給の間には大きなギャップがあり、AutoMLツールはこのギャップを埋める可能性を秘めています。 これらのツールは、データサイエンスの専門知識が不足している人向けに設計されています。他にも優れたツールはありますが、その多くは大幅に高価で、ほとんどの人には手が届きません。そこで2018年、私たちの素晴らしいオープンソースコミュニティが皆様をサポートするために立ち上がり、2つの人気オープンソースプロジェクトを立ち上げました。 自動ケラス
数か月前、Auto Keras がリリースされると大きな話題を呼びました。そして、それは当然のことながら、大きなセンセーションを巻き起こすものでした。ディープラーニングは長らく高度に専門化された分野とみなされてきたため、ほとんどのタスクを自動化できる開発ライブラリは当然ながら非常に求められていました。公式ウェブサイトには、「Auto Keras の究極の目標は、データサイエンスや機械学習の知識がある程度ある業界の専門家に、簡単に応用できるディープラーニングツールを提供することです。」と記されています。 以下の torrent ファイルを使用してこの開発ライブラリをインストールできます。 このオープンソース プロジェクトには、Auto Keras ワークフロー全体を理解するための簡単な例もいくつか含まれています。 GoogleのAdaNet
AdaNetは、プログラミングの専門知識を必要とせず、高品質なモデルを自動学習できるフレームワークです。Googleによって開発されたAdaNetは、TensorFlowをベースとしています。AdaNetを使えば、あらゆるモデルを作成し、ニューラルネットワークの学習にも応用できます。 強化学習 2018年のレビュー記事でオープンソースの強化学習プロジェクトをいくつかレビューしたため、このセクションは非常に簡潔になります。強化学習に関するものも含め、これらのセクションがコミュニティ内での議論を活性化し、この分野の研究を加速させることを願っています。 まず、OpenAIのオープンソースプロジェクト「Spinning Up」(プロジェクトアドレス:https://github.com/openai/spinningup)をチェックしてみてください。これは初心者向けの完全な教育用オープンソースプロジェクトです。次に、Googleの「dopamine」(プロジェクトアドレス:https://github.com/google/dopamine)をご覧ください。これは、まだ初期段階にあるこの分野の研究を加速させるために設計された研究フレームワークです。次に、他のオープンソースプロジェクトをいくつか見ていきましょう。 ディープミミック
ソーシャルメディアで研究者をフォローしている方は、おそらく上の画像を動画で見たことがあるでしょう。棒状の人物が地面を走ったり、立ち上がろうとしたり、その他の動作をしています。読者の皆様、これは(人間の)動作における強化学習です。 強化学習の典型的な例として、ヒューマノイドロボットに複数の運動技能を模倣させる訓練を紹介します。上記のオープンソースプロジェクトへのリンクには、コード、例、そしてステップバイステップの演習ガイドが含まれています。 強化学習ノートブック
このオープンソースプロジェクトは、リチャード・サットンとアンドリュー・バートの著書、およびその他の研究論文から派生した強化学習アルゴリズムのコレクションです。これらのアルゴリズムは、オープンソースプロジェクト内でPythonノートブックの形式で提供されています。 このオープンソースプロジェクトの開発者が述べているように、学習しながら実践的な練習をすることで、真に習得することができます。このプロジェクトは非常に複雑なので、練習をしない、あるいはリソースを小説のように読むだけでは何も得られません。 出典: https://www.analyticsvidhya.com/blog/2018/12/best-data-science-machine-learning-projects-github/ |