1 機械学習とは

機械学習技術の知識がないユーザーのための説明です。

ノート:

機械学習に関する情報は、幅広く提供されています。現在の知識がどの程度であっても、機械学習に関する有用なドキュメントや記事を見つけることができます。

1.1 機械学習とは

機械学習とは、データ内の未知の関係性を見つける手法です。

機械学習とAIという用語は、よく同義的に使用されます。重要な違いとして、すべての機械学習はAIですが、すべてのAIが機械学習であるわけではありません。機械学習は、大量に保管されている可能性があるデータを自動的に検索して、単純な統計分析では得られないパターンや傾向を発見します。機械学習は、モデルを作成するデータのパターンを識別する高度なアルゴリズムを使用します。これらのモデルを使用して、予測と予想を作成し、データを分類できます。

機械学習の主な特徴は次のとおりです。

  • パターンの自動検出

  • 発生確率の高い結果の予測

  • 実用的な情報の作成

  • 大量になる可能性があるデータを分析する機能

機械学習は、従来の演繹的な問合せ手法やレポート手法では対処できない問題について、答えを得ることができます。

1.1.1 自動検出

機械学習は、一連のデータが対象となるアルゴリズムを使用するモデルによって実行されます。

機械学習のモデルは、その作成の基になったデータをマイニングするために使用できますが、ほとんどのタイプのモデルは新しいデータに一般化可能です。新しいデータに対してモデルを適用するプロセスはスコアリングとも呼ばれます。

1.1.2 予測

機械学習の形式の多くは予測です。たとえば、あるモデルは、教育レベルなどの人口統計要素に基づいて収入を予測します。予測には、確率(この予測が正しいことの確からしさ)が関連しています。予測確率は信頼度(この予測を信頼できる程度)とも呼ばれます。

一部の予測機械学習では、特定の結果を示す条件である、ルールが生成されます。たとえば、あるルールは、学士号を持っていて特定の地域に住んでいる人は、収入が地域の平均収入よりも高いことが多い、ということを表します。ルールには、支持度(母集団のうちこのルールに適合する個体の割合)が関連しています。

1.1.3 グループ化

機械学習のその他の形式として、データ内の自然なグループを識別するというものがあります。たとえば、モデルによって、母集団のうち、収入が特定の範囲内にある集団、良好な運転歴を持つ集団、年単位で新車をリースする集団を識別するような場合です。

1.1.4 実用的な情報

機械学習では、大量のデータから実用的な情報を導き出すことができます。たとえば、都市設計家の場合、低所得者向け住宅を開発する際に、人口統計に基づいて収入を予測するモデルを使用することが可能です。自動車のリース会社では、付加価値の高い顧客を対象とする販促を計画するために、顧客の各セグメントを識別するモデルを使用できます。

1.1.5 機械学習と統計

機械学習統計はかなりの部分で重複しています。実際、機械学習で使用される手法のほとんどは統計の範疇に収まります。しかし、機械学習の手法は従来の統計手法と同一ではありません。

統計モデルでは、通常、データについて強い仮定をし、その仮定に基づいて、結果について強い表明を行います。ただし、仮定に欠陥があると、モデルの妥当性は疑わしくなります。これに対し、機械学習の手法では、通常、データについて弱い仮定を行います。その結果、機械学習では、一般的に、結果についてそのような強い表明を行うことはできません。しかしながら、機械学習では、データにかかわらず非常に良好な結果を得ることができます。

従来の統計手法では一般的に、モデルの精度を検証するためにユーザーとの対話が相当量必要になります。そのため、統計手法の自動化は難しい場合があります。統計手法は、大規模な母集団内の小規模な代表サンプルに基づいた仮説の検定または相関の検出に依存しているためです。

機械学習では、ユーザーとの対話やデータの知識は少なくて済みます。ユーザーは、ある手法が特定のデータセットに対して有効となることを保証するために、データを操作する必要はありません。Oracle Machine Learningの手法は、従来の統計手法よりも簡単に自動化できます。

1.1.6 Oracle Machine LearningとOLAP

On-Line Analytical Processing (OLAP)は、多次元データの高速な分析であると定義できます。OLAPとOracle Machine Learningは異なりますが、相互に補完的なアクティビティです。

