機械学習

機械学習とは、経験からの学習により自動で改善するコンピューターアルゴリズムもしくはその研究領域で、人工知能の一種であるとみなされている。「訓練データ」もしくは「学習データ」と呼ばれるデータを使って学習し、学習結果を使って何らかのタスクをこなす。例えば過去のスパムメールを訓練データとして用いて学習し、スパムフィルタリングというタスクをこなす、といった事が可能となる。

機械学習は以下の分野と密接に関係する：

計算統計学：計算機を使った予測に焦点を当てた分野
数理最適化：定められた条件下における最適解の探索に焦点を当てた分野
データマイニング：教師なし学習における探索的データ解析に焦点を当てた分野Machine learning and pattern recognition "can be viewed as two facets of the same field."機械学習という名前は1959年にアーサー・サミュエルによって造語された。

1. 概要
-----

1.1. 定義機械学習の定義}}
----------------

論者により定義が異なるものの、トム・M・ミッチェルによる下記の簡潔な定義は広く引用されている：

ここでタスクとは、プログラムが解くべき課題を指し、例えば売上予測タスクであれば「明日の売上を予測せよ」といったタスクである。

経験はなんらかのデータとしてプログラムに与えられる。このデータを訓練データもしくは学習データといい、売上予測タスクであれば例えば「過去の経験」である今日までの売上が訓練データとして与えられる。訓練データを使ってプログラムの性能を改善する過程を、「プログラムを訓練する」もしくは「プログラムを学習させる」という。またプログラムの訓練に用いられるデータ全体の集合をデータセットという。

最後に性能指標は、プログラムがタスクをどの程度の性能で達成したかを測る指標で、前述の売上予測タスクであれば、例えば実際の売上との誤差を性能指標として用いる事ができる。

1.2. 変数の種類
----------

機械学習では、データ//x//}}が連続量であるとき、//x//}}を量的変数といい、「イヌ」、「ネコ」といった分類カテゴリのように物の種類を表す変数を質的変数という。質的変数はカテゴリ型変数、因子とも呼ばれる。

量的変数、質的変数以外にも「大」「中」「小」のように順序づけられた離散値を取る順序付きカテゴリ型変数もある。また自然言語のように質的変数とは違い連続量ではなく、カテゴリ型変数と違い有限個のカテゴリに値を取るわけではないものも機械学習では取り扱う。

1.3. 機械学習タスクの種類
---------------

機械学習のタスクは、以下の代表的な３種類のカテゴリーに分けられる。ただしこれらの３つで機械学習で扱う全てのタスクをカバーしているわけではないし、複数のカテゴリーに属するタスクや、どのカテゴリーに属するのか曖昧なタスクもある。

教師あり学習 入力とそれに対応すべき出力 を写像する関数を生成する。例えば、分類問題では入力ベクトルと出力に対応する分類で示される例を与えられ、それらを写像する関数を近似的に求める。 ラベルのインフォメーションが不足の場合は半教師あり学習である。 教師なし学習 入力のみからモデルを構築する。データマイニングや自己符号化器なども参照。 強化学習 周囲の環境を観測することでどう行動すべきかを学習する。行動によって必ず環境に影響を及ぼし、環境から報酬という形でフィードバックを得ることで学習アルゴリズムのガイドとする。例えばQ学習がある。

2. 教師あり学習
---------

2.1. 概要
-------

教師あり学習では、未知の確率分布を対象にする。実応用上は何らかの意味でx}}を入力、y}}を出力とみなせる事が多く、例えばy}}はx}}に未知の関数F}}を施した値//F//}}に小さなノイズが載ったものである。アルゴリズムには、に従うx}}とy}}の組が訓練データとして与えられる。アルゴリズムが解くべきタスクは訓練データに属していないデータx}}に対し、条件付き確率分布ないしそこから決まる値をよく近似することである。近似の精度は事前に定められた損失関数という関数を使って評価する。したがって損失関数の値の期待値を小さくする事が、教師あり機械学習の目標であると言える。

