マスターアルゴリズム

機械学習とは一言で言うと人工物を作成する人工物

機械学習は学派がいくつか存在する
- 記号主義者
学習過程に哲学、論理学、心理学を取り入れている - コネクショニスト
脳の動作原理を模倣する。神経科学や物理学を取り入れている - 進化主義
計算機上で進化の過程を再現する。遺伝学や進化生物学を取り入れている - ベイズ主義
確率論的に捉え、統計学を用いている - 類推学
類似した事例をまとめる。論理/数学を用いている

上記全ての学派によるアルゴリズムはメリデメがある。
ただその全ての方式のメリットを統合したときに、世界的な発見であるマスターアルゴリズムが生まれる。
(本書のマスターアルゴリズムとは上のことを指す)

アルゴリズムというのは極論、AND, OR, NOTを組み合わせたトランジスタである。
なので、アルゴリズムを表現できるトランジスタの列が一意に定まればソフトウェアは不要である。
ただ物理には限界がある。そこでソフトウェアを介して物理で使うトランジスタを組み合わせることにより、膨大な計算量のアルゴリズムを実現する。

アルゴリズムは一度作成したら一生壊れることのない代物である。
だがアルゴリズムは空間複雑度と時間複雑度は避けられない。
空間複雑度
要するにメモリ容量のこと
メモリ容量以上のアルゴリズムは許容されない
時間複雑度
処理の実行速度、実行速度が長すぎるとアルゴリズムは役に立たない

機械学習は農業に似ている
種を撒き、土が良ければ、作物は何もしなくても自動的に成長する
機械学習は
学習アルゴリズムが種で、土がデータである。
これにより、学習されたプログラムが出来上がる。

現代の情報処理の流れは手動→自動→機械学習となっている。
計算機による自動化により、システムは膨大なデータを扱うことが出来るようになった。
例えばamazonで閲覧できる本の全ての中から、そのユーザーの好みの本を抽出して表示出来るように表示する方法として
- 手動
問い合わせなどにより知識がある内部の人間が進める商品を考えて知らせる - 自動
データなどを元にプログラマーが自動でレコメンドを表示できるような、アルゴリズムを考える - 機械学習
データ、学習モデルを元に機械がレコメンド用のアルゴリズムを考える。
システムが膨大になるにつれて、自動のアルゴリズムではレコメンドに対応することが不可能になってきた。人手が足らないからである。
そこでその人手を補えるような機械学習が重宝されている。

サイバー防衛については相手が学んで来ることも想定して、色々対策をしていかないといけない
これをゲーム理論という

もし複数の問題があったときに、計算機科学ではその問題ごとにアルゴリズムを構築しなければいけない。
クレジットカードの決済のプログラム、チェスを指すプログラムといった具合に。
でも機械学習のアルゴリズムはデータさえ異なれば、同じアルゴリズムを適用しても問題を解決することが出来る。

各学派におけるマスターアルゴリズムの生成方法
-
神経科学
実験でマウスの目の神経と耳の神経を交換しても、そのマウスは問題なく目と耳が使えていた。
このことから目と耳、もはや脳が司る全ての神経は同一のアルゴリズムによって動いているのではないか、という仮説 -
進化生物学
生物の反映/淘汰は無限に行われている。
つまり、生物の自然淘汰自体が神の作り出したアルゴリズムなのではないかという仮説 -
物理学
物理学で導かれる法則は、それが見つけられたデータよりも幅広いものを有している。
例えばエネルギー保存の法則は、エネルギーを扱う分野よりもより広い現象においても定義することが出来る。
つまり、現象よりもそこから導かれる抽象的な数式の方が遥かに多様な事柄に適用できる法則である。
もしその法則自体がある一つの法則から導かれるような現象であったらそれがマスターアルゴリズムとなりうるということ -
統計学
ベイズ法と呼ばれる、あるデータに対して正解率みたいなものを付け足すことにより膨大なデータを知識に変換することが出来る
(最近使われている深層学習はこれ?) -
計算機科学
NP完全法を解決することで世の中の問題を解決することが出来る

現象から論理を導くのが帰納
論理が現象を表しているか確認するのが演繹

HiPPOとは
highest paid person's opinion(高給取りの意見)とHippopotamus(カバ)をかけている
カバは人間以外で人間のことを最も多く殺害している動物だということから、新しい着想を潰す揶揄で使われる。

本書におけるマスターアルゴリズムの定義
データを除いた最小限の入力情報とパラメータの変更だけで、同一の学習器によって、人間と同等に動画や文章を理解でき、生物学/社会学およびその他の科学分野で重要な新発見をしたとき

帰納主義者
過去に起きた事例を用いて、未来を予測する機械学習。
これは、過去に起きたことを記録しておいて、それを保存しておくことで、未来に同じことが起きた場合の結果を予測するというもの。
ただこの方法だと、まだ過去に起きていなかったことに対しては対応できない。
例えば1兆個のデータパターンがあるとする。
1兆個の問いかけに対してYESかNOかで答える事のできるデータパターン。
これをもってして日常の事象をどれくらい予想できるか?
例えば日常で起きることを質問として捉えるならば、YES/NO質問が2つあった場合
答えの通りは2^2 = 4通りになる。
例えば質問が1000個あるとする。
一日生きるのにも自分が出会う選択肢が1000個あるなどはよくある話だと思う。
計算量は2^1000でなんと1兆が数%になってしまうほどの計算量になってしまう。
要するに、1兆個のデータなど、1日のある限られたパターンにしかあてはまらない。
つまり、1兆個もデータがあっても現実では何ら使い物にならないということである。

ノーフリーランチ定理
万能な学習モデルは存在しない。
学習モデルを汎化したときに、ある一点でる特微量と他の特微量の平均を取ったときに出力される値は全体の平均である。
つまり全体の平均は五分五分になる。これでは機械学習にかけた結果とコイントスででた結果が同じ確率ということになってしまう

ここからわかることは機械学習モデルは作成者のバイアスからは逃れられないということ。
ある種のバイアスのかかった法則を持たないと学習モデルは機能しない。
アリストテレスの名言「感覚で得たことに由来しない知的なことは存在しない。」
ライプニッツがそれに追加して「ただし、知的なことそのものは除く。」

連言概念
一つのデータに複数の要素がある場合がある。
例えば人のデータだとしてそこには、性別/身長/体重/性格などが存在する。
ある学習プロセスにおいて、ユーザーを特定したいときに特定のパラメータを
男性 × 身長が170cm以上とすると、論理的には if (男性 && 身長 >= 170cm)ということが成り立つ
このときの条件パラメータを連言という。つまり &&の部分を連としている。
ちなみに 男性 || 身長 ~の場合は選言という

規則集合と呼ばれる学習アルゴリズムがある。
これは全てのパターンにおいてラベル付けがされている、アルゴリズムといえる。
つまり、ある表においてアルゴリズムが完璧に機能するということである。
一見素晴らしいアルゴリズムに思えるが実はそうではない。
というのもこのアルゴリズムは新しい概念に対して対応できないからである。
その都度ラベル付けをしてあげないといけない。
要するに汎化ができないということである。これだとただの計算機と何も変わりはしない

過学習とは
モデルが検証データに適合しすぎて汎化できなくなっているということ

決定木(decision tree)
記号主義者による機能推論
このようなtree構造を示していて、Yes, Noで判別することで分類分けをしていく