OLAPでは、データ集約、コスト割当て、時系列分析およびwhat-if分析などのアクティビティがサポートされています。ただし、ほとんどのOLAPシステムには、時系列予測のサポートを超える帰納的推論の機能はありません。特定のサンプルから一般的な結論を導き出すプロセスである帰納的推論は、機械学習の特性です。帰納的推論は、計算論的学習とも呼ばれます。

OLAPシステムではデータの多次元的ビューが提供され、階層が完全にサポートされます。このデータ・ビューは、企業や組織の分析に一般的に使用される様式です。

Oracle Machine LearningとOLAPは、様々な方法で統合できます。OLAPを使用すると、機械学習の結果を様々な粒度で分析できます。機械学習は、より興味深い有益なキューブを構築するために役立ちます。たとえば、予測機械学習の結果をカスタム・メジャーとしてキューブに追加できます。このようなメジャーにより、各顧客について「債務を履行しない可能性が高い」または「購入する可能性が高い」などの情報を提供できます。OLAP処理を使用すれば、さらに確率を集計したり要約したりできます。

1.1.7 Oracle Machine Learningとデータ・ウェアハウス

データは、フラット・ファイル、スプレッドシート、データベース表またはその他の格納形式で保存されている場合でもマイニングできます。データの重要な基準は格納形式ではなく、解決すべき問題への適用性にあります。

機械学習では、データの整備および準備を適切に行うことが非常に重要であり、これらのアクティビティはデータ・ウェアハウスで円滑に実行できます。ただし、問題の解決に必要なデータが含まれていないデータ・ウェアハウスは役に立ちません。

1.2 機械学習で実行可能なことと不可能なこと

機械学習は、データ内のパターンや関係性の検出に役立つ強力なツールです。しかし、機械学習は単独では機能しません。データ・マイニングを実施しても、ユーザーによるビジネス、データおよび分析手法への理解が必要であることに変わりはありません。機械学習では、データ内の隠れた情報が見つかりますが、その情報がユーザーの組織にとってどのような価値を持つかを示すことはできません。

ユーザーは、長期にわたってデータを処理してきた結果、重要なパターンについてはすでに認識している可能性があります。機械学習では、そうした経験的観測の追認や適切性の確認ができ、その上で、簡単な観測ではすぐには認識できない新たなパターンを発見できます。

機械学習によって発見された予測的な関係性は因果関係を示すものではないと覚えておくことが重要です。たとえば、機械学習によって、収入が$50,000から$65,000で特定の雑誌を購読する男性は特定の製品を購入する傾向にある、と判断されたとします。ユーザーは、この情報をマーケティング戦略の開発に利用できますが、ただし、機械学習によって識別された集団に属しているという理由から、その集団の構成員がその製品を購入するとみなすべきではありません。

機械学習によって得られるのは、確率であり、正確な答えではありません。頻度の低いイベントが、頻繁ではなくとも、起こる可能性があることに注意してください。

1.2.1 適切な問題の設定

機械学習では、ガイダンスなしで自動的に情報が発見されることはありません。機械学習によって発見されるパターンは、ユーザーが問題をどのように設定するかで大きく異なります。

意味のある結果を得るには、適切な設問のしかたを学習する必要があります。たとえば、ダイレクト・メールによるセールスへの反応を向上させる方法を知ろうとするよりは、過去にセールスに対して反応した顧客の特性を検出しようとする方が有用な場合があります。

1.2.2 データの理解

有意義な機械学習結果を確実に得るには、保有しているデータを理解する必要があります。機械学習のアルゴリズムは、多くの場合、外れ値(データベース内の典型的な値と大幅に異なるデータ値)、無関係な列、一緒に変化する列(年齢と誕生日など)、データ・コーディング、ユーザーによるデータ選別(追加または除外)など、データの特定の特性に影響を受けます。アルゴリズムに必要となるデータ準備の多くは、Oracle Machine Learningによって自動的に実行可能です。ただし、一部のデータ準備は、一般的に、分野や機械学習の問題に特有のものとなります。いずれにしても、モデルの適用時に結果を正しく解釈できるように、モデルの作成に使用するデータについて理解しておく必要があります。

1.3 Oracle Machine Learningのプロセス

次の図に、機械学習プロジェクトの各フェーズおよび反復的な性質を示します。このプロセス・フローは、特定の解を得ることができても機械学習プロジェクトは停止しないということを示しています。その結果から新たなビジネス上の問題が提起され、この問題を利用してさらに的確なモデルを開発できます。