前述した機械学習の定義に沿って言えば、教師あり機械学習は以下のような機械学習であるといえる：

教師あり学習では事前知識であるから、未知のx}}に対応するy}}の分布を当てる事が求められる。このため、アルゴリズムが未知のx}}からを求める操作を汎化もしくは推論と呼ぶ。タスクによっては「予測」「判断」「認識」等と呼ばれる事もある。

アルゴリズムは未知のデータx}}からx}}に対応するy}}の分布の情報を推測する必要があるが、この推論の為に事前知識として与えられる訓練データにはxsubから推論しなければならないysubが「解答」としてついている。「教師あり学習」という名称は、このように既知の「問題」xsubに対する「解答」ysubを「教師」が教えてくれるというセッティングで「生徒」であるアルゴリズムが未知の「問題」x}}に対応する「解答」y}}を推論する事から名付けられたものである。同様の理由により、教師あり学習では訓練データの事を教師データとも呼ぶ。

2.1.1. 訓練フェーズと汎化フェーズ
--------------------

多くの教師あり機械学習のモデルでは、実際の汎化を行う前に訓練もしくは学習と呼ばれる作業が発生し、機械学習のモデルは「訓練アルゴリズム」と「汎化アルゴリズム」のペアとして捉える事ができる。訓練アルゴリズムは訓練データを入力として受け取り、パラメータと呼ばれる値θ}}を出力する。パラメータは直観的には訓練データから有用な情報を引き出した「学習結果」であり、汎化の際にはこの「学習結果」であるθ}}を使って汎化を行う。すなわち、汎化アルゴリズムは入力x}}の他にパラメータθ}}をも入力として受け取り、を求める。

2.1.2. 変数の名称
------------

教師あり機械学習において、変数x}}を説明変数、y}}を目的変数、目標変数、もしくは標的と呼ぶ。これらは別の名称で呼ばれる事も多く、x}}を予測変数、y}}を応答変数と呼んだり、x}}を独立変数、y}}を従属変数と呼んだりする事もある。またタスクによってはこれら以外の名称で呼ばれる事もある。

2.1.3. 回帰と分類
------------

教師あり学習に属する代表的なタスクとして回帰と分類がある。教師あり学習において、目的変数y}}が量的変数である場合を回帰、有限集合に値を取るカテゴリ型変数のである場合を分類もしくは判別と呼ぶ。

2.2. 回帰
-------

回帰の目標は入力x}}が与えられたとき、に関する情報を予想する事である。典型的には

のようにy}}が未知の関数F}}の像//F//}}にランダムなノイズε}}を加えたデータであるケースにおいて、入力x}}からy}}の可能な限り正確な予想値を出力する事が求められる。なお回帰で扱う目的変数y}}は連続量であり、典型的には実数を複数並べた数値ベクトルである。

他の教師あり機械学習アルゴリズムと同様、回帰アルゴリズムはに従って選ばれた訓練データの集合をとして受け取る事ができ、これらの訓練データをヒントにして入力x}}に対応するy}}の予想値

を出力する。予想の正確さは損失関数によって測られる。回帰では損失関数としては自乗誤差損失

を用いる事が多い。

回帰の目標は、汎化誤差

を小さく抑える事である。ここでは汎化アルゴリズムの出力であり、//E//[・]}}は期待値を表す。

2.3. 分類
-------

分類タスクでは、事前に定められた有限個のクラスが定められていて、各クラスには、「ネコ」、「イヌ」などのクラスラベルと呼ばれるクラス名が割り振られている。分類タスクの目的は与えられた入力x}}がのいずれに属するかを当てる事である。

分類タスクを解くアルゴリズムには大まかに「決定論的アプローチ」と「確率論的アプローチ」の２種類があり、前者は分類タスクでは入力x}}が与えられたとき、x}}が属すると思われるクラスラベルを出力するというものであり、損失関数としては典型的には0-1損失

を使う。

一方、後者はクラスラベルを直接出力するのではなく、確信度を出力するというものである。ここではx}}が//j//}}番目のクラスに属しているとどの程度確信しているかを表す尺度であり、とを満たす。

