機械学習とは? データから規則を見つけるしくみ
機械学習は、コンピュータに守らせる規則を人が書く代わりに、たくさんの例から規則を見つけさせるしくみです。中身は、調整できる数(パラメータ)を持つ計算で、例に対する誤りが小さくなるようにその数を少しずつ直していきます。うまく学べたかは、学習に使っていない新しいデータで確かめます。
この記事でわかること
- 人が規則を書くプログラムと、データから規則を見つける機械学習の違い
- 「学習」とは数を直すこと: 直線を3つの点に合わせる計算で確かめる
- 教師あり学習・教師なし学習・強化学習の違い
- 過学習と、データを練習用とテスト用に分ける理由
- 正解率だけでは足りない理由と、適合率・再現率
- ニューラルネットワーク、使われる場面、限界とリスク
前提知識: 特にありません。計算の例は、かけ算と引き算で追えます。ITパスポート試験や基本情報技術者試験の言葉を、イメージからつかみたい人にも向けています。
身近なところでは
メールソフトは、迷惑メールを自動で別のフォルダに分けます。動画や買い物のサイトは、「あなたへのおすすめ」を並べます。スマホの写真アプリは、「犬」と検索すると犬の写真を探し出します。
これらの多くに、機械学習が使われています。資格試験でも学ぶ話題で、ITパスポート試験の出題範囲(シラバス)にも、教師あり学習や過学習などの言葉が並んでいます。
規則を人が書くか、データから見つけるか
迷惑メールを見分けるプログラムを作るとします。ふつうのやり方では、人が規則を書きます。例えば「件名に『当選』があれば迷惑メール」「知らない送り主からのリンクだけのメールは迷惑メール」といった具合です。
ところが、この方法はすぐ行き詰まります。送る側は、規則をすり抜けるように言葉を変えてくるからです。「当選」を「当.選」と書かれただけで、規則は効かなくなります。
そこで、発想を逆にします。「これは迷惑メール」「これはふつうのメール」と正解をつけた例を、たくさん用意します。そして、どんな特徴があると迷惑メールらしいかを、コンピュータに例から見つけさせます。これが機械学習です。2002年にプログラマーのポール・グレアムが、単語の出方を例から学んで見分ける方法を紹介し、広く読まれました。
②でできる「規則」は人の読める文ではなく、たくさんの特徴をどれだけ重く見るかを表す数の組です。1つの言葉だけに頼らないので、言葉を少し変えられても、ほかの特徴から迷惑メールらしさを判断できます。新しい手口の例を加えて学び直せば、規則も新しくなります。
モデル: 調整できる数を持つ計算
機械学習では、入力から答えを出す計算のしくみを「モデル」と呼びます。モデルの中には、値を変えられる数が入っています。この数を「パラメータ」と呼びます。パラメータの値しだいで、同じ入力でも出てくる答えが変わります。
いちばん簡単な例で考えます。荷物を運ぶのにかかる時間を、荷物の個数から予測したいとします。モデルを「時間 = a × 個数」と決めます。ここで a が、調整できるただ1つのパラメータです。a が2なら、3個の荷物は6分と予測します。
どの a がよいかは、人ではなく実際の記録から決めます。記録は次の3つだとします。1個のとき3分、2個のとき5分、3個のとき5分です。この3つの点に、なるべく合う a を探すのが、このモデルの「学習」です。
学習: 誤差が小さくなるように数を直す
まず、予測がどれだけ外れているかを数で表します。予測と実際の差を「誤差」と呼びます。差はプラスにもマイナスにもなり、足すと打ち消し合ってしまいます。そこで、差を2乗して(2なら2×2=4)から足し合わせ、外れ具合の合計とします。
a = 1 のとき、予測は1分・2分・3分です。実際の3分・5分・5分との差は2・3・2なので、2乗して足すと4+9+4=17です。a = 2 のときは、予測が2分・4分・6分で、差は1・1・−1です。2乗して足すと1+1+1=3で、ずっと小さくなりました。
では、a をどう直していけばよいでしょうか。よく使われるのが勾配降下法です。勾配は「坂の傾き」のことです。a を少し変えたとき、誤差の合計がどちらに、どれだけ変わるかを調べます。そして、誤差が減る向きへ、傾きが急なほど大きく a を動かします。
この例で、a = 1 から始めてみます。傾きは微分という数学で求めます。計算は省きますが、a = 1 での傾きは−28です。マイナスは「a を増やすと誤差が減る」という意味です。28に、人が決めた小さな数(ここでは0.02)を掛けると0.56です。その分だけ a を増やすと、a は1.56に、誤差の合計は約5.7になります。同じことをくり返すと、a は1.81、1.91と2に近づき、誤差は3.5、3.1と3に近づきます。
この例では、いちばんよい a は2で、そのときの誤差の合計は3です。このモデルの直線は、必ず「0個なら0分」の点を通ります。3つの点はそのような1本の直線の上にぴったりとは並ばないので、誤差は0になりません。
3つの学び方
機械学習は、学ぶときに何を手がかりにするかで、大きく3つに分けられます。
正解つきの例から学ぶ: 教師あり学習
迷惑メールの例や荷物の例のように、入力と正解の組から学ぶ方法を教師あり学習と呼びます。正解を教えてくれる「先生」がいる、という意味です。迷惑メールかどうかのように、決まった種類のどれかを当てるものを「分類」と呼びます。荷物の時間のように、数の大きさを当てるものは「回帰」と呼びます。
正解なしでまとまりを見つける: 教師なし学習
正解をつけていないデータだけから、似たもの同士のまとまりを見つける方法もあります。これを教師なし学習と呼びます。例えば、買い物の記録から、よく似た買い方をするお客さんのグループを見つけます。似たものをまとめることを「クラスタリング」と呼び、k平均法が代表的な方法です。見つかったグループが何を意味するかは、人が解釈します。
行動の結果の点数から学ぶ: 強化学習
3つめは、行動を試して、その結果につく点数を手がかりに学ぶ方法です。この点数を「報酬」と呼び、この学び方を強化学習と呼びます。1手ごとの正解は教えず、勝ち負けのような結果から、よい行動の選び方を試行錯誤で見つけます。囲碁のAI「AlphaGo」は、人の棋譜から学んだ後、自分どうしの対局による強化学習で強くなりました。2016年3月には、トップ棋士の李世乭(イ・セドル)九段に4勝1敗で勝っています。
練習用とテスト用にデータを分ける
学習で誤差を小さくできても、それだけで「よいモデル」とはいえません。本当に知りたいのは、学習に使っていない新しいデータ(明日のメールなど)で当たるかどうかです。
そこで、集めたデータを前もって分けておきます。パラメータを直す「訓練用」、モデルの設定を比べて選ぶ「検証用」、最後に一度だけ成績を測る「テスト用」の3つです。設定とは、例えばモデルの複雑さや、学習をいつ止めるかなどです。テスト用のデータを見ながら設定を何度も直すと、テストの成績が実力より高く出てしまいます。
分ける理由の1つが、過学習です。モデルが訓練用データに合わせすぎて、たまたまのばらつきまで覚えてしまう状態です。訓練用では誤差がとても小さいのに、新しいデータでは大きく外れます。パラメータが多い複雑なモデルを、少ないデータで学習させると起きやすくなります。
成績の測り方: 正解率だけでは足りない
分類のモデルの成績は、予測と実際の組み合わせごとに件数を数えた表で調べます。この表を混同行列と呼びます。迷惑メールの判定で、テスト用のメール1,000通を試した例を見てみます。1,000通のうち、実際の迷惑メールは100通です(数は説明のために作った例です)。
| 迷惑と予測 | ふつうと予測 | |
|---|---|---|
| 実際は迷惑(100通) | 90(正しく発見) | 10(見逃し) |
| 実際はふつう(900通) | 30(誤って迷惑に) | 870(正しくふつう) |
全体のうち当たった割合を「正解率」と呼びます。当たったのは90+870=960通なので、960÷1,000で96%です。でも、どんな外れ方をしたかは、この数字ではわかりません。
そこで、外れ方を2つに分けて見ます。「迷惑」と予測した120通のうち、本当に迷惑だった割合は90÷120で75%です。これを適合率と呼びます。残りの25%は、ふつうのメールを迷惑フォルダに入れてしまう誤りです。
もう1つは、実際の迷惑メール100通のうち、見つけられた割合です。90÷100で90%になり、これを再現率と呼びます。「迷惑」と判定する基準を厳しくすると、適合率は上がり、再現率は下がりやすくなります。どちらを重く見るかは目的で決めます。迷惑メールなら大事なメールを失わないよう適合率を、病気の検査なら見逃さないよう再現率を重視します。
ニューラルネットワークとディープラーニング
荷物の例のモデルは、パラメータが1つの直線でした。画像や文章のような複雑なものを扱うには、もっと表現力のあるモデルが必要です。今よく使われるのが「ニューラルネットワーク」です。名前は脳の神経細胞から来ていますが、中身は数の計算です。
ニューラルネットワークの基本の部品は、入力にそれぞれ重み(パラメータ)を掛けて足し合わせる計算です。ただし、掛けて足すだけを何段重ねても、まとめると1段の掛けて足すと同じことしかできません。そこで各段の後に、「マイナスの値は0にする」のような、直線ではない処理をはさみます。この処理をする関数を活性化関数と呼びます。
この「掛けて足す、直線でない処理」の段を何層も重ねたものを、ディープラーニング(深層学習)と呼びます。「深い」は層が多いことを指します。層を重ねると、画像なら線や角、その組み合わせ、物の部分と、段階的に特徴をとらえられます。学習のしかたは荷物の例と同じで、すべての重みを誤差が減る向きへ少しずつ直します。大量の重みの傾きを、出口の側から順にまとめて求める方法を、誤差逆伝播法(バックプロパゲーション)と呼びます。
この掛けて足す計算は、数の表(行列)の計算としてまとめて行えます。それを速く行う部品は「なぜAIにGPUが使われるの?」と「NPUとは?」で説明しています。
どこで使われている?
- おすすめ: 見た動画や買った商品の記録から、その人が好みそうなものを予測します。
- 画像の認識: 写真の中の物や顔を見分けます。工場で製品の傷を見つける検査にも使われます。
- 翻訳: Google翻訳は2016年9月、中国語から英語への訳をニューラルネットワークの方式に切り替えました。11月には日本語などにも広げています。
- 不正の検知: クレジットカードの使われ方の記録から、ふだんと違う怪しい取引を見つけます。
限界とリスク
1つめは、データの偏りがそのままモデルに入ることです。2018年の研究「Gender Shades」は、顔の画像から性別を判定する3つの商用システムを調べました。誤りの割合は、肌の色の薄い男性では最大0.8%でしたが、肌の色の濃い女性では最大34.7%でした。モデルは、学んだデータに少ない人たちのことを、うまく扱えないことがあります。
2つめは、たくさんのデータが要ることです。例えば画像の認識の大会「ILSVRC」(2012〜2017年)では、約128万枚の画像が訓練用に使われました。1枚ずつに、1,000種類のどれかという正解を人がつけています。正解つきのデータを集める手間と費用は、機械学習の大きな壁です。
3つめは、なぜその答えになったかを説明しにくいことです。ディープラーニングのモデルの「規則」は、何百万個以上の数の組なので、人が読んで理由をたどるのは簡単ではありません。米国の国立標準技術研究所(NIST)も2023年1月の手引きで、説明できることを信頼できるAIの特性に挙げています。融資や採用のように人に関わる判断では、特に注意が要ります。
大規模言語モデルとの関係
文章を作る生成AIの中心にある大規模言語モデルも、機械学習のモデルです。中身はとても大きなニューラルネットワークで、パラメータが数千億個に達するものもあります。文章の続きを予測して、外れたらパラメータを直す、という学習をくり返して作られます。
「誤差が小さくなるように数を直す」という基本は、荷物の例と同じです。くわしくは「生成AIはどう動く?」で説明しています。
よくある誤解
誤解: AIと機械学習は同じもの
実際は、AI(人工知能)は、人の知的な働きをコンピュータで行おうとする技術全体を指す、広い言葉です。機械学習はその作り方の1つで、ディープラーニングは機械学習の中の1つの方法です。例えば、専門家の知識を人が規則として書き込む「エキスパートシステム」は、AIですが機械学習ではありません。1980年代に広まった方式です。最近のAIの多くが機械学習で作られているので、同じものとして語られがちです。
誤解: データを増やせば、何でも解決する
実際は、データを増やすと過学習は起きにくくなりますが、すべては解決しません。偏ったデータをいくら増やしても、偏りは残ります。正解のつけ間違いが多ければ、その間違いも学びます。また、使う場面と違う状況のデータ(例えば昼の写真だけ)を増やしても、夜の写真で当たるようにはなりません。量だけでなく、質と中身が大事です。
誤解: 正解率99%なら、すばらしいモデルだ
実際は、データの中身が偏っていると、正解率は当てになりません。カードの取引1万件のうち、不正が100件(1%)だったとします。何も考えずに「すべて正常」と答えるモデルでも、9,900件が当たるので正解率は99%です。でも、不正は1件も見つけられず、再現率は0%です。数の少ない側を見つけることが目的なら、適合率と再現率を確かめる必要があります。
数字で見る
| 項目 | 数字 | 補足 |
|---|---|---|
| 迷惑メールの例の正解率 | 96% | 適合率75%、再現率90%。この記事の作った例 |
| 「すべて正常」と答える不正検知の正解率 | 99% | 不正が1%のとき。再現率は0% |
| ILSVRCの分類の訓練用画像 | 約128万枚(1,000種類) | 2012〜2017年の大会 |
| 顔画像による性別判定の誤りの割合 | 最大34.7%と最大0.8% | 肌の色の濃い女性と、薄い男性。2018年の研究 |
上の2行は説明のために作った例で、下の2行は研究や記録で確かめられる数字です。
もっと詳しく学ぶ
- 違いを表で見る: 教師あり学習・教師なし学習・強化学習の違い、AIの学習と推論の違い
- 数字で試す: 混同行列の計算ツール(F値などのほかの指標も計算できます)
- 評価と過学習の用語: 交差検証(データを入れ替えて成績を測る)、正則化(過学習を抑える工夫)
- モデルと使い方の用語: CNN(画像によく使う)、転移学習、推論(学習済みのモデルで答えを出す計算)