第31章 ディープラーニング ディープラーニング
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
ディープラーニング( )は、これまで困難であった機械学習の問題、特に画像、音声、テキストなどの非構造化データを含む問題を解決する能力を持つため、Spark周辺の開発で最もエキサイティングな分野の1つである。この章では、Sparkとディープラーニングがどのように連動するのか、またSparkとディープラーニングを連動させるために使用できるさまざまなアプローチについて説明する。
深層学習はまだ新しい分野であるため、最新のツールの多くは外部ライブラリに実装されている。この章では、必ずしもSparkのコアとなるパッケージではなく、Sparkの上に構築されたライブラリの膨大なイノベーションに焦点を当てる。まず、Spark上でディープラーニングを使用するいくつかのハイレベルな方法から始め、それぞれをどのような場合に使用するかを議論し、その後に使用可能なライブラリについて説明する。いつものように、エンド・ツー・エンドの例も紹介する。
注
この章を最大限に活用するためには、少なくともディープラーニングの基礎とSparkの基礎を知る必要がある。とはいえ、本書の冒頭では、この分野のトップ研究者たちによる「Deep Learning Book」と呼ばれる優れたリソースを紹介している。
ディープラーニングとは何か?
Deep Learningを定義するには、まずニューラルネットワークを定義しなければならない。ニューラルネットワークは重みと活性化関数を持つノードのグラフである。これらのノードは、互いに積み重ねられたレイヤーに編成されている。各レイヤーは、ネットワークの前のレイヤーに部分的または完全に接続されている。ある層では単純な行を、次の層では円や四角を、別の層では複雑なテクスチャーを、そして最終的には、識別したいオブジェクト全体や出力を認識する。目標は、各接続に関連する重みとネットワーク内の各ノードの値を調整することで、特定の入力と特定の出力を関連付けるようにネットワークを訓練することである。図31-1にシンプルなニューラルネットワークを示す。
図31-1. ニューラルネットワーク
ディープラーニング(深層学習)、つまり深層ニューラルネットワークは、 、これらの階層化アーキテクチャをさまざまに積み重ねていく。ニューラルネットワーク自体は何十年も前から存在し、様々なマシン学習の問題に対する人気は衰えたり衰えなかったりしてきた。しかし最近では、より大規模なデータセット(オブジェクト認識のためのImageNetコーパスなど)、強力なハードウェア(クラスタやGPU)、新しい学習アルゴリズムの組み合わせにより、多くの機械学習タスクで以前のアプローチを凌駕する、より大規模なニューラルネットワークの学習が可能になった。一般的なマシン学習テクニックは、データが増えれば増えるほど性能を維持できなくなる。ディープラーニングは膨大な量のデータと情報から利点を得ることができ、ディープラーニングのデータセットが他のマシンラーニングのデータセットよりも桁違いに大きいことも珍しくない。ディープ・ニューラル・ネットワークは現在、コンピューター構想、音声処理、一部の自然言語タスクにおいて標準となっており、多くの場合、以前の手作業でチューニングされたモデルよりも優れた特徴を「学習」する。ディープニューラルネットワークは、マシン学習の他の分野でも積極的に応用されている。Apache ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access