確信度を出力させる分類タスクでは、訓練データのysubも確信度と整合性が取れるように符号化する。すなわち、xsubが//j//}}番目のクラスに属している場合、とする。ここでesubは//j//}}番目の成分が1でそれ以外の成分が0のベクトルである。損失関数としては典型的には交差エントロピー

を使う。

2.3.1. 回帰と分類の関係性
----------------

確信度を使った分類タスクに対するアルゴリズムを設計する典型的な手法は、回帰タスクのアルゴリズムを流用するというものである。すなわちクラスをone-hotベクトルで符号化した訓練データを使って回帰タスクのアルゴリズムを訓練し、訓練結果のアルゴリズムを分類タスクに利用するという手法である。ただし、回帰タスク出力は、分類タスクの出力である確信度と違い、とという条件を満たさないという問題が起こる。そこで一旦ソフトマックス変換

をかける事でこの問題を解決する。

逆に確信度を使った分類タスクを回帰タスクに流用する事もでき、この場合は上と同様の理由でソフトマックス変換の逆変換をかける必要がある。

2.4. バイアスと分散のトレードオフ
-------------------

回帰では、入力x}}に対応するy}}の予測値を出力する事を求められ、はy}}の期待値に近いことが望ましく、しかものばらつきは小さい方が望ましい。しかし下記に示すようにこの２つの要件はトレードオフの関係にある：

と書き表す。このとき、予測損失の下限を損失関数L}}のもとでのベイズ誤差と呼び、下限を達成するF}}をベイズ規則という。ここでは可測関数全体の集合における下限である。

ベイズ規則は理論上の最良の予測関数であるが、実際には確率分布//p//}}が未知なので、//p//}}に関する予測損失を計算できず、ベイズ規則を求める事ができない。このため教師あり学習では既知のデータから可能な限りベイズ規則に近い値を出力するアルゴリズムを探索する事が求められる。

2.4.1. 回帰
---------

自乗損失を損失関数として選んだ場合、次の定理が成り立つ： 関数を回帰関数と呼ぶ事もある。

2.4.2. 分類
---------

分類タスクにおいて、0-1損失関するベイズ規則は以下のようになる：

3. 教師なし学習
---------

教師なし学習では、教師あり学習と違い、目的変数y}}に相当するものがそもそも存在しないか、あっても知る事ができない。

教師なし機械学習では、未知の確率分布に従う変数が訓練データとしてアルゴリズムに与えられる。アルゴリズムが解くべきタスクは、確率分布やその重要な性質を何らかの形で学習し、の特性を直接推定する事である。教師あり学習と違い、明確な「正解」y}}が存在しないので、教師なし学習では出力の妥当性を直接評価する評価尺度は存在せず、妥当か否かの判断は主観的なものになり、ヒューリスティックな議論が必要となる。

教師なし学習の興味の一つは確率密度関数それ自身を推定する密度推定のタスクであり、カーネル密度推定など統計学で様々なノンパラメトリック密度推定の手法が知られている。しかしx}}の次元が高い場合は次元の呪いが原因でこうした推定はうまくいかず、それゆえ多くの教師なし学習では、の何らかのパラメトリックなモデルでを近似することを試みたり、訓練データからの何らかの重要な性質を抽出するといったアプローチが取られる。

具体的な例として以下のようなものがある。

クラスター分析
主成分分析
ベクトル量子化
自己組織化マップ
K平均法

4. 強化学習
-------

強化学習とは、ある環境内におけるエージェントが、現在の状態を観測し、取るべき行動を決定する問題を扱う機械学習の一種。エージェントは行動を選択することで環境から報酬を得る。強化学習は一連の行動を通じて報酬が最も多く得られるような方策を学習する。環境はマルコフ決定過程として定式化される。代表的な手法としてTD学習やQ学習が知られている。

