Skip to main content
9 月 17 日~ 19 日に サンフランシスコで Dreamforce が開催されます。DF24TRAIL20 というコードを使って今すぐ登録すると 20% 割引になります。

データをモデルに変える

学習の目的

この単元を完了すると、次のことができるようになります。

  • 手作業でコーディングされたアルゴリズムとトレーニングされたモデルの違いを説明する。
  • 機械学習および機械学習と AI の関係を定義する。
  • 構造化データと非構造化データおよびそのトレーニングへの影響を区別する。

Trailcast

このモジュールの音声録音をお聞きになりたい場合は、下記のプレーヤーを使用してください。この録音を聞き終わったら、必ず各単元に戻り、リソースを確認して関連付けられている評価を完了してください。

マジックの裏に隠されたトリック

AI ができることはマジックのように見えるかもしれません。また、マジックと同様に、その種明かしをこっそり覗き見したいと思うのは自然なことです。コンピューター科学者や研究者は、鏡やミスディレクションの代わりに、多くのデータ、数学、処理能力を使用しています。AI が実際にどのように機能するのかを学ぶことで、その限界による落とし穴を避けながら、AI の潜在的な機能を最大限に活用できるようになります。

作成からトレーニングへのシフト

何十年もの間、プログラマーは、入力を受け取って一連のルールで処理し、出力を返すコードを記述してきました。たとえば、数値セットから平均を求める方法は次のとおりです。

  • 入力: 5、8、2、9 
  • プロセス: 値を加算し [5 + 8 + 2 + 9]、入力数 [4] で除算する。
  • 出力:

入力を出力に変換するためのこの単純なルールセットは、アルゴリズムの一例です。アルゴリズムは、かなり高度なタスクを実行するために記述されてきましたが、一部のタスクには非常に多くのルール (および例外) があり、そのすべてを手作業で作成したアルゴリズムに取り込むことは不可能です。水泳は、ルールセットとしてカプセル化することが難しいタスクの良い例です。プールに飛び込む前にアドバイスを受けても、溺れないようにもがいて初めて、実際に何が役立つかがわかります。物事には経験から学ぶことが最善である場合があります。

同じようにコンピューターをトレーニングできたらどうなるでしょうか? プールに放り込むのではなく、タスクを成功させるために何が有効かを考えさせるのです。ただし、泳ぎを学ぶことと外国語を話すことを学ぶことがまったく違うように、トレーニングの種類はタスクによって異なります。AI をトレーニングする方法をいくつか確認してみましょう。

経験が必要

牛乳を買いに店に行くたびに、その詳細をスプレッドシートに記録していたとします。少し奇妙ですが、この例を使用しましょう。次のような列を設定します。

  • 週末であるか?
  • 時間帯
  • 雨が降っているかどうか?
  • 店までの距離
  • 合計所要時間

何度か行っているうちに、条件が所要時間にどう影響するかがわかるようになります。たとえば、雨が降るということは、運転時間が長くなると同時に、買い物客が少なくなるということでもあります。脳内では、入力 (週末 [W]、時間 [T]、雨 [R]、距離 [D]) と出力 (分 [M]) 間のつながりが作成されます。

入力 ([W]、[T]、[R]、[D]) の図

とはいえ、どうすればコンピューターにデータの傾向を気付かせ、予想もできるようになるでしょうか? 方法の 1 つとして、guess-and-check (推測と確認) 方法があります。手順は次のとおりです。

ステップ 1: すべての入力に「加重」を割り当てます。これは、入力が出力に与える影響の強さを表す数値です。すべてに対して同じ加重で始めてもかまいません。

ステップ 2: 加重と既存のデータ (および、ここでは説明しない巧妙な数学) を使用して、牛乳を買いに行く所要時間 (分) を予想します。予想と履歴データを比較することができます。かなりずれているでしょうが、問題ありません。

ステップ 3: コンピューターに、各入力に対する新しい加重を推測させ、ある入力の重要度を他の入力よりも少し高くします。たとえば、雨が降っているかどうかよりも時間帯を重要にすることができます。

ステップ 4: 計算を再実行して、新しい加重によって予想がより適切になっているかを確認します。適切になっていれば、加重がより適合し、正しい方向に変化していることになります。

ステップ 5: ステップ 3 と 4 を繰り返し、これ以上予想を最適化できなくなるまでコンピューターに加重を調整させます。

この時点で、コンピューターは各入力の加重を決定しました。加重を「入力が出力に接続されている強度」と考えると、線の太さを使用して接続の加重を表す図を作成できます。

出力に接続された入力ノードの図。

この例では、時間帯が最も強く関係しているようですが、どうやら雨ではたいした違いはないようです。

この推測と確認のプロセスにより、牛乳の購入のモデル (または模型) が作成されました。いわば模型のボートのように、プールに持って行って浮くかどうかを確認することができます。つまり、現実の世界でテストするということです。そのため、次に何回か牛乳を買いに行くときに、出かける前にモデルにどれくらい時間がかかるかを予想させます。何度も連続して適切であれば、その後は毎回、自信を持って予測させることができます。

作業台で小さな模型のヨットの部品を組み立てているロボット。2D ベクトルの技法で描かれている絵。

[stability.ai の DreamStudio を使用し、「ロボットが作業台で小さな模型のヨットの部品を組み立てている。絵は 2D ベクトルの技法で描かれている」というプロンプトで AI が生成した画像。]

適切なジョブに適切なデータを使用する

これは、AI モデルを作成するためにトレーニングを使用する非常に単純な例ですが、いくつかの重要なアイデアに言及しています。第 1 に、これは機械学習 (ML) の例であり、アルゴリズムを手作業で作成するのではなく、大量のデータを使用してモデルをトレーニングし、予測を作成するプロセスです。

第 2 に、すべてのデータが同じとは限りません。牛乳の購入の例では、スプレッドシートは構造化データと呼ばれるものです。適切に整理されており、すべての列にラベルが付けられているため、すべてのセルの重要性がわかります。一方、非構造化データはニュース記事やラベルのない画像ファイルのようなものです。利用可能なデータの種類は、実行できるトレーニングの種類に影響します。

第 3 に、スプレッドシートの構造化データによって、コンピューターは教師あり学習を行うことができます。教師ありと見なされるのは、すべての入力データに検証可能な一致する予想出力があることを確認できるためです。反対に、非構造化データは教師なし学習に使用されます。教師なし学習では、AI は何を探しているのかよくわからずに、データのつながりを見つけようとします。

コンピューターに入力ごとに 1 つの加重を計算させるのは、トレーニング方法の 1 つにすぎません。ただし、多くの場合、相互接続されたシステムは 1 対 1 の加重では表現できないほど複雑です。幸い、次の単元で学ぶように、トレーニングの方法は他にもあります。