情報ラボ > 機械学習
コンピュータが「学ぶ」とは、どういうことなのでしょうか。
それぞれのグループの点を、いくつか置いてみてください(各3個以上)。
青い点で学習し、オレンジの点(学習に使っていないデータ)で答え合わせをします。
これまでのプログラムは、人が手順をすべて書いていました。「もし気温が30度以上なら」「その次にこれを計算して」というように、条件と処理を明示します。
しかし、うまく書けない問題があります。たとえば「写真に写っているのが猫かどうか」を判定するプログラム。猫の特徴を条件文で書き出そうとしても、耳の形も毛の色も姿勢も無数にあり、書き切れません。
そこで発想を変えます。手順を教えるかわりに、大量の例を見せる。 コンピュータが例の中から規則性を見つけ出し、判断の基準を自分で作る。これが機械学習です。
機械学習は、大きく2つの段階に分かれます。
| 段階 | すること |
|---|---|
| 学習(トレーニング) | 大量のデータから規則性を見つけ、モデルを作る |
| 推論(予測) | できたモデルを使って、新しいデータを判断する |
学習には時間と計算資源がかかりますが、一度モデルができれば、推論は高速に行えます。スマートフォンの顔認証が一瞬で終わるのは、学習済みのモデルを使って推論だけをしているからです。
データに正解のラベルをつけて学習させる方法です。「この写真は猫」「これは犬」と教えていきます。
用途は2つに分かれます。分類は、猫か犬かのようにグループを当てるもの。回帰は、明日の気温のように数値を予測するものです。
上のツールの1つ目は、この教師あり学習の分類にあたります。2つのグループの点を教えると、境界線が引かれ、新しい点がどちらに属するかを予測できるようになります。
正解を教えず、データの構造だけから規則性を見つけさせる方法です。「似たものどうしをまとめて」と指示すると、コンピュータが自分でグループを作ります。
何がどのグループかは、あらかじめ決まっていません。結果を見て人が意味づけをします。顧客をいくつかのタイプに分ける、といった用途で使われます。
行動に対して報酬を与え、報酬が最大になる行動を試行錯誤の中から見つけさせる方法です。正解は教えず、良かったか悪かったかだけを伝えます。
ゲームで高得点を取る、ロボットが歩けるようになる、といった場面で使われます。囲碁で人間の名人に勝ったプログラムも、この方法を中心にしています。
機械学習で最も注意すべき問題が、過学習(オーバーフィッティング)です。
モデルを複雑にすればするほど、学習用のデータには合うようになります。極端に複雑にすれば、すべての点をぴったり通る線が引けます。一見、完璧に見えます。
しかし、それはデータの偶然のばらつきまで覚えてしまった状態です。新しいデータを与えると、まったく外れた予測をします。
試験勉強に例えるなら、過去問の答えを丸暗記した状態です。同じ問題なら満点ですが、少し変えられると解けません。本質を理解していないからです。
上のツールの2つ目で、この現象を確かめられます。モデルを複雑にすると学習データの誤差はどんどん減りますが、見せていないテストデータの誤差は途中から増えていきます。
逆に、モデルが単純すぎて規則性をとらえきれない状態は、未学習(アンダーフィッティング)といいます。ちょうどよい複雑さを見つけることが、機械学習の重要な作業です。
機械学習の性能は、アルゴリズムよりもデータで決まる面が大きくあります。
特に注意すべきが、データのかたよりです。学習に使ったデータがかたよっていれば、モデルもかたよります。特定の人種の顔写真が少ないデータで学習した顔認識は、その人種の認識精度が下がります。過去の採用データで学習した選考システムは、過去の差別をそのまま再現します。
これはアルゴリズムの誤りではありません。与えられたデータに忠実に学んだ結果です。だからこそ、どんなデータで学習させるかを慎重に考える必要があります。
もう一つの課題が、判断の理由が分からないことです。特に深層学習(ディープラーニング)では、モデルの内部が複雑すぎて、なぜその答えを出したのか人間には追えません。これをブラックボックス問題といいます。
「なんとなく正しそう」では困る場面があります。融資の審査で落とされた人に理由を説明できない、医療診断の根拠を示せない。こうした問題に対応するため、判断の理由を示せる技術の研究が進められています。