強化学習とは、試行錯誤を通じて「価値を最大化するような行動」を学習する 手法
あらかじめ正しい答えが分かっていなくても 学習が可能
対戦ゲームやロボットなどでの応用例が多い
深層学習を用いた強化学習のことを深層強化学習という
強化学習という名前は、Skinner博士の 提唱した脳の学習メカニズムである オペラント学習に由来する
Skinner博士は、スキナー箱と呼ばれる ラット実験によって、「特定の動作に 対して報酬を与えると、その動作が 強化される」ことを発見し、これを オペラント学習と呼んだ 

5. その他の機械学習
-----------

例えば以下のものがある

ラベルありの例とラベルなしの例をどちらも扱えるようにしたもので、それによって近似関数または分類器を生成する。トランスダクション 観測された具体的な例から具体的かつ固定の例の新たな出力を予測しようとする。 関連する複数の問題について同時に学習させ、主要な問題の予測精度を向上させる。能動学習アルゴリズムは、予算に基づいて限られた入力のセットに対して所望の出力にアクセスし、訓練ラベルを取得する入力の選択を最適化する。インタラクティブに使用される場合、これらはラベリングのために人間のユーザーに提示することができる。強化学習アルゴリズムは、動的な環境で正または負の強化の形でフィードバックを与えられ、自動運転車や人間の対戦相手とゲームをするための学習に使用される。機械学習における他の専門的なアルゴリズムには、コンピュータプログラムに自然言語文書のセットを与え、類似したトピックをカバーする他の文書を見つけるトピックモデリングがある。機械学習アルゴリズムは、密度推定問題において、観測不可能な確率密度関数を求めるために使用することができる。メタ学習アルゴリズムは、過去の経験に基づいて独自の帰納バイアスを学習する。発達ロボティクスでは、ロボット学習アルゴリズムは、カリキュラムとも呼ばれる学習経験のシーケンスを独自に生成し、自己誘導型の探索や人間との社会的相互作用を通じて、新しいスキルを累積的に獲得する。これらのロボットは、能動的学習、成熟、運動相乗効果、模倣などの誘導メカニズムを使用する

6. 人間との相互作用
-----------

機械学習システムによっては、人間の直観によるデータ解析の必要性を排除しようとしているが、人間と機械の協調的相互作用を取り入れたものもある。しかし、そもそもシステムのデータ表現方法やデータの特徴を探る機構は、人間が設計したものであり、人間の直観を完全に排除することはできない。

7. データマイニングとの関係
---------------

機械学習とデータマイニングは交差する部分が大きく、技法も同じなので混同されることが多いが、次のように定義できる。

機械学習の目的は、訓練データから学んだ「既知」の特徴に基づく予測である。
データマイニングの目的は、それまで「未知」だったデータの特徴を発見することである。この2つは、さまざまな面でオーバーラップしている。データマイニングは、機械学習の技法を使うが、その目的は若干異なることが多い。一方、機械学習もデータマイニングの技法を「教師なし学習」として、あるいは学習者の正確性を向上させる前処理として用いる。2つの研究領域は、ECML PKDD という例外はあるが、基本的に学会も学術誌も別々である。それらの間の混同の最大の原因は、それらの基本的前提に由来する。機械学習では、既知の知識を再生成できるかどうかで性能を評価するが、データマイニングではそれまで「未知」だった知識を発見することが重視される。したがって、既知の知識によって評価するなら「教師なしの技法」よりも「教師ありの技法」の方が容易に優れた結果を示すことができる。しかし、典型的なデータマイニングでは、訓練データが用意できないので、「教師ありの技法」を採用することができない。

8. 理論
-----

機械学習アルゴリズムとその性能についての分析は、理論計算機科学の一分野であり、計算論的学習理論と呼ばれている。訓練例は有限であるのに対して、未来は不確かであるため、学習理論は一般にアルゴリズムの性能を保証できない。その代わりに、性能の確率的範囲を与える。 Wassily Hoeffdingによるヘフディングの不等式など統計的学習理論という表現もある。

それに加えて、学習の時間複雑性と実現可能性についても研究している。計算論的学習理論では、多項式時間で終了する計算を実現可能とみなす。

