機械学習の手法を用いてアルゴリズムを効果的にトレーニングするための基本手順を学びましょう。この包括的なガイドでは、最適なパフォーマンスを実現するために必要な基礎原理、データ準備、モデル選択、評価手法について解説します。機械学習モデルの精度と効率を高めるためのベストプラクティスや高度な戦略を習得しましょう。さまざまな分野におけるアルゴリズムのトレーニングに関する理解と実践力を高めましょう。
Table of Contents
アルゴリズムの学習入門
技術が進歩するにつれて、私たちの生活様式も変化しています。概して、技術は私たちの生活をより便利にするためにあるものです。例えば、顔認証でスマートフォンのロックが解除されたり、宅配便の配達員が玄関先に到着するのを追跡できたり、ハイキング中に見かける葉や鳥の種類を特定してくれるアプリまであることを考えてみてください。
テクノロジーは私たちの日常生活を変えるのと同様に、研究の進め方も変えています。しかし、研究者としては、アルゴリズムがどのような働きをしているのかを理解したいものです。なぜなら、鳥の識別アプリが鳥の種類を特定したり、ピザが届いたからとソファから立ち上がるようアプリが促したりする際、私たちが理解している以上に多くのことが起こっているからです。
「機械学習」「画像処理」「ニューラルネットワーク」といった言葉を耳にしたことがある人は多いでしょう。その中には、「人工知能」という不気味な響きを帯びたものもあります。機械が何らかの形で自ら学習するという考え方は、人間を凌駕してしまうかもしれないという恐ろしい想像を連想させます。
一方で、私たち誰もが、特にイライラするような体験をした後、自分の「スマート」なスマホやテレビ、スマートウォッチに向かって怒鳴りつけ、そのデバイスがまったくスマートではないと罵ったことがあるはずです。機械がどのように学習するのかを理解することで、この技術を効率的に活用できるようになります。そして、まさにそれがこのブログの目的です。

この記事では、機械学習の概念を具現化するためにアルゴリズムを学習させるさまざまな手法について詳しく解説します。大まかに分類すると、アルゴリズムの学習方法には「教師あり学習」と「教師なし学習」の2つがあります。
アルゴリズムのトレーニング方法 ― 教師あり学習と教師なし学習の手法
チョコレートを分類するアルゴリズムを訓練しなければならないと想像してみてください――そんなこと、誰だってやりたいですよね? そこでまず、何がチョコレートで何がそうではないかを見分けられるようにアルゴリズムを訓練します。その後、チョコレートバーが持つ可能性のあるあらゆるバリエーションを特定できるよう、さらに別のアルゴリズムを訓練します。
最初の「問題」、つまり何がチョコレートで何がそうではないかを見分けるためには、まずアルゴリズムにさまざまな食品に関する大量のデータを入力することから始められます。最寄りのスーパーマーケットに行き、さまざまな食品のパッケージを手に取り、その原材料をアルゴリズムに入力すればよいのです。そして、原材料に「カカオ」が含まれているパッケージにはすべて「チョコレート」というラベルを付け、それ以外には「チョコレートではない」というラベルを付けることができます。
アルゴリズムがあなたから学習するのは、次のようなことです。つまり、「原材料表示にココアが含まれていれば、その製品はチョコレートとして分類できる」ということです。これは単純なルールですが、誤検知(偽陽性)を引き起こす可能性があります。例えば、チョコレートでコーティングされたナッツだけの場合や、ドリンク用チョコレートのパックの場合はどうでしょうか? これらをチョコレートバーと同じカテゴリーに分類されたくはないでしょう。そこで、アルゴリズムにもっと洗練されたルールを与えてみることにします。例えば、固形の板状であること、一定の重量があること、あるいは人間のコーダーが「有効なデザート候補」や「有効なギフト候補」などとして分類する必要があるといったルールです。
基準を追加していくにつれて、アルゴリズムは学習していきます。アルゴリズムはあなたが与えた基準から学び、あなたはそれが何を学ぶかを監督しています。これが「教師あり学習」と呼ばれる所以です。アルゴリズムはすぐに、地元のスーパーマーケットから提供したパッケージのリストにはない新しい商品を見ても、それが「チョコレート」であるかどうかを識別できるほど賢くなります。この判断は、あなたから学んだ基準のみに基づいて行われます。 つまり、もしルビーチョコレートを学習データとして与えなければ、アルゴリズムはルビーチョコレートをチョコレートとして分類しません。もし人間のプログラマーがホワイトチョコレートを嫌っていて、それを有効なギフトの選択肢として分類しないのであれば、アルゴリズムも同様に分類しないでしょう。

