機械学習とは

機械学習とは、明示的な指示なくしてタスクの実行方法の学習が可能なコンピュータープログラムの一種です。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • 機械学習の定義
  • 機械学習の仕組みを説明する
  • 機械学習モデルとアルゴリズムを区別する

記事のリンクをコピーする

機械学習とは

機械学習とは、明示的な指示なくして学習が可能な統計アルゴリズムの一種です。これにより、パターン識別のような特定のタスクを例から汎化して独自に行うことが可能になります。機械学習とは、人間の認知活動を模倣するコンピュータの能力である人工知能(AI)の一部です。

機械学習が持つ幅広い用途には、以下のようなものがあります:

  • スパムメールの特定
  • ボットの活動を検知
  • ストリーミングプラットフォームやソーシャルメディアアプリでユーザーにお勧めコンテンツを表示する
  • 検索エンジンの結果を提供する
  • 音声認識と画像認識
  • チャットボットと言語翻訳
  • 医学研究

機械学習とAIの比較

機械学習とAIは似て非なるものであり、むしろ、機械学習はAIの一部として位置づけられています。しかし、AIにはさまざまな他の能力も含まれているため、すべてのAIに機械学習が含まれるわけではありません。

機械学習の仕組みは?

機械学習は入力と出力で成り立ちます。機械学習アルゴリズムは与えられたデータ(入力)を使用して結果(出力)を生成します。機械学習モデルは、以下の主要な3つの方法でどのようなアウトプットを出すべきかを学習します:

1. 教師あり学習

最も基本的な機械学習プログラムで、プログラマーによって一連の入力例と正しい出力例が厳選されます。機械学習アルゴリズムは、これらの例から汎化を試み、単独で入力を与えられたときに、望ましい出力を生成できるようにします。

料理人が、厨房にたくさんの食材(インプット)と、それを使用して出来上がった多数の料理例が書かれたメニュー(アウトプット)を与えられたとします。食材を様々な方法で組み合わせ、出来上がった料理を手本となる料理と比較することで、料理人は最終的にメニューを作るために必要なレシピを開発することができます。同様に、「教師あり学習」では、プログラムされた命令(レシピ)がなしに正しい結果を出す方法をアルゴリズムが学習します。

2. 教師なし学習

教師なし学習では、より高度な機械学習アルゴリズムに未加工のデータを与えます。そして自らパターンを特定します。メニューを見ただけで、それを作るためのレシピを自身で考えられるだけの腕を持った料理人を想像してください。

3. 強化学習

この学習スタイルでは、機械学習アルゴリズムはフィードバックを通じてトレーニングされます。「望ましい」出力と「望ましくない」出力があり、時間をかけて望ましくない出力を避ける方法を学習します。

強化学習は試行錯誤のプロセスです。料理人が最初からメニューを持たず、作るすべての料理が料理評論家によって評価されることを想像してください。料理人は最終的に、料理評論家が好まない料理をすべて除外した上で、その料理評論家が好む料理のリストを作成します。

機械学習モデルとは?

アルゴリズムとは、あらかじめプログラムされたステップの集合であり、機械学習モデルとは、アルゴリズムがデータの集合に適用された結果です。このような区別があるにもかかわらず、「機械学習モデル」と「機械学習アルゴリズム」という用語は、同義で扱われることがあります。しかし、この違いは重要です。2つの機械学習モデルは、同じアルゴリズムを使用していても、それぞれのモデルが異なるデータを元に学習している場合、異なる結果が生成されます。

ディープラーニングとは

ディープラーニングは機械学習の一種です。ニューラルネットワークを使用して、未加工の非構造化データからパターンを認識し、関連付けを行うことを学習します。ディープラーニングは教師なし学習であり、非常に複雑なタスクの実行が可能です。音声認識、自動運転、その他の高度な用途に多く使用されます。

ニューラルネットワークとは?

ニューラルネットワークは、人間の脳の構造を模倣した機械学習の手法です。ニューラルネットワークは、互いに接続するノードで構成されます。これらのノードは、少なくとも3つの層(入力層、出力層、1つ以上の隠れ層)で構成されます。

各層はノードを複数持ち、互いに接続されます。あるノードが重要と認識したデータは、次のノードに伝達されます。

厨房で料理を作る料理人のことを思い浮かべてください:

  • 料理人がケーキを作る必要がある場合、まずパントリーにある材料を調べることから始めるでしょう。これはニューラルネットワークの入力層に相当します。
  • 料理人は小麦粉、卵、砂糖、ココアパウダーなどの材料を選び取ります。一方、チキンブイヨンや米のような食材は選びません。これは統計的に有意なデータを次のノードに伝達する行為に相当します。
  • 料理人はケーキの生地を混ぜたり、フロスティングを作るなどの様々な方法で材料を組み合わせます。これはニューラルネットワークの隠れ層に相当し、ノードが互いにデータを伝達し合っていると考えてください。
  • 最後に、料理人がケーキを焼き、フロスティングを行い、提供します。調理過程において、(不要な食材や間違った配合の組み合わせなど)無関係なデータや不正確なデータの排除が行われました。

ベクトルデータベースとは

ベクトルデータベースとは、機械学習を強化するためのデータの格納方式です。ベクトルデータベースは、完全一致クエリとは異なり、類似性の検索や関連項目の識別が可能です。このような形でデータを格納することで、機械学習モデルが受け取る入力内容をより理解することができるようになります。

ベクトルデータベースでは、様々な次元を持つマトリックスにアイテムが格納され、ベクトルが各データの次元に沿った位置を指定します。これにより、機械学習モデルは、他のデータとの関連性からデータを見つけることができます。例えば、ストリーミングプラットフォームは、機械学習とベクトルデータベースの組み合わせを使用することで、視聴者の過去の視聴履歴を基に、視聴者に推薦する映画を特定することができます。

機械学習モデルの構築の課題とは?

データのエグレス:最先端のディープラーニングモデルでさえ、正確な結果を得るためには膨大なデータセットにアクセスする必要があります。クラウドコンピューティングはほぼ無限に拡張可能なため、クラウドストレージはこのようなビッグデータセットの保存に最適です。しかし多くの場合、そのデータにアクセスすると、クラウドプロバイダーから、ストレージからデータを転送した際のエグレス料金が請求されます。

計算能力とインフラストラクチャ:機械学習、特にディープラーニングは、多くの計算能力を必要とします。機械学習モデルには、専用の高価なハードウェアやクラウドサービス(例えば、GPUを搭載した高速サーバーなど)を使用する必要があります。(GPU(画像処理ユニット)は、従来のCPUよりも強力です)

Cloudflareは開発者の機械学習構築にどのように貢献するか?

Cloudflareは、誰でも簡単に機械学習を利用できるようにするためのサービス群を提供しています。Cloudflare Workers AIは、開発者が生成AIタスクの実行に使用できるGPUのグローバルネットワークです。Cloudflare Vectorizeにより、開発者はグローバルに分散されたベクトルデータベースを使用することができます。また、Cloudflare R2はエグレス料金のかからないオブジェクトストレージであり、開発者は大規模なデータセットをクラウドに格納し、そのデータを無料で取り出すことができます。Cloudflare for AIについての詳細はこちらをご覧ください。