スマートフォン版で表示

現在、お知らせはありません。

教師あり学習のイメージ

教師あり学習とは?概要や手法など機械学習の基礎となる知識を解説

最近、AI(Artificial Intelligence:人工知能)のニュースをよく耳にするようになりました。AIを実現するにはさまざまな手法があります。ここ数年、特に話題に上がっている「ディープラーニング」(Deep Learning:深層学習)は大変有名ですが、AIのカギとなる「機械学習」(Machine Learning)も非常に重要な技術といえます。ここでは、この機械学習を支える「教師あり学習」について詳しく解説します。

機械学習の基礎については以下の記事で詳しく解説しているため、あわせてご覧ください。

機械学習とは?種類やできること、プログラムとの違いを解説

エンジニアとしての市場価値を知るために

年収査定を受ける(無料)
シェアする
このエントリーをはてなブックマークに追加

そもそも教師あり学習とは何か?

「教師あり学習」(Supervised Learning)とは、正解となる答えが含まれたラベル付きのデータを使って、最適なモデル(関係式や関数)を導き出す手法で、AIという大枠の中にある機械学習の代表的な学習法という位置づけになります。

この節では、教師あり学習を説明する前に、大前提となる機械学習について簡単に触れておきましょう。機械学習は、与えられた入力データと出力データから、その関係性を示すモデルをコンピュータが自動的に作る手法です。ここで入力データは「説明変数」、正解となる出力データは「目的変数」とも呼ばれます。

そして大量のデータを入力し、正解データと比べて、より精度の高いモデルになるように調整していきます。もちろん人間でもモデルを導き出すことは可能ですが、膨大なデータから規則性や関係性を人手で調べるには限界があります。機械学習は、このような作業を高性能なコンピュータによって高速に処理し、データに潜むルールを自動的に見つけることができます。

エンジニアとしての市場価値を知るために

年収査定を受ける(無料)

機械学習の種類としての教師あり学習の目的

機械学習の種類と、ほかの手法と教師あり学習の違い

前節で「教師あり学習」は機械学習の一種と説明しましたが、このほかにも機械学習には「教師なし学習」(Unsupervised Learning)や「強化学習」(Reinforcement Learning)といった手法もあります。これらの中で教師あり学習は、現在最も利用頻度が高いといわれています。

教師あり学習を行うためには、あらかじめ正解となる答えをラベリングして、ペアとなるデータセットを大量に用意しておきます。そこから関係性を表すモデルを作ります。

ただし、モデルを作って終わりでなく、次に何か新しい未知のデータを入力したときに、正解となる結果を高精度に導き出す(予測する)ことが最終ゴールになります。教師あり学習は、画像や音声の認識、機械翻訳、自然言語処理、株価予測、故障品・異常検知など、幅広い分野で適用されています。

一方、教師なし学習は、もともと正解が決まっていない(ラベリングされない)入力データを使い、データの特徴から似たようなデータ同士をまとめる場合(クラスタリングと呼ぶ)などに使われます。

また強化学習は、出力される結果に対して報酬、点数(スコア)をつけて、その報酬が最大になるように学習させ、最適な結果を導き出します。将棋や囲碁などの対局でAIが人間に勝てたのは、強化学習によるところが大きかったのです。

関連記事 : 教師なし学習とは?教師あり学習との違いや概要、手法を解説
関連記事 : 強化学習とは?機械学習との違いなどの用語解説や活用事例などをご紹介

エンジニアとしての市場価値を知るために

年収査定を受ける(無料)

教師あり学習が扱う問題と代表的な事例

教師あり学習が扱う問題

ここから教師あり学習が扱う問題と、代表的な事例について詳しく説明していきましょう。

教師あり学習が扱う代表的な問題は「回帰」(Regression)と「分類」(Classification)に大別されます。

教師あり学習は、連続数値を予測する「回帰」と、クラスに分ける「分類」に大別できる

前述の目的変数が、正解となる出力データが連続する数値の場合を回帰、離散的(飛び飛び)なラベルの場合を分類と呼びます。

教師あり学習は、目的変数(出力データ)の種類によって、回帰と分類に分けられる

回帰分析の代表的な事例

回帰の代表例としては、不動産の価格予測などがあります。立地(最寄り駅や駅からの距離)、広さ、部屋数(間取り)、階数、築年数などの入力と、販売価格の出力をセットにしてモデルを作ると、「物件をいくらで販売すればよいのか?」といった予測に使えます。このとき販売価格(目的変数)は、連続した数値になります。

また似たような例としては、企業が店舗を出店するときに、立地条件、来客数、商品数など、さまざまなデータを条件として入力し、その店舗の売り上げを予測することにも利用されます。

分類の代表的な事例

次に分類の代表例としては、犬猫の画像分類が分かりやすいでしょう。動物の画像データに対して、これは犬/猫というように、あらかじめ分類された正解(連続した数値でなく離散的な出力)をラベリングし、ペアとなるデータを大量に用意しておきます。

