G検定用カンペ

# What's this?
ディープラーニングG検定に向けたカンペです。
ざっと理解するためのもので、詳しい説明は書いてないです。
体裁も整えません。
ちょいちょい更新します。

# 本題
## 第二次AIブーム
　エキスパートシステム(知識獲得のボトルネック)
　専門家のノウハウを計算機へ移植
　　→Cycプロジェクトとして継続、2001年からはOpenCycとして一部公開
　フレーム問題について言われるようになる(強いAI/弱いAI)　

## 各種問題

### シンボルグラウンディング問題(記号設置問題)
　　記号システムのシンボルを実世界でそれが意味するものと如何に結びつけるか
　
### フレーム問題
　　人工知能が解くべき問題に関連するものをふるい分けるのに膨大な時間がかかってしまう問題
　　強いAI(汎用AI)...フレーム問題を打ち破ったAI
　　弱いAI(特化型AI)...フレーム問題を打ち破っていないAI

### 知識獲得のボトルネック
　　エキスパートシステムの実現への問題
　　ナレッジエンジニア...エキスパートシステムの実現のための専門職

## 教師あり学習(Supervised Learning)
正解ラベルが未知のサンプルに対して、正解ラベルを予測するモデルを生成する
回帰と分類(kNN法)
ホールドアウト法で過学習が起きてないかのチェックを行う
自然言語処理とかもここ　

## 学習の大まかな分類
### 教師なし学習(Unsupervised Learning)
既知のデータの本質的な構造を浮かび上がらせることを目的とする
クラスタリング(k-means法)、次元削減(次元圧縮)

### 強化学習(Reinforcement Learning)
エージェントが自身の収益を最大化するような行動指針を獲得する
株で利益を得る、とか、ロボット操作のような学習

　
### 半教師あり学習
一部のサンプルに対してのみ正解ラベルを付与し、教師あり学習の精度向上を目指す

### レコメンデーションシステム(レコメンドシステム)
協調ベースフィルタリング
　......ユーザの購買履歴を基に「おすすめ」を提示
内容ベースフィルタリング
　......アイテムの特徴を基に「おすすめ」を提示

## 線形分離可能なデータ
　......1次関数による識別境界を得られる　　　×直線

## 分析手法
### 探索木
幅優先探索...最短距離でゴールに辿り着く解を必ず見つけられる。メモリ不足有り得る
深さ優先探索...最短距離の解とは限らない。探索に時間かかるかも。メモリあまり要らない。
### Min-Max法
ゲーム戦略。
自分が指すときにスコアが最大、相手が指すときにはスコアが最小になるようにする
探索を減らす方法としてαβ法
　最大スコアを探すときのカット→βカット
　最小スコアを探すときのカット→αカット

### モンテカルロ法
ゲームのコスト評価を、ある地点を過ぎた段階からは力任せ(ブルートフォース)にプレイアウトさせる方向で数を多くシミュレーションし、最善の手を見つける手法
ディープラーニング以前に評価された。

### 線形回帰
　重回帰分析......多重共線性に注意が必要

## 学習方法

### アンサンブル学習
　複数のモデルを作り、分類は多数決、回帰は平均を結果として採用する手法
　安定した精度の実現と過学習の抑制のため
　バギング......各モデルを並列に学習させる
　ブースティング......各モデルを逐次的に学習させる
　バギングの性能が高いわけではない

## 正則化
パラメータのノルムが大きくなり過ぎないようにする
LASSO......自動的に特徴量の選択が行われる
Ridge正則化......特徴量選択は行わない。ノルムを小さく抑える
　ノルム......

## スパースなデータ
　殆どが0、稀に0以外が並ぶデータ。
　Sparse：疎

## 機械学習のアルゴリズム

### 積層オートエンコーダ
事前学習(入力層から順番に逐次学習)
　　+
ファインチューニング(ロジスティック回帰層or線形回帰層)
→逐一学習しなくても、活性化関数を工夫すれば何とかなるってわかったため、まず使用されない