機械学習と統計学は、多くの点で似ているが、使用する用語は異なる。

8.1. 統計的機械学習
------------

統計的機械学習とは、機械学習のうちデータの確率的な生成規則を学習するもの を指す。

統計学は母集団と標本、そこに存在する確率分布に着目した方法論である。統計的機械学習ではデータが母集団から確率的に得られると考え、データの生成過程を確率分布を用いてモデル化し、実際のデータに基づいてモデルの学習をおこなう。母集団からデータが得られる、母集団からのサンプリングによってデータが生成されると解釈できるため、統計的機械学習のモデルは生成モデル・統計モデルとも呼ばれる。

標本に基づいた母集団の推定・選択は統計学において長く研究され、多くの理論が存在する。統計的機械学習における学習はまさに母集団の推定・選択であるため、統計学の理論が機械学習に適用できる。学習の収束や汎化性能など様々な機械学習の課題が統計学の知識体系を用いて研究されている。

統計的機械学習の例としては、ニューラルネットワークにおける生成モデル、例えば自己回帰型生成ネット、変分オートエンコーダー、敵対的生成ネットワークなどが挙げられる。これらのモデルから実際にサンプリングすれば画像や音声といったデータが生成できるため、特にニューラルネットワークの分野では2010年代後半に非常によく研究され大きな成果をあげている。

8.2. 数理最適化
----------

多くの機械学習手法はデータに対するモデル出力の誤差を定義し、誤差を最小化するようにパラメータの更新をおこなう。誤差を計算する関数、すなわち損失関数を最小化する学問体系は応用数学において数理最適化と呼ばれる。

例えばニューラルネットワークでは損失関数に対して微分をおこなう勾配法で学習がしばしばおこなわれる。勾配法による最適化が最適解に収束するか否かは数理最適化の理論によって研究される。また用いられる最適化法によってニューラルネットワークに課される制約も異なり、勾配法を用いるには連続する関数適用がすべて微分可能であることが求められる。

9. 技法
-----

決定木学習 決定木を予測モデルとして使用した学習であり、アイテムについての観測をそのアイテムの目標値についての結論とマッピングする。具体例としてID3やRandom forestがある。 大規模データベースにおける変数間の興味深い関係を発見するための技法。 ニューラルネットワーク 階層的な非線形変換からなるネットワーク。一般に誤差逆伝播法で学習される。非線形性による高い表現能力をもち、分類・回帰・生成など様々なタスクに用いられる。 遺伝的プログラミング  生物の進化を模倣した進化的アルゴリズムに基づく技法であり、ユーザーが定義したタスクを実行するプログラムを探索する。遺伝的アルゴリズムを拡張・特化させたものである。所定のタスクを実行する能力によって適応度地形を決定し、それによってコンピュータプログラムを最適化させていく機械学習技法である。 帰納論理プログラミング  例、背景知識、仮説を一様な表現とし、論理プログラミングを使って学習を規則化する技法である。既知の背景知識と例の集合をコード化して事実の論理データベースとし、全てのポジティブな例を含み、ネガティブな例を全く含まない仮説的論理プログラムを生成する。 サポートベクターマシン  分類や回帰に使われる一連の教師あり学習技法である。訓練例のラベルは二値分類であり、訓練アルゴリズムによってモデルを構築し、新たな例がどちらに分類されるかを予測する。 クラスタリング クラスタリングは、観測された例をクラスタと呼ばれる部分集合に振り分けるもので、振り分けは事前に指示された基準に従って行う。クラスタリングはデータの構造についての仮説の立て方によって結果が異なる。仮説は「類似尺度」で定義され、「内部コンパクト性」や異なるクラスタ間の距離によって評価される。「推定密度」や「グラフ接続性」に基づく技法もある。クラスタリングは教師なし学習技法であり、統計的データ解析でよく使われる。 ベイジアンネットワーク 確率変数群とそれらの条件付き独立性を有向非巡回グラフ  で表した確率論的グラフィカルモデルである。例えば、病気と症状の関係を確率的に表すことができる。そのネットワークに症状を入力すれば、考えられる病気の一覧を確率付きで出力できる。これを使って推論と学習を行う効率的アルゴリズムが存在する。
教師なし学習アルゴリズムの一部は、訓練中に提供された入力のよりよい表現を発見しようとする。古典的な例として主成分分析やクラスタ分析がある。入力の持つ情報は保持したまま、分類や予測の前に入力をより便利な表現に変換するアルゴリズムもある。その際に入力データが従っている未知の確率分布から入力を再建できるようにするが、その確率分布においては信じがたい例も忠実に再現する必要はない。例えば多様体学習アルゴリズムは、何らかの制約下で入力の次元を低く変換して表現する。スパースコーディングアルゴリズムでは、入力が疎らという制約下で同様の表現の変換を行う。ニューラルネットワークの深層学習は複数レベルの表現または特徴の階層を発見するもので、低いレベルで抽出した特徴から高いレベルの抽象化した特徴までを求める。知的機械は、観測されたデータを説明する偏差の潜在的要因を解きほぐす表現を学習するものだという主張もある。 エクストリーム・ラーニング・マシン  1層もしくは複数の隠れ層を有する順伝播型ニューラルネットワークであり，分類や回帰，クラスタリングへ適用できる。モデルおよび学習規則に加え、様々なデータ前処理技法が採用される。