そこから何らかの関係性(犬と猫の特徴量)を見つけるモデルを作り、次に新しい未知の画像が入力されたときに、それが犬か猫かどうかを判定して分類できるようにするわけです。

このほか分かりやすい分類例としては、着信したメールが「スパムメールか」「正常なメールなのか」を判断する場合にも用いられます。あらかじめ迷惑メールのパターンを学習しておき、受信したメールがどちらに該当するのかを判断して振り分けます。

エンジニアとしての市場価値を知るために

年収査定を受ける(無料)

予測を行うための回帰分析の仕組み

回帰問題を解くための方法

回帰分析の目的は、連続するデータの傾向をベースにしたモデルを作り、未知の入力データから結果を導いて予測することです。

このような回帰問題を解く方法として「単回帰分析」と「重回帰分析」があります。単回帰分析は、1つの目的変数(出力)を1つの説明変数(入力)で予測するものです。それに対して重回帰分析は、1つの目的変数を複数の説明変数で予測します。つまり、説明変数が1つだけの場合が単回帰、複数ある場合が重回帰ということです。

単回帰分析について知ろう

ここではシンプルな単回帰分析について説明します。例えば、学生の試験結果で、数学と物理のテストの点数を、それぞれx軸とy軸に取ってみます。なんとなく、数学が得意な学生は、物理も得意なのかなというイメージがあるかもしれません。ここで説明変数を数学の点数(x)、目的変数(y)を物理の点数とし、以下のような一次関数を考えます。

y = Ax + B

ここで、どこに直線を引けば、それぞれのデータに対して最もフィットする関係式が得られるのでしょうか? この関係式(関数)を求めて、数学のテストが何点の人は、物理のテストが何点ぐらいになりそうか?というように予測することが、単回帰分析の目的になります。

最適な関係式を作るには、各データの値と一次関数の直線上の誤差の合計(残差)を最小にする必要があります。ただし、各データは直線の上下にバラついているので、単に差を取って合計すると値のプラス・マイナスで相殺されてしまいます。

そこで、それぞれの差の二乗を求め、それらを合計して、その値が最も小さくなるように、傾きAと切片Bを決めればよいことになります。この方法を「最小二乗法」と呼びます

なお、残差を最小にして最適なモデル(関数)を求めるという基本的な考え方は、説明変数が多い重回帰分析も同様です。変数が多いぶん、偏微分なども出てきて計算式も複雑になります。ここでは割愛しますが、重回帰分析では「勾配降下法」、あるいは「確率的勾配降下法」という手法を利用します。

エンジニアとしての市場価値を知るために

年収査定を受ける(無料)

そのほかの教師あり学習の代表的な手法

教師あり学習の代表的な手法として、回帰による予測について説明してきましたが、分類・予測(回帰)の両方に利用できる手法として「ニューラルネットワーク」「サポートベクターマシン」「決定木」「ランダムフォレスト」などがあります。ここでは「サポートベクターマシン」「決定木」「ランダムフォレスト」を中心に説明します。

分類・予測(回帰)を行うためのサポートベクターマシン(SVM)

まずサポートベクターマシン(SVM:Support Vector Machine)からです。これは教師あり学習において、2つのクラスのパターンに分類する際に使われる手法です。簡単にいうと、各データに境界線を引いて2つに分けるとき、各データとの距離が最大化される距離(マージン)の境界線(3次元では境界面、4次元以上は超平面)を求めることです。

なぜ、このようなことをするのかというと、新しいデータを入力して分類するとき、その判定をする境界線に最も近いデータ(「サポートベクター」と呼ぶ)が誤判定されることを避けるために、できるだけ境界をデータから離す必要があるからです。

2次元や3次元の場合、点と点の距離は三平方の定理で簡単に求められます。SVMでは、この距離を計算し、マージンを最大化できるところで境界の線や面を引くわけです。

2つのクラスのデータのサポートベクターと境界面(直線)のマージンの最大化を行う

ところが、実際には直線や平面でシンプルに分離できないデータ(説明変数が複数の多次元)もあります。境界が線でなく、曲がった形(非線形)になっているケースもあるからです。しかし、SVMはデータの次元を変えて、非線形から線形に高次元空間に変換(写像)して処理を行う「カーネル法」によって対応できます。

例えば下記の画像のように、ハートマークと星マークの2つのグループのデータがあるとします。これらのデータを俯瞰すると2次元で(1)のようになります。ここに境界線を引いて分けることはできません。しかし、3次元にしてみると(2)のようになっていることがあります。これなら平面を境界面としてグループに分けることができます。このように高さという次元を追加して、データを3次元に変換すると、2次元では分離できなかったデータが分離できるようになります。

俯瞰していた平面世界から、高さを加味した3次元世界に変換し、視点を変えて見て境界面を切る
その結果を再び2次元の世界に戻すとデータを分離できる

SVMは分類のほか、前出の回帰分析にも応用されます。SVMを使った回帰分析は「サポートベクター回帰」(SVR)と呼ばれています。