### ロジスティクス回帰
教師あり学習、分類予測
対数オッズと呼ばれる値を線形回帰で予測
→正規化して確立として解釈できる出力を得る
結果としてクラス分類が実現される
尤度関数を目的関数に用いる
外れ値に過剰反応しやすい

### SVM(サポートベクターマシン)
教師あり学習、回帰と分類の予測に適する
マージンの最大化
元は2クラス分類のアルゴリズム
スラック変数......線形分離不可能なデータのマージンを最大化するための変数
カーネル法......非線形境界を得られるようにする
カーネルトリック......カーネル法の計算量を大幅に削減する

## ディープラーニング
非線形性を導入するために、層間に活性化関数を挟む
大量のデータ、前処理が必要
### 特徴表現学習......機械学習地震に特徴量を発見させるアプローチ

### 入力データでの工夫
正規化...０～１
標準化...標準正規分布
白色化...各特徴量の無相関化

### 重みの初期値の工夫
シグモイド関数ならXavierの初期値
ReLUならHeの初期値

### 各層での工夫(活性化関数にかける前)
バッチ正規化...オーバーフィッティングしにくくなる＆強力な学習法

### 活性化関数での工夫
×シグモイド関数...勾配消失問題
△tanh関数...層が深くなると勾配消失問題
〇ReLU関数...勾配消失しにくい。派生した関数が必ずしも良い結果を生むとは限らない

### 学習率での工夫
勾配降下法でRMSprop&Adam



### ベイズ推定
教師あり学習、分類に適する

### ランダムフォレスト
教師あり学習、回帰と分類に適する
ランダムに選んだ学習データと説明変数を用いて決定木群を作成。その多数決・平均値を結果として出力。
　→バギング(モデルの並列学習)+決定木
決定木の利点を引き継ぎつつ過学習を押さえられる
中身はブラックボックス化される。

### 決定木
教師あり学習、回帰と分類に適する
条件分岐の繰り返し
情報利益の最大化
メリット
　事前にデータのスケールを揃える必要がない
　分析の説明が容易である
デメリット
　過学習を起こしやすい

### k近傍法(k-nearest neighbor algorithm, k-NN, kNN)
教師あり学習、回帰と分類
入力データに近い方からk個取得、多数決の結果を分類結果にする

### 主成分分析
次元削減の代表的手法のひとつ
寄与率を調べることで、各成分の重要度を測ることができる
主成分を調べることで、各成分の意味を推測することができる
変数間に相関のないデータに対しては有効でない

### k平均法(k-means)
データ点の所属するクラスタを、クラスタ重心の近さで決定する。
分類されるごとにクラスタ重心は計算される
教師なし学習、クラスタリング

## 通説的な

### AI効果
人工知能で新しいことが実現され、その原理がわかってしまうと、「それは単純な自動化であって知能とは関係ない」と結論付ける人間の心理的効果

### 次元の呪い
機械学習においてデータの次元が増えると、計算量や学習に必要なサンプル数が増えて不都合が多いこと
→主成分分析で回避

### ノーフリーランチ定理(No Free Lunch)
あらゆることに万能なアルゴリズムは存在しない
一つのモデルで対応できる限界を数学的に示したもの

### みにくいアヒルの子定理
醜いアヒルの子と普通のアヒルの子の類似性は，任意の二匹の普通のアヒルの子の間の類似性と同じになるという定理
各特徴量を全て同等に扱っていることにより成立する
　→何らかの形で特徴量に重要性を与える必要がある(特徴選択、次元削減の有用性)

### バーニーおじさんのルール
パラメータ数のおよそ10倍のデータサンプルが必要

### モラベックのパラドックス
高度な推論よりも感覚運動スキルの方が多くの計算資源を要する

### イライザ効果
チャットボットと会話しているのに、あたかも本物の人間と対話しているかのような錯覚