では、2つ目の問題を想像してみてください。アルゴリズムに、チョコレートバーのあらゆる種類のフィリングやフレーバーを分類させたいとします。またしても、地元のスーパーマーケットの陳列棚から一部をピックアップすることになるでしょう――ナッツ入り、オレンジ味、レーズン入り、リキュール入りなどがありますが、これらは決して網羅的なリストではありません。遭遇したすべてのチョコレートをそのフィリングに基づいて分類できる教師あり学習アルゴリズムを作成するのは、非常に骨の折れる作業となるでしょう。
私なら、デンマークに移住する前に、自分のアルゴリズムにあらゆる種類のリコリスフィリングをすべて与えようとは考えもしなかったでしょう。つまり、私の教師あり学習アルゴリズムでは、それを分類できなかったはずです。 このような場合、私は教師なし学習アルゴリズムを作成することを選ぶかもしれない。そのためには、見つけられる限り多様なデータをアルゴリズムに与えることになるだろう。つまり、私が住んだことのある国々のチョコレート、訪れたことのある国々のチョコレート、友人が旅行した国々のチョコレートなどだ。
これらすべてを用いてアルゴリズムを学習させることで、チョコレートバーに詰められるあらゆるフィリングを網羅するカテゴリーを、アルゴリズムが見つけ出してくれることを期待しています。私が最初に設定した「フルーツ」「ナッツ」「リキュール」といったカテゴリーに落ち着くかもしれませんし、あるいは学習に使用したチョコレートの全種類を網羅する10のカテゴリーに落ち着くかもしれません。いずれにせよ、私はその学習過程を知ることはできず、最終的な分類結果だけがわかることになります。
こうした学習プロセスはブラックボックスのように感じられるかもしれませんが、それでもアルゴリズムに与えたデータに基づいていることを忘れてはなりません。この例で言えば、チョコレートの分類を学習させるために材料を指定した場合、アルゴリズムが判断を下す際に利用できるのはそれだけです。どのチョコレートが新築祝いのプレゼントに適しているかといった基準で、突然分類を行うことはできません。私たちがしていることは、考えられるあらゆるカテゴリーや、カテゴリーの例外をすべてコーディングするという作業を、単に容易にしているに過ぎないのです。
この知見をiMotionsに応用する
さまざまなアルゴリズムを組み合わせ始めると、問題に対してより賢い解決策を構築できるようになります。特定の機能(「完璧なチョコレート選びアプリ」など)を実現するためにアルゴリズム群を学習させるプロセスを、漏斗のようなものと捉えてみてください。まず、「チョコレートの基本的な構成要素とは何か」といった大きな問いを扱うアルゴリズムの学習から始めます。 次に、チョコレートを構成する要素についてさらに深く掘り下げる別のアルゴリズムを学習させ、その繰り返しによって、アルゴリズムの分析を徐々に細分化していきます。そうすることで、「誰かに贈るのに最適なチョコレートとは何か?」という非常に複雑な問題を解決できるようになるのです。
iMotionsでは、洗練された機械学習アルゴリズムを用いて解決したい、数多くの難題に取り組んでいます。当社のソリューションの多くには機械学習が活用されており、例えばウェブカメラを用いたアイトラッキング向けの分類アルゴリズムの一つであるマルコフモデルや、表情分析のパートナー企業が提供するアルゴリズムの一部にも機械学習が採用されています。ここでは、iMotionsプラットフォーム、特にウェブカメラを用いたアイトラッキング機能に焦点を当て、機械学習がどのようにアイトラッキングを計測し、データ品質を向上させているのかを見ていきましょう。
iMotionsでオンライン調査を作成する際、リンクを介して数百人の参加者に送信し、ウェブカメラを通じて彼らの眼球運動(および表情)を収集するオプションがあります。これは非常に複雑に思えるかもしれませんが、実際には、一連の機械学習アルゴリズムを段階的に適用しているに過ぎません。
ステップ1:虹彩はどこにある?
当社のアルゴリズムが最初に行うのは、参加者の顔がどこにあるかを特定することです。これは、スマートフォンのロック解除時のように、あなたの顔を個別に識別するということではありません。さまざまなアルゴリズムがどのような目的で学習されているか、覚えていますか?このアルゴリズムは単に人間の顔を識別するだけです――それが顔かどうかを判断するだけです。
これは、調査を開始する前の段階で、オンラインプラットフォームが参加者が正しく座っているかを確認するための「ヘッドチェック」を行う際にも確認できます。顔が認識されると、当社のアルゴリズムは顔の各部位を特定することができます。このステップがなければ、アルゴリズムは目をどこで探せばよいのか判断できません。つまり、アルゴリズムは瞳孔を識別するように学習されており、それによって画面上のどこを見ているかに関わらず、つまりカメラが異なる角度から捉えた瞳孔であっても、瞳孔を識別することが可能になるのです。
繰り返しになりますが、これらのアルゴリズムは、通常カメラをまっすぐ見ている人々の、比較的質の高いデータを用いて学習されているということを理解しておくことが重要です。したがって、参加者が薄暗い部屋でソファに横になり、ノートパソコンを腹の上に載せているような状況では、アルゴリズムは顔を識別することさえ困難であり、数ピクセル幅の虹彩の位置を特定することはなおさら難しいでしょう。