図1-1 Oracle Machine Learningのプロセス

図1-1の説明が続きます
「図1-1 Oracle Machine Learningのプロセス」の説明

1.3.1 ビジネス目標の定義

機械学習プロセスの最初のフェーズは、ビジネス目標を定義することです。プロジェクトのこの初期フェーズでは、プロジェクトの目的および要件の理解に焦点を当てます。

ビジネスの観点から問題を特定した後は、それを機械学習の問題として形成し、暫定的な実装計画を開発できます。機械学習の結果が、定義されたビジネス目標を満たしているかどうかを判断するための成功基準を識別します。たとえば、ユーザーの抱えるビジネス上の課題が、「顧客に対する製品の販売数を増やすにはどうしたらよいか」であるとします。これは、どのような顧客が最もその製品を購入する傾向にあるかなどの機械学習問題にすることができます。どの顧客が最もその製品を購入する傾向にあるかを予測するモデルは、通常、過去にその製品を購入したことがある顧客を説明しているデータに基づいて作成されます。

要約すると、このフェーズでは次のことを行います。

  • 目的の指定
  • 機械学習目標の決定
  • 成功基準の定義
  • プロジェクト・プランの作成

1.3.2 データの理解

データ理解フェーズには、データのロードやビジネス上の問題のデータの分析など、データの収集と調査が含まれます。

様々なデータ・ソースおよび形式を評価します。Oracle Databaseなどの適切なデータ管理ツールにデータをロードします。適切に統合できるように、データの関係性を調査します。データを問い合せて視覚化し、属性の分布、ペアや少数の属性の間の関係など、特定のデータマイニングの質問に対処し、簡単な統計分析を実行します。データを詳細に調べるほど、そのデータによって当該のビジネス問題をどの程度解決できるかを判断できるようになります。その後、一部のデータを削除するか、データを追加するかを決定できます。これは、次のようなデータ品質の問題を特定する時期でもあります。
  • データは完全か。
  • データに欠損値があるか。
  • データにはどのようなタイプのエラーがあり、どのように修正できるか。
要約すると、このフェーズでは次のことを行います。
  • データのアクセスおよび収集
  • データの調査
  • データ品質の評価

1.3.3 データの準備

準備フェーズでは、データをファイナライズし、モデルの作成に使用できる形式でデータを作成するために必要なタスクをすべて実行します。

データ準備のタスクは複数回にわたって繰り返し実行される可能性が高く、所定の順序には従いません。タスクには、列(属性)の選択および表内の行の選択を含めることができます。特にデータが様々なソースから収集される場合は、必要に応じてビューを作成してデータを結合したり、データをマテリアライズできます。データを整備するには、無効な値、他の表に存在しない外部キー値、欠落している値および外れ値を探します。データを改善するには、機械学習の問題に対処するために必要な集計、正規化、一般化、属性構築などの変換を適用できます。たとえば、DATE_OF_BIRTH列をAGEに変換できます。INCOME列がnullの場合は、収入の中央値を挿入できます。データ内の外れ値を表す行を除外したり、欠損値や同一値が多すぎる列を除外できます。

さらに、データの表層に近い情報を得るために、新しく計算した属性を追加できます。このプロセスは、特徴エンジニアリングと呼ばれます。たとえば、購入金額を使用するかわりに、「12か月のうちで購入金額が500ドルを超えた回数」といった新しい属性を作成できます。大きい買い物を頻繁に行う顧客も、値引きに反応する顧客または反応しない顧客と関連がある場合があります。

十分に考慮してデータを準備し、特定分野の知識を獲得する新しい機能エンジニアリングを作成すると、機械学習で発見されるパターンの質を大幅に高めることができます。Oracle Database内で、データ専門家がデータ・アセンブリ、データ準備、データ変換および機能エンジニアリングを実行できるようにすることがOracleの重要な特徴です。

ノート:

Oracle Machine Learningでは、データ準備プロセスを大幅に単純化する自動データ準備(ADP)がサポートされます。

要約すると、このフェーズでは次のことを行います。
  • データの消去、結合および選択
  • データの変換
  • 新機能のエンジニアリング

1.3.4 モデルの開発

