【G検定】「探索・推論」と「機械学習・深層学習」を学習してみた

今回は、G検定の勉強ということで、「探索・推論」と「機械学習・深層学習」の学習をしました。

# 参考書籍
**・深層学習教科書 ディープラーニング G検定(ジェネラリスト)公式テキスト**

# 学習内容
## 探索・推論

### 迷路（探索木）
###### 幅優先探索
　出発点に近いノード順に検索する。出発点から遠いノードほど検索は後になる。**最短距離でゴールにたどり着く解**を見つけることができるが、**メモリ不足**で処理を続行できなくなる可能性がある。

###### 深さ優先探索
　あるノードから行けるところまで行って、行き止まりになったら1つ手前のノードに戻って探索を行うということを繰り返す。解が見つかったとしても、最短距離でゴールにたどり着く解であるとは限らない。**メモリはあまり要らない。**

### ハノイの塔
 ###### ハノイの塔
 　3本のポールがあり、最初は左側のポールに大きさが異なる複数の円盤が小さいものは上になる順番で積み重ねられている。小さな円盤の上に大きな円盤は乗せることができず、すべての円盤を右端のポールに移動させるというもの。

### ロボットの行動計画
###### プランニング
　ロボットの目標達成のために必要な行動を作成する技術のこと。あらゆる状態 **「前提条件」** について、**「行動」と「結果」** を記述しておけば目標とする状態に至る行動計画を立てることができるようになります。プランニングの研究では、「前提条件」・「行動」・「結果」の3つの組み合わせで記述する**STRIPS**(Stanford Research Institute Problem Solver)が有名です。

###### SHRDLU
　1968年から1970年にかけて**テリー・ウィノグラード**によって開発されたシステムで、英語による指示を受け付け、コンピュータ画面に描かれる積み木の世界存在する様々な物体（ブロック、四角錐など）を動かすことができた。この成果は後に**Cycプロジェクト**にも引き継がれている。

### ボードゲーム
　ボードゲームをコンピュータで解く基本は探索である。代表的なボードゲームでは、探索の組み合わせの数は「**オセロ＜チェス＜将棋＜囲碁**」の順に大きくなるが、その組み合わせは天文学的な数であるため、事実上すべてを探索することはできない。
###### AlphaGo(アルファ碁)
　2016年3月、韓国のプロ棋士に、DeepMind社が開発した人工知能の囲碁プログラムAlphaGoが4勝1敗と勝ち越した。

###### コスト
　効率よく探索するために、コストという概念を取り入れた。あらかじめ知っている知識や経験を利用してコストを計算すれば、探索を短縮できる。ここで利用する知識を**ヒューリスティックな知識**と呼ぶ。

###### Mini-Max法
　ゲーム盤の状態が自分にとって有利なほどスコアが大きくなるように評価されているのであれば、自分が指す時にスコアが最大になるように手を打つ、また、相手が指す時にはスコアが最小になるように手を打つはずであるということを前提に戦略を立てること。

 ###### αβ法
 　**Mini-Max法**による探索をできるだけ減らす手法。最大のスコアを選択する過程でスコアが小さいノードが出現したら、そのノードを切り落とすことを**αカット**と呼ぶ。同様にスコアが最小のものを選ぶ過程で、すでに出現したスコアよりも大きいノードが現れた時点でその先に繋がるノードの探索をやめることを**βカット**と呼ぶ。

###### モンテカルロ法
　ゲームがある局面まで進んだら、あらかじめ決められた方法でゲームの局面のスコアを評価するという方法を完全に放棄する。その代わりに、コンピューターが2人の仮想的なプレイヤーを演じて、完全にランダムに手を指し続ける方法でゲームをシミュレーションして、ゲームを終局（**プレイアウト**）させる。これを繰り返し確率を計算する方法。**ブルートフォース（力任せ）** であり、19×19の囲碁では通用しなかった。

## 知識表現
### 人工無脳
###### 人工無脳
　人工無脳とは、チャットボット、おしゃべりボットなどと呼ばれているコンピュータープログラムである。特定のルール・手順に沿って会話を機械的に処理するだけであり、会話の内容を理解しているわけではない。

###### イライザ(ELIZA)
　1964年から1966年にかけてジョセフ・ワイゼンバウムによって開発された、人工無脳の元祖である。相手の発言をあらかじめ用意されたパターンと比較し、パターンに合致した発言があると、そのパターンに応じた返答をするという仕組みになっている。
あたかも本物の人間と対話しているような錯覚に陥ることを**イライザ効果**という。

### 知識ベースの構築とエキスパートシステム
###### エキスパートシステム
　ある専門分野の知識を取り込み、その分野のエキスパートのように振る舞うプログラムのこと。

 ###### マイシン(MYCIN)
 　1970年代にスタンフォード大学で開発され、初期のエキスパートシステムとして最も影響力が大きい。血液中のバクテリアの診断支援をするルールベースのプログラムです。
  
###### DENDRAL
　1960年代にスタンフォード大学でエドワード・ファイゲンバウムに開発された。未知の有機化合物を特定するプログラムです。

### 知識獲得のボトルネック
　専門家が持つ知識は暗黙的であり、自発的に述べてもらうことはほとんど不可能であり、上手にヒアリングで取り出さなくてはならなかった。そのため、**インタビューシステム**の開発も行われた。
　さらに知識ベースの構築において、獲得した知識が互いに矛盾していたり、一貫性がなかったりと**知識ベースを保守するのが困難**になった。