ステップ2:キャリブレーション
虹彩を正確に特定することは重要です。なぜなら、その正確さが次のステップであるキャリブレーションの精度を左右するからです。次に紹介するアルゴリズムは、キャリブレーションポイントから取得したデータを用いて、この被験者が画面上のさまざまな位置を見たときに虹彩がどのように見えるかを算出します。
キャリブレーションでは、画面上のさまざまな位置にドットを表示し、視野全体に広がるこれらの点に視線を固定した際の目の位置をアルゴリズムが学習します。これにより、参加者が実際の刺激を閲覧している際に、画面に対する目の相対的な位置を算出できるようになります。そのため、推奨されるキャリブレーション手順に従うことが重要です。そうすることで、アルゴリズムが参加者の眼球運動を推定するために必要な情報を取得できるようになるからです。
ステップ3:固定の検出
ウェブカメラのみを用いてアイトラッキングデータを収集すること自体がすでに快挙ではありますが、この種のデータには依然として多くのノイズが含まれているという事実を軽視することはできません。従来の注視とサッカードの分類手法をこのセンサーデータに適用してしまうと、ノイズを誤って注視として分類してしまうという過ちを犯してしまうでしょう。したがって、本研究の分析を行う前に、注視の分類という目的で、最後にもう一度機械学習に頼る必要があります。
我々は、ウェブカメラを用いたアイトラッキングデータから視線固定を分類するためにマルコフモデルを使用しています。具体的には、アルゴリズムに対して視線固定とサッカードが何であるか(それぞれ、画面上で互いに近接した遅いデータポイント、あるいは長距離にわたる速い動き)を定義し、手元のデータセットの中からこれらを探させるようにしています。 つまり、このアルゴリズムは(1)被験者ごとに注視の厳密な定義(どの程度の速度で、どの程度近接しているか)を調整しつつ、(2)データセットから「学習」することができない従来の分類システムよりも、ノイズをより的確に識別することができる。
視線の固定を隣接する点の集合として定義する従来の持続時間分散フィルターでは、低レベルの空間ノイズを検出できない可能性がある。また、速い動きを単純にサッカードとして分類する速度ベースのフィルターでは、大きく急激なドリフトを誤って分類してしまう恐れがある。一方、マルコフモデルは被験者ごとにこうした異常を検出する能力がはるかに優れており、真の視線固定を検出できる可能性を高めてくれる。
当社のウェブカメラを用いた視線追跡技術は、まるで魔法のブラックボックスのように見えるかもしれませんが、実際には、それぞれが異なるアルゴリズムの集合体に過ぎないことは、すでにご理解いただけたはずです。これらのアルゴリズムは、期待される高品質なデータが与えられなければ誤動作を起こす可能性があり、視線追跡を深く理解している有能な開発者たちによって、プロセスの各ステップを一つひとつ学習させられているに過ぎません。