このフェーズでは、様々なモデリング手法を選択して適用し、ハイパーパラメータと呼ばれるアルゴリズム・パラメータを目的の値に調整します。

アルゴリズムでデータの変換が必要な場合、前のフェーズに戻って、その変換を行う必要があります。たとえば、一部のアルゴリズムでは数値列のみが許可されているため、モデリングの前にワンホット・エンコーディングを使用して文字列の質的データを「展開」する必要があります。予備的なモデル構築では、完全なデータセットに数百万または数十億の行が含まれている可能性があるため、データのサンプルから始めるのが理にかなっていることがよくあります。特定のアルゴリズムがデータのサブセットに対してどのように実行されるかを把握することで、データ品質の問題とアルゴリズム設定の問題をプロセスの早い段階で特定し、初期結果までの時間と計算コストを削減できます。教師あり学習の問題の場合、通常、データは80-20%または60-40%の分布を使用して、トレーニング(構築)データセットとテスト・データセットに分割されます。データを分割した後、目的のモデル設定でモデルを構築します。デフォルト設定を使用するか、モデル設定値を変更してカスタマイズします。設定は、OMLのPL/SQL、RおよびPython APIを使用して指定できます。手法に適したメトリックを使用してモデルの品質を評価します。たとえば、分類モデルには混同マトリックス、精度およびリコール、回帰モデルにはRMSE、クラスタリング・モデルにはクラスタ類似度メトリックなどを使用します。

自動化された機械学習(AutoML)機能を使用して、アルゴリズムの選択、属性(特徴)の選択、モデルのチューニングと選択など、反復モデリング・プロセスを合理化することもできます。

要約すると、このフェーズでは次のことを行います。
  • 様々なアルゴリズムの調査
  • モデルの構築、評価およびチューニング

1.3.5 評価

プロジェクトのこの段階では、最初に示されたビジネス目標をモデルがどの程度満たしているか評価します。

このステージでは、モデルがビジネス目標および成功基準をどの程度満たしているかを判断します。製品を購入する可能性のある顧客をモデルで予測するはずだった場合、そのモデルは2つのクラス間を十分に区別していますか。リフトは十分に存在しますか。混同マトリックスに示されているトレードオフは許容できますか。テキスト・データを追加することによって、そのモデルの精度は向上できますか。購入品など、トランザクショナル・データ(マーケット・バスケット・データ)は含める必要がありますか。不適切なポジティブまたは不適切なネガティブに関連付けられるコストをモデルに組み込む必要がありますか。

プロセスの徹底的なレビューを実行し、重要なタスクとステップが見落とされていないかどうかを判断することは有用です。このステップは品質チェックとして機能し、プロジェクトのデプロイや追加の反復の開始などの次のステップを決定したり、制約が許せば本番前の環境でプロジェクトをテストできます。

要約すると、このフェーズでは次のことを行います。
  • ビジネス目的の確認
  • 成功基準に対する結果の評価
  • 次のステップの決定

1.3.6 デプロイ

デプロイメントとは、ターゲット環境内で機械学習を使用することです。デプロイメント・フェーズでは、データ駆動型のインサイトと実用的な情報を導出できます。

デプロイメントには、スコアリング(新しいデータへのモデルの適用)、モデルの詳細(たとえば、ディシジョン・ツリーのルール)の抽出、またはアプリケーション、データ・ウェアハウス・インフラストラクチャ、問合せツールやレポート・ツールへの機械学習モデルの統合が含まれます。

Oracle Machine LearningではOracle Database内で機械学習モデルが作成され適用されるため、その結果はすぐに利用できます。レポート・ツールおよびダッシュボードは、機械学習の結果を簡単に表示できます。さらに、機械学習は、動的スコアリング、バッチ・スコアリング、またはリアルタイム・スコアリングを使用して、一度に1つのケースまたはレコードのスコアリングをサポートします。単一のデータベース・トランザクションで、データをスコアリングして結果を返すことができます。たとえば、販売担当者は、不正の可能性を予測するモデルをオンライン販売のトランザクションのコンテキスト内で実行できます。

要約すると、このフェーズでは次のことを行います。
  • エンタープライズ・デプロイメントの計画
  • ビジネス・ニーズに応じたモデルとアプリケーションの統合
  • モデルの監視、更新、廃止、アーカイブ
  • モデルの有効性に関するレポート