### ムーアの法則
半導体の性能と集積は、18カ月ごとに二倍になる

## 自然言語解析系

### BoW(Bag-of-Words)
　文をベクトルで表現する手法

### Word2Vec
　Skip-Gram Modelを用いて周辺語を予測する

### Tay(テイ)
　Microsoft社によるTwitter上の対話型ボット
　不適切調教によりサービス停止

## サービス

### AlphaGo
　DeepMind社

### Ponanza
　将棋AI
　山本一成がメイン開発者
　電王戦でプロ棋士を破る

### ディープブルー
　IBM社
　チェスAI
　力任せの探索
　世界チャンピオンに勝利→バグと言われている

### dotData
NEC社がRDBでの大規模データ予測分析プロセスを自動設計する技術の開発
機械学習システム構築の自動化を提供

### ワトソン
2011年クイズ番組に出た人工知能(無能カモ)
by IBM
Question-Answering
Wikipediaのライトウェイト・オントロジーを生成して解答に使用

##　人工無能
### ELIZA(イライザ)
1964~1966年
by ジョゼフ・ワイゼンバウム

## エキスパートシステム
###　MYCIN(マイシン)
初期(1970年代)のエキスパートシステム
血液中のバクテリアの診断支援

### DENDRAL
1960年代
未知の有機化合物の特定

## ひと
### ジョン・マッカーシー
「人工知能」の言葉の親 @ダートマス会議

### ジェフリー・ヒントン
深層学習の生みの親の一人
トロント大学とGoogleで働く

### ドナルド・クヌース
The Art of Computer Programming

### ヤン・ルカン
1998年にLeNetのモデルを考え出した

### テリー・ウィノグラード
SHRDLUを開発
　......プランニングを積み木の世界で完全に実現するシステム

### アラン・チューリング
イギリス数学者
チューリングテストを提唱
　...人とコンピュータを別場所で対話させ、見抜けなければコンピュータに知能があるとするもの

### ジョン・サール
強いAI/弱いAIの概念をつくった
強いAI(心をもつ)は実現不可能と主張
中国語の部屋

### スティーブン・ハルナッド
シンボルグラウンディング問題について議論

### ダニエル・デネット
フレーム問題をロボットのたとえ話で説明




## プラットフォーム

### Kaggle
世界中の企業や研究者がデータやモデルを投稿するプラットフォーム。
約60慢人が集まるコミュニティ
Competitionと呼ばれる仕組みを提供
　......企業や政府が課題を提示、賞金と引き換えに企業がモデルを買い取る

### arXiv
研究論文の公開・閲覧ができるWebサイト

### OpenAI Gym
自分で制作した強化学習用アルゴリズムを試験できるAIシミュレーションプラットフォーム

## 大会系

### ILSVRC
ImageNet Large Scale Visual Recognition Competition
　ImageNetでは学習済みモデルが公開されている→転移学習
2012年...ジェフリー・ヒントン、SuperVision(使用モデル：AlexNet(8層))で圧倒的成績で優勝、約60,000,000個のパラメータ
2014年...GoogLeNet(22層)、Inceptionモジュール(並列計算)
2015年...ResNet(152層)、Skip connectionによる層を飛び越えた結合→超深層学習



### ローブナーコンテスト
1991年～
チューリングテストに合格する会話ソフトウェアを目指す大会


## そのほか
### ハイパーパラメータ
　グリッドサーチ......事前に設定したハイパーパラメータの各候補に対して交差検証で精度を測り、最も精度が高かったハイパーパラメータ組を最良として採用する。計算量が多い

### ニューラルネットワーク
元祖は単純パーセプトロン
直線分離しかできないと指摘 by マービン・ミンスキー
→バックプロパゲーション(誤差逆伝播学習法)で克服

### ディープラーニング
　ディープニューラルネットワークを用いて予測や学習を行う機械学習手法。
　層を増やしただけ複雑な関数の近似が可能である。
　過学習や勾配消失問題を起こしやすい。
　事前に調整すべきパラメータ数が非常に多い。