分類・予測を行うための決定木とランダムフォレスト

教師あり学習において、樹形図やツリー構造を作る「決定木」による分析(DTA:Decision Tree Analysis)も予測や分類、検証をするモデルを作るために重要な手法になります。目的変数として質的、あるいは量的な変数のいずれも扱えるため、SVMと同様に、分類だけでなく予測にも利用できます。

決定木分析には「分類木」と「回帰木」があります。分類木は区分結果を分析する場合に使います。一方、回帰木は連続して変わるような値を分析する場合に利用します。

分類木を使って、あるサービスプロバイダのサービスの解約原因を調べたいとします。あらかじめユーザーの利用回数と、サポートセンターに問い合わせた回数が分かっている場合、そのデータ構造を条件分岐のツリーを使って表現してみます。目的変数となる解約ユーザーを、以下のような条件分岐(説明変数)で分けていくことにします。

①先月の利用数が30回以下か?
②先月のサポートセンターへの問い合わせ回数は3回以上か?

この条件に従った樹形図は以下のようになります

決定木は説明変数の条件で構成されたデータの分岐ルールを生成していく学習モデル

①の分岐でNo(利用回数が30回以上)のユーザーは、問い合わせ数が少なく、解約はありません。次に②の分岐でNo(サポートセンターへの問い合わせが3回未満)のユーザーは、利用回数が少なく、問い合わせ数もそれほどなく、解約はありません。一方、②の分岐でYes(サポートセンターへの問い合わせが3回以上)のユーザーは、利用回数は少ないですが、問い合わせ数が多く、圧倒的に解約者も多くなっています。

このように条件分岐でデータを分類することで、解約か、あるいは継続かを判定していくわけです。決定木による分析は、説明変数(条件分岐の設定)を明確にすることで、目的変数となるターゲット層を見つけ出し、影響を与えている因子を探ることができます。

ただし、決定木は過学習を起こしやすく、判定を間違えることもあるため、データの一部を間引き、部分的に複数の決定木を作るか、区切り方にランダム性を持たせることで、より精度の高い結果を出す「ランダムフォレスト」という手法を用いたりもします。

エンジニアとしての市場価値を知るために

年収査定を受ける(無料)

教師あり学習を自動化する「AutoML」も登場

ここまで教師あり学習の代表的な手法について解説してきました。これらを利用することで、データを使った予測や分類を実現できるようになります。しかし、最適なモデルを作るためには、専門知識に加えて、実際にプログラムを開発し、何度もデータを入力して、精度の高いモデルにしていくというプロセスを踏まなければならず、手間やコストがかかります。

そこで、教師あり学習のプロセスを自動化し、いくつかのモデルの候補を挙げてくれるような「Automated Machine Learning」(AutoML)というツールがクラウドサービスなどで登場しています。 AutoML は、日本語に訳すと「自動化された機械学習」のことです。データサイエンスの知識があまりなくても、最適な学習モデルを自動的に作ってくれるので、最近特に注目を浴びています。

例えば、Googleであれば「AutoML Tables」、 Microsoftならば「Azure Machine Learning」の「Automated ML」、 AWSでは機械学習フレームワーク「AutoGluon」、IBM では「Watson Studio」の「AutoAI」といったAuto ML をそれぞれ提供しています。専門家がいない場合は、こういったソリューションに頼ってみるのもよいでしょう。

エンジニアとしての市場価値を知るために

年収査定を受ける(無料)

まとめ

機械学習を支える教師あり学習は、AIを実現するうえで重要な手法です。ビジネスにおいて需要や売り上げの具体的な数値を予測したり、顧客の優良度合いを分類するなど、さまざまなシーンで活用できるようになります。

この記事では、機械学習に興味を持ち始めた方に向けて、教師あり学習の基礎をお伝えしてきましたが、本記事をお読みの方の中には、より具体的な技術を学んでいる方もいることでしょう。

もし、機械学習に関する技術を学び、転職も含めてキャリアに活かしたいとお考えなら、転職エージェントサービスを利用するのも一案です。

dodaエージェントサービスでも、機械学習に関する求人の市場感や具体的な求人探し、転職につなげるための独学ポイントや面接対策など、転職活動のお手伝いをいたしますのでぜひお気軽にご相談ください。

エンジニアとしての市場価値を知るために

年収査定を受ける(無料)
この記事の監修者

技術評論社 デジタルコンテンツ編集チーム

理工書やコンピュータ関連書籍を中心に刊行している技術評論社のデジタルコンテンツ編集チームでは、同社のWebメディア「gihyo.jp」をはじめ、クライアント企業のコンテンツ制作などを幅広く手掛ける。

自分の強みや志向性を理解して、キャリアプランに役立てよう
キャリアタイプ診断を受ける
ITエンジニア専任のキャリアアドバイザーに無料で転職相談
エージェントサービスに申し込む(無料)
キャリアプランに合う求人を探してみよう
ITエンジニア求人を探す
シェアする
このエントリーをはてなブックマークに追加