機械学習

機械学習（きかいがくしゅう、）とは、経験からの学習により自動で改善するコンピューターアルゴリズムもしくはその研究領域で、人工知能の一種であるとみなされている。「訓練データ」もしくは「学習データ」と呼ばれるデータを使って学習し、学習結果を使って何らかのタスクをこなす。例えば過去のスパムメールを訓練データとして用いて学習し、スパムフィルタリングというタスクをこなす、といった事が可能となる。
機械学習は以下の分野と密接に関係する：
機械学習という名前は1959年にアーサー・サミュエルによって造語された。
概要.
定義.
論者により定義が異なるものの、トム・M・ミッチェルによる下記の簡潔な定義は広く引用されている：
ここでタスクとは、プログラムが解くべき課題を指し、例えば売上予測タスクであれば「明日の売上を予測せよ」といったタスクである。
経験はなんらかのデータとしてプログラムに与えられる。このデータを訓練データもしくは学習データといい、売上予測タスクであれば例えば「過去の経験」である今日までの売上が訓練データとして与えられる。訓練データを使ってプログラムの性能を改善する過程を、「プログラムを訓練する」もしくは「プログラムを学習させる」という。またプログラムの訓練に用いられるデータ全体の集合を（訓練もしくは学習）データセット（データ集合とも）という。
最後に性能指標は、プログラムがタスクをどの程度の性能で達成したかを測る指標で、前述の売上予測タスクであれば、例えば実際の売上との誤差を性能指標として用いる事ができる。
変数の種類.
機械学習では、データが連続量であるとき、を量的変数("quantitative variable")といい、「イヌ」、「ネコ」といった分類カテゴリのように物の種類を表す変数を質的変数("qualitative variable")という。質的変数はカテゴリ型変数("categorical variable")、因子("factor")とも呼ばれる。
量的変数、質的変数以外にも「大」「中」「小」のように順序づけられた離散値を取る順序付きカテゴリ型変数("ordered" "categorical variable")もある。また自然言語のように質的変数とは違い連続量ではなく、カテゴリ型変数と違い有限個のカテゴリに値を取るわけではないものも機械学習では取り扱う。
機械学習タスクの種類.
機械学習のタスクは、以下の代表的な３種類のカテゴリーに分けられる。ただしこれらの３つで機械学習で扱う全てのタスクをカバーしているわけではないし、複数のカテゴリーに属するタスクや、どのカテゴリーに属するのか曖昧なタスクもある。
教師あり学習.
概要.
教師あり学習（"supervised learning"）では、未知の確率分布formula_1を対象にする。実応用上は何らかの意味でを入力、を出力とみなせる事が多く、例えばはに未知の関数を施した値に小さなノイズが載ったものである。アルゴリズムには、formula_1に従うとの組formula_3が訓練データとして与えられる。アルゴリズムが解くべきタスクは訓練データに属していない（かもしれない）データに対し、条件付き確率分布formula_4ないしそこから決まる値（たとえばformula_4の期待値）をよく近似することである。近似の精度は事前に定められた損失関数という関数を使って評価する。したがって損失関数の値の期待値を小さくする事が、教師あり機械学習の目標であると言える。
前述した機械学習の定義に沿って言えば、教師あり機械学習は以下のような機械学習であるといえる：
教師あり学習では事前知識であるformula_3から、未知のに対応するの分布formula_4を当てる事が求められる。このため、アルゴリズムが未知のからformula_4（ないしそこから決まる値）を求める操作を汎化もしくは推論（"inference"）と呼ぶ。タスクによっては「予測」「判断」「認識」等と呼ばれる事もある。
アルゴリズムは未知のデータからに対応するの分布の情報を推測する必要があるが、この推論の為に事前知識として与えられる訓練データにはから推論しなければならないが「解答」としてついている。「教師あり学習」という名称は、このように既知の「問題」に対する「解答」を「教師」が教えてくれるというセッティングで「生徒」であるアルゴリズムが未知の「問題」に対応する「解答」を推論する事から名付けられたものである。同様の理由により、教師あり学習では訓練データの事を教師データとも呼ぶ。
訓練フェーズと汎化フェーズ.
多くの教師あり機械学習のモデルでは、実際の汎化を行う前に訓練もしくは学習と呼ばれる作業が発生し、機械学習のモデルは「訓練アルゴリズム」と「汎化アルゴリズム」のペアとして捉える事ができる。訓練アルゴリズムは訓練データを入力として受け取り、パラメータと呼ばれる値を出力する。パラメータは直観的には訓練データから有用な情報を引き出した「学習結果」であり、汎化の際にはこの「学習結果」であるを使って汎化を行う。すなわち、汎化アルゴリズムは入力の他にパラメータをも入力として受け取り、formula_4（ないしそこから決まる値）を求める。
変数の名称.
教師あり機械学習において、変数を説明変数("explanation variable")、を目的変数、目標変数("target variable")、もしくは標的("target")と呼ぶ。これらは別の名称で呼ばれる事も多く、を予測変数("predictor")、を応答変数（"response variable"）と呼んだり、を独立変数（independent variable）、を従属変数("dependent variable")と呼んだりする事もある。またタスクによってはこれら以外の名称で呼ばれる事もある。
回帰と分類.
教師あり学習に属する代表的なタスクとして回帰と分類がある。教師あり学習において、目的変数が量的変数である場合を回帰("regression")、有限集合に値を取るカテゴリ型変数のである場合を分類("classification")もしくは判別と呼ぶ。
回帰.
回帰の目標は入力が与えられたとき、formula_4に関する情報を予想する事である。典型的には
のようにが未知の関数の像にランダムなノイズを加えたデータであるケースにおいて、入力からの可能な限り正確な予想値formula_12を出力する事が求められる。なお回帰で扱う目的変数は連続量であり、典型的には実数を複数並べた数値ベクトルである。
他の教師あり機械学習アルゴリズムと同様、回帰アルゴリズムはformula_1に従って選ばれた訓練データの集合formula_14をとして受け取る事ができ、これらの訓練データをヒントにして入力に対応するの予想値
を出力する。予想の正確さは損失関数formula_16によって測られる。回帰では損失関数formula_16としては自乗誤差損失
を用いる事が多い。
回帰の目標は、汎化誤差（予測誤差、予測損失とも）
を小さく抑える事である。ここでformula_20は汎化アルゴリズムの出力であり、は期待値を表す。
分類.
分類タスクでは、事前に定められた有限個のクラスが定められていて、各クラスには、「ネコ」、「イヌ」などのクラスラベル（もしくは単にラベル）と呼ばれるクラス名が割り振られている。分類タスクの目的は与えられた入力がのいずれに属するかを当てる事である。
分類タスクを解くアルゴリズムには大まかに「決定論的アプローチ」と「確率論的アプローチ」の２種類があり、前者は分類タスクでは入力が与えられたとき、が属すると思われるクラスラベルを出力するというものであり、損失関数としては典型的には0-1損失
を使う。
一方、後者はクラスラベルを直接出力するのではなく、確信度（"confidence score"）formula_22を出力するというものである。ここでformula_23はが番目のクラスに属しているとどの程度確信しているかを表す尺度であり、formula_24とformula_25を満たす。
確信度を出力させる分類タスクでは、訓練データformula_26のも確信度と整合性が取れるように符号化する。すなわち、が番目のクラスに属している場合、formula_27とする。ここでは番目の成分が1でそれ以外の成分が0のベクトルである（このように1つの成分だけが1でそれ以外は0となるベクトルをone-hotベクトルとい、one-hotベクトルによりデータを表現する事をone-hot表現 という）。損失関数としては典型的には交差エントロピー
を使う。
回帰と分類の関係性.
確信度を使った分類タスクに対するアルゴリズムを設計する典型的な手法は、回帰タスクのアルゴリズムを流用するというものである。すなわちクラスをone-hotベクトルで符号化した訓練データformula_29を使って回帰タスクのアルゴリズムを訓練し、訓練結果のアルゴリズムを分類タスクに利用するという手法である。ただし、回帰タスク出力formula_30は、分類タスクの出力である確信度と違い、formula_31とformula_32という条件を満たさないという問題が起こる。そこで一旦ソフトマックス変換
をかける事でこの問題を解決する。
逆に確信度を使った分類タスクを回帰タスクに流用する事もでき、この場合は上と同様の理由でソフトマックス変換の逆変換をかける必要がある。
バイアスと分散のトレードオフ.
回帰では、入力に対応するの予測値formula_15を出力する事を求められ、formula_12はの期待値に近いことが望ましく、しかもformula_12のばらつきは小さい方が望ましい。しかし下記に示すようにこの２つの要件はトレードオフの関係にある：
=\hat{F}_D(\mathbf{x})</math>とし、誤差関数を自乗誤差
により定義し、さらにformula_38をとは独立に選び、
とする。
このとき、予測誤差の訓練データ集合に関する期待値（期待予測誤差）
は以下を満たす：
ここで、
(\mathbf{x})||^2
-||\bar{\mathbf{y}}(\mathbf{x})-\mathbf{y}||^2
&= E_{(\mathbf{x},\mathbf{y})\sim p,D}[
+\hat{F}_D(\mathbf{x})\cdot\bar{F}(\mathbf{x})
+\bar{F}(\mathbf{x})\cdot\bar{\mathbf{y}}(\mathbf{x})
-||\bar{F}(\mathbf{x})||^2
-||\bar{\mathbf{y}}(\mathbf{x})||^2
]=(1)
\end{align}</math>
ここで
なので、
ベイズ規則.
、をそれぞれ回帰や分類といった教師あり学習のタスクに対する損失関数、データ分布とし、関数に関する予測損失をformula_48と書き表す。このとき、予測損失の下限
を損失関数のもとでのベイズ誤差("Bayes error")と呼び、下限を達成するをベイズ規則("Bayes rule")という。ここでformula_50は可測関数全体の集合における下限である。
ベイズ規則は理論上の最良の予測関数であるが、実際には確率分布が未知なので、に関する予測損失formula_48を計算できず、ベイズ規則を求める事ができない。このため教師あり学習では既知のデータformula_3から可能な限りベイズ規則に近い値を出力するアルゴリズムを探索する事が求められる。
回帰.
自乗損失を損失関数として選んだ場合、次の定理が成り立つ：,\mathbf{y})=||\hat{\mathbf{y}}-\mathbf{y}||^2</math>
とする。このとき、汎化誤差formula_48を最小にするformula_54は、
関数formula_57を回帰関数と呼ぶ事もある。
分類.
（確信度ではなくクラスを直接出力するタイプの）分類タスクにおいて、0-1損失関するベイズ規則は以下のようになる：
教師なし学習.
教師なし学習（"unsupervised learning"）では、教師あり学習と違い、目的変数に相当するものがそもそも存在しないか、あっても知る事ができない。
教師なし機械学習では、未知の確率分布formula_58に従う変数formula_59が訓練データとしてアルゴリズムに与えられる。アルゴリズムが解くべきタスクは、確率分布formula_58やその重要な性質を何らかの形で学習し、formula_58の特性を直接推定する事である。教師あり学習と違い、明確な「正解」が存在しないので、教師なし学習では出力の妥当性を直接評価する評価尺度は存在せず、妥当か否かの判断は主観的なものになり、ヒューリスティックな議論が必要となる。
教師なし学習の興味の一つは確率密度関数formula_58それ自身を推定する密度推定のタスクであり、カーネル密度推定など統計学で様々なノンパラメトリック密度推定の手法が知られている。しかしの次元が高い場合は次元の呪いが原因でこうした推定はうまくいかず、それゆえ多くの教師なし学習では、formula_58の何らかのパラメトリックなモデルでformula_58を近似することを試みたり、訓練データからformula_58の何らかの重要な性質を抽出するといったアプローチが取られる。
具体的な例として以下のようなものがある。
強化学習.
強化学習（きょうかがくしゅう、）とは、ある環境内におけるエージェントが、現在の状態を観測し、取るべき行動を決定する問題を扱う機械学習の一種。エージェントは行動を選択することで環境から報酬を得る。強化学習は一連の行動を通じて報酬が最も多く得られるような方策（）を学習する。環境はマルコフ決定過程として定式化される。代表的な手法としてTD学習やQ学習が知られている。
その他の機械学習.
例えば以下のものがある
能動学習アルゴリズムは、予算に基づいて限られた入力のセットに対して所望の出力（訓練ラベル）にアクセスし、訓練ラベルを取得する入力の選択を最適化する。インタラクティブに使用される場合、これらはラベリングのために人間のユーザーに提示することができる。強化学習アルゴリズムは、動的な環境で正または負の強化の形でフィードバックを与えられ、自動運転車や人間の対戦相手とゲームをするための学習に使用される。機械学習における他の専門的なアルゴリズムには、コンピュータプログラムに自然言語文書のセットを与え、類似したトピックをカバーする他の文書を見つけるトピックモデリングがある。機械学習アルゴリズムは、密度推定問題において、観測不可能な確率密度関数を求めるために使用することができる。メタ学習アルゴリズムは、過去の経験に基づいて独自の帰納バイアスを学習する。発達ロボティクスでは、ロボット学習アルゴリズムは、カリキュラムとも呼ばれる学習経験のシーケンスを独自に生成し、自己誘導型の探索や人間との社会的相互作用を通じて、新しいスキルを累積的に獲得する。これらのロボットは、能動的学習、成熟、運動相乗効果、模倣などの誘導メカニズムを使用する
人間との相互作用.
機械学習システムによっては、人間の直観によるデータ解析の必要性を排除しようとしているが、人間と機械の協調的相互作用を取り入れたものもある。しかし、そもそもシステムのデータ表現方法やデータの特徴を探る機構は、人間が設計したものであり、人間の直観を完全に排除することはできない。
データマイニングとの関係.
機械学習とデータマイニングは交差する部分が大きく、技法も同じなので混同されることが多いが、次のように定義できる。
この2つは、さまざまな面でオーバーラップしている。データマイニングは、機械学習の技法を使うが、その目的は若干異なることが多い。一方、機械学習もデータマイニングの技法を「教師なし学習」として、あるいは学習者の正確性を向上させる前処理として用いる。2つの研究領域は、 という例外はあるが、基本的に学会も学術誌も別々である。それらの間の混同の最大の原因は、それらの基本的前提に由来する。機械学習では、既知の知識を再生成できるかどうかで性能を評価するが、データマイニングではそれまで「未知」だった知識を発見することが重視される。したがって、既知の知識によって評価するなら「教師なしの技法」よりも「教師ありの技法」の方が容易に優れた結果を示すことができる。しかし、典型的なデータマイニングでは、訓練データが用意できないので、「教師ありの技法」を採用することができない。
理論.
機械学習アルゴリズムとその性能についての分析は、理論計算機科学の一分野であり、と呼ばれている。訓練例は有限であるのに対して、未来は不確かであるため、学習理論は一般にアルゴリズムの性能を保証できない。その代わりに、性能の確率的範囲を与える。 によるなど統計的学習理論という表現もある。
それに加えて、学習の時間複雑性と実現可能性についても研究している。計算論的学習理論では、多項式時間で終了する計算を実現可能とみなす。
機械学習と統計学は、多くの点で似ているが、使用する用語は異なる。
統計的機械学習.
formula_66
統計的機械学習とは、機械学習のうちデータの確率的な生成規則を学習するもの を指す。
統計学は母集団と標本、そこに存在する確率分布に着目した方法論である。統計的機械学習ではデータが母集団から確率的に得られると考え、データの生成過程を確率分布を用いてモデル化し、実際のデータに基づいてモデルの学習（あるいはモデル選択自体の学習）をおこなう。母集団からデータが得られる、母集団からのサンプリングによってデータが生成されると解釈できるため、統計的機械学習のモデルは生成モデル・統計モデルとも呼ばれる。
標本に基づいた母集団（パラメータ）の推定・選択は統計学において長く研究され、多くの理論が存在する。統計的機械学習における学習はまさに母集団の推定・選択であるため、統計学の理論が機械学習に適用できる。学習の収束や汎化性能など様々な機械学習の課題が統計学の知識体系を用いて研究されている。
統計的機械学習の例としては、ニューラルネットワークにおける生成モデル、例えば自己回帰型生成ネット、変分オートエンコーダー（VAE）、敵対的生成ネットワーク（GAN）などが挙げられる。これらのモデル（＝母集団）から実際にサンプリングすれば画像や音声といったデータが生成できるため、特にニューラルネットワークの分野では2010年代後半に非常によく研究され大きな成果をあげている（WaveNet、VQ-VAE-2、BigGANなど）。
数理最適化.
多くの機械学習手法はデータに対するモデル出力の誤差を定義し、誤差を最小化するようにパラメータの更新（学習）をおこなう。誤差を計算する関数、すなわち損失関数を最小化する学問体系は応用数学において数理最適化（解かれる問題は最適化問題）と呼ばれる。
例えばニューラルネットワークでは損失関数に対して微分をおこなう勾配法（確率的勾配降下法など）で学習がしばしばおこなわれる。勾配法による最適化が最適解に収束するか否かは数理最適化の理論によって研究される。また用いられる最適化法によってニューラルネットワークに課される制約も異なり、勾配法を用いるには連続する関数適用がすべて微分可能である（バックプロパゲーションが可能である）ことが求められる（生成モデルのサンプリングに強く制約を与える）。
技法.
モデルおよび学習規則に加え、様々なデータ前処理技法が採用される。
応用分野.
機械学習には以下のような応用分野がある。
2006年、オンラインDVDレンタル会社ネットフリックスは、同社のレコメンダシステムより10%以上高性能な（ユーザーの好みをより正確に予測する）プログラムを捜す競技会 を開催した。この競技会は数年かけて行われ、AT&T Labs のチームが「プラグマティック・ケイオス」 という機械学習プログラムで2009年に優勝し100万ドルを獲得した。
実応用.
以下のものがある：
ソフトウェア.
各種機械学習アルゴリズムを備えたソフトウェアスイートとして、SAS・RapidMiner・・・Weka・・・・Apache Mahout・・・・OpenCV・XGBoost・Jubatus などがある。
データロボット社 による複数の手法を並列計算させて比較する方法がある。