### ディープニューラルネットワークの学習
勾配降下法
訓練データの入力サンプルを用いて、モデルで出力の予測を行う
正解ラベルと比較し、誤差Eの値を計算する
誤差Eの勾配を計算し、その逆方向(Eが減少する方向)に「重み」を更新する
　...重みの更新幅を調整する学習率はハイパーパラメータ
(大域的最適解が求まるのが一番良いが)(まあまあ精度が出るので)局所最適解を得ることを目指す

### ソフトマックス関数
　出力の総和を1に正規化して、確率として解釈する際に用いられる活性化関数。
　分類問題の出力層付近で用いられる

### フレームワーク
NumPy......線形代数の計算を行う
Tensorflow......機械学習に関する計算を行う。By Google
Keras......ディープラーニングに特化したTensorflowのラッパー
Scikit-learn......機械学習全般に対応
Chainer......構築と同時に評価を行うDefine-by-Run方式。by Preferred Networks
PyTorch......Chainerから派生したフレームワーク


### CNN(畳み込みニューラルネットワーク)
1982年に考えられた
順伝播型のニューラルネットワークの一種
入力が畳み込み層に伝わり、フィルタと画像との積和演算である畳み込み演算を行う
その次にプーリング層に伝わり、平均値や最大値を用いたプーリング演算を行う
(上記繰り返しの後に)全結合層で出力が計算される。
畳み込み層とプーリング層のユニットは全結合ではない。

### RNN(再帰型ニューラルネットワーク)
　内部に閉路(再帰構造)を持つニューラルネットワーク
　過去の情報を保持できる
　系列データ(変化するデータ)をうまく扱える
　自然言語処理へ広く応用されている
　短期的な情報しか保持できない→LSTMで補う

### LSTM(Long Short-Term Memory)
　RNNの一種
　長期的な情報を考慮して予測計算を行えるようにしたもの

### GAN(敵対的生成ネットワーク)
教師なし学習、画像生成等に利用
イアン・グッドフェローにより考案
生成ネットワークがイメージを生成
→識別ネットワークが教師データ化生成ネットワークの出力物かを判定する
ヤン・ルカン「機械学習において、この10年間で最も恐ろしいアイディア」
c.f.
　VAE(変分オートエンコーダ)
　入力を統計分布に変換する


### 自律型致死性兵器(LAWS：Lethal Autonomous Weapon System)
　人工知能等により完全に自律かつ強力な殺傷能力を持つ兵器
　現段階で存在しない
　2017.2 アシロマAI原則...AIによる軍拡競争は避けるべきである
　　By FLI(Future of Life Institute)←スティーブン・ホーキング、イーロン・マスク

### 中国製造2025
　2025年までの中国の製造業発展のロードマップ
　2015.05に中国政府が発表
　AI技術の取り組みを強化することが明言
　インダストリー4.0(ドイツの産業改革のプロジェクト)の影響を受けている、と言われている


### 技術的特異点(シンギュラリティ)　
AIが文明の主役になる、人工知能が無限に知能の高い存在を作るようになる
レイ・カーツワイル......2045年に到来
ヒューゴ・デ・ガリス......21世紀後半に到来、人間の知能の1兆の1兆倍になっている
イーロン・マスク......危機感、OpenAI設立
オレン・エツィオーニ......終末論的構想は馬鹿げている
ヴァーナー・ヴィンジ......機械が人間の役に立つふりをしなくなること、と定義
スティーブン・ホーキング......人類の終焉

### プランニング
人工知能が自律的に行動計画を作成する技術
STRIPS
　Stanford Research Institute Problem Solver
　前提条件、行動、結果を組み合わせて記述する方法


# 参考図書
深層学習教科書 ディープラーニング G検定（ジェネラリスト） 公式テキスト
徹底攻略 ディープラーニングG検定 ジェネラリスト 問題集