### 意味ネットワーク
　認知心理学における長期記憶の構造モデルとして考案されたものです。人工知能においても重要な知識表現の1つである。「**概念**」を**ラベルの付いたノード**で表し、概念間の関係をラベルの付いたリンク（矢印）で結んだネットワークとして表す。

###### 「is-a」の関係（「である」の関係）
　継承関係を表している。矢印が向いている側が上位概念で、矢印の始点が下位概念になる。下位概念は例外を指定しない限りは上位概念の属性をすべて引き継ぐ。

###### 「part-of」の関係（「一部である」の関係）
　**属性**を表している。

### オントロジー
###### Cycプロジェクト
　1984年にダグラス・レナートによってスタートされた、**すべての一般常識をコンピュータに取り込もう**というプロジェクト。

###### オントロジー
　**知識を体系化する方法論**のこと。また、哲学用語で**存在論(存在に関する体系的理論)** という意味。人工知能の用語としては、トム・グルーパーの「**概念化の明示的な仕様**」という定義が広く受け入れられている。「言葉」や「その意味」、「それらの関係性」を、**他の人と共有できるように明確な約束事（仕様）として定義**しておくこと。

### 概念間の関係
###### 「is-a」の関係（「である」の関係）
　**上位概念**と**下位概念**の関係を表し、その関係には**推移律**が成立する。
例：「哺乳類 is-a 動物」という関係と「人間 is-a 哺乳類」という関係が成立する場合、「人間 is-a 動物」という関係も成立する。

###### 「part-of」の関係（「一部である」の関係）
　**全体と部分の関係**を表している。その関係には**推移律**が成立するものとしないものがある。**様々な種類の関係**があり、**最低5種類の関係**がある。
 例：「日本 part-of アジア」という関係と「東京 part-of 日本」という関係が成立する場合、「東京 part-of アジア」という関係も成立する。しかし、「指 part-of 太郎」という関係と「太郎 part-of 野球部」という関係が成立しても、「指 part-of 野球部」という関係は成立しない。

### オントロジーの構築
###### ヘビーウェイトオントロジー
　**対象世界の知識をどのように記述すべきかを哲学的にしっかり考えて行うもの**。時間とコストがかかる。Cycプロジェクトが未だに続いているのもその一例。

###### ライトウェイトオントロジー
　**効率を重視し、とにかくコンピュータにデータを読み込ませてできる限り自動的に行うもの**。**ウェブマイニング**や**データマイニング**で利用されている。

###### ワトソン
　IBMが開発し、2011年にアメリカのクイズ番組ジョパディーに出演して歴代の人間チャンピオンと対戦して勝利したことで有名となった。**Question-Answering(質問応答)** という研究分野の成果で、ウィキペディアの情報を元に**ライトウェイトオントロジー**を生成して、それを解答に使っている。

###### 東ロボくん
　2011年～2016年の間、日本でスタートした東大合格を目指す人工知能のプロジェクト。東大合格は不可能という理由から凍結。

## 機械学習・深層学習
### 機械学習
###### 機械学習
　**人工知能のプログラム自身が学習する仕組み。サンプルデータの数が多ければ多いほど、望ましい学習結果が得られます。**
　1990年、インターネット上にウェブページが初めて作られ、その爆発的増加から、大量のデータが蓄積されるようになり、機械学習はそれらのデータを利用できるようになった。
　2000年以降、機械学習では**ビッグデータ(インターネットの成長とともに蓄積された大容量のデータ)** に注目を集めた。

###### レコメンデーションエンジン
　機械学習によって実現化されたアプリケーション。ユーザーの好みを推測する。

###### スパムフィルター
　機械学習によって実現化されたアプリケーション。迷惑メールを検出する。

###### 統計的自然言語処理
　統計的自然言語処理を使った翻訳では、従来のように文法構造や意味構造を分析して単語単位で訳を割り当てるのではなく、**複数の単語をひとまとまりにした単位(句または文単位)** で用意された膨大な量の対訳データ(**コーパス**)を元に、最も正解である確率が高い訳を選択する。

### 深層学習（ディープラーニング）
###### ニューラルネットワーク
　機械学習の1つで、**人間の神経回路を真似**することで学習を実現する。
　1958年に米国の心理学者フランク・ローゼンブラットが提案した**単純パーセプトロン**というニューラルネットワークが元祖。

###### ディープラーニング（深層学習）
　**ニューラルネットワークを多層**にしたものが**ディープラーニング**。しかし、以下の壁も発生する。
 1．ニューラルネットワークを3層より多層にしても学習精度が上がらない。
 2．特定の条件下の単純パーセプトロンでは、直線で分離できるような単純な問題しか解けないというパーセプトロンの限界。

　パーセプトロンの限界については、ニューラルネットワークを多層にして、**誤差逆伝播法(バックプロパゲーション)** を用いて学習すれば克服できることがわかった。
 
　多層にしても学習精度が上がらない問題については、入力したものと同じものを出力するように学習する**自己符号化器**の研究や、層の間でどのように情報を伝達するかを調整する活性化関数の工夫などを足場にして、層を深くしても学習することが可能になった。

###### AlexNet
2012年、画像認識の精度を競い合う協議会**ILSVRC**（ImageNet Large Scale Visual Recognition Challenge）でトロント大学のジェフリー・ヒントン率いる**SuperVision**が圧倒的な勝利を収めた。エラー率は15.3% で、次点よりも 10.8% 以上低かった。当時、**機械学習で用いる特徴量を決めるのは人間**だったが、この勝利をもたらしたのは、**新しい機械学習の方法「深層学習(ディープラーニング)」** であった。この時に開発されたニューラルネットワークのモデルを**AlexNet**と呼ぶ。