10. 応用分野
--------

機械学習には以下のような応用分野がある。

コンピュータビジョン
自然言語処理
検索エンジン
診断
バイオインフォマティクス
ブレイン・マシン・インタフェース
ケモインフォマティクス
クレジットカード詐欺credit card fraud}}の検出
証券市場分析
塩基配列の分類

音声認識と手書き文字認識
物体認識
ストラテジーゲームのゲームプレイ
ソフトウェア工学
金融工学
感情分析
情報検索
レコメンダシステム
製造業2006年、オンラインDVDレンタル会社ネットフリックスは、同社のレコメンダシステムより10%以上高性能なプログラムを捜す競技会 Netflix Prize を開催した。この競技会は数年かけて行われ、AT&T Labs のチームが「プラグマティック・ケイオス」 という機械学習プログラムで2009年に優勝し100万ドルを獲得した。

11. 実応用
-------

以下のものがある：



12. ソフトウェア
----------

各種機械学習アルゴリズムを備えたソフトウェアスイートとして、SAS・RapidMiner・LIONsolver・KNIME・Weka・ODM・Shogun toolbox・Orange・Apache Mahout・scikit-learn・mlpy・MCMLL・OpenCV・XGBoost・Jubatus などがある。

データロボット社 による複数の手法を並列計算させて比較する方法がある。

13. 学術誌と国際学会
------------

//Machine Learning//
//Journal of Machine Learning Research//
//Neural Computation//
International Conference on Machine Learning 
Neural Information Processing Systems 

14. 脚注
------

14.1. 注釈
--------

14.2. 出典
--------

15. 参考文献
--------

title=Pattern Recognition And Machine Learning  →[1]
日本語版「パターン認識と機械学習 - ベイズ理論による統計的予測」シュプリンガージャパン  上巻：ISBN 978-4431100133 下巻：ISBN 978-4431100317 →[2]
日本語版「パターン認識と機械学習 - ベイズ理論による統計的予測」丸善出版  上巻：ISBN 978-4621061220 下巻：ISBN 978-4621061244
後藤正幸，小林学：「入門　パターン認識と機械学習」コロナ社ISBN 978-4-339-02479-1
title=深層学習
url=https://www.deeplearningbook.org/同書原著のweb版
url=https://web.stanford.edu/~hastie/ElemStatLearn/：上述の書籍の英語版公式サイト。無料pdfあり。
鈴木 顕:「機械学習アルゴリズム」、共立出版、ISBN 978-4-320125179。
岡留 剛：「機械学習 1：入門的基礎/パラメトリックモデル」、共立出版、ISBN 978-4-320124882 (2022年8月26日）