第1章 人工知能(AI)とは
1. 「人工知能」が、推論、認識、判断など、人間と同じ知的な処理能力を持つ機械であるという点については、大多数の研究者の意見は一致している。
- しかし、「人工知能とは何か」については、専門家の間でも共有されている定義は未だない。
- 松尾:人工的に作られた人間のような知能、ないしはそれを作る技術
2. 周囲の状況(入力)によって行動(出力)を変えるエージェント(プログラム)として人工知能を捉えている。
- レベル1、シンプルな制御プログラム 全ての振る舞いが予め決められておる
- エアコンの温度調整
- 洗濯機の水量調整
- 電気シェーバーの深剃り調整
- レベル2、古典的な人工知能 探索・推論・知識データを利用することで、状況に応じて極めて複雑な振る舞いをする
- 掃除ロボット
- 診断プログラム
- レベル3、機械学習を取り入れた人工知能 非常に多くのサンプルデータをもとに入力と出力の関係を学習する
- レベル4、ディープラーニングを取り入れた人工知能
- どの特徴が学習結果に大きく影響するかを知ることが重要(特徴量)
- 特徴量と呼ばれる変数を自動的に学習する
- 画像認識、音声認識、自動翻訳
3. 人工知能で何か新しいことが実現され、その原理をわかってしまうと、「それは単純な自動化であって知能とは関係ない」と結論をつける人間の心理的効果をAI効果と呼ぶ。
4. 人工知能とロボットの違い:ロボットの脳に当たる部分が人工知能になる
- 人工知能の研究とは「考える(知的な処理能力)」という「目に見えないもの」を中心に扱っている学問だ。
5. 人工知能研究の歴史
- 1946 世界初の汎用コンピュータ、真空管を使ったエニアック(ENIAC)が誕生
- 1956 ダートマス会議 人工知能を提唱
- 世界初の人工知能プログラム ロジック・セオリスト
- 1950年代後半〜1960年代 第1次AIブーム(推論・探索の時代)
- 推論や探索の研究が進み、特定の問題に対して解を提示できるようになった
- トイ・プロブレム(迷路・数学定理証明)
- 1980年代 第2次AIブーム (知識の時代)
- エキスパートシステム:データベースに大量の専門知識を溜め込む
- 第五世代コンピュータ(日本政府)
- エキスパートシステム:データベースに大量の専門知識を溜め込む
- 2010年〜 第3次AIブーム(機械学習・特徴表現学習の時代)
- 機械学習
- ディープラーニング
- 特徴量
- ディープラーニング
- 機械学習
第4章 機械学習の具体的手法
学習手法は対象とする課題の種類が異なるだけで、どれが優れているではない。
-
教師あり学習:「与えられたデータ(入力)を元に、そのデータがどんなパターン(出力)になるかを識別・予測する」ものとなる。入力と出力の間にどのような関係があるのかを学習する手法になる。連続値を予測する問題のことを回帰問題と言い、離散値を予測する問題のことを分類問題という。
- 線形回帰(linear regression):データ(の分布)に最も当てはまる直線を考える。
- ラッソ回帰(lasso regression):線形回帰に正則化項を加えた手法。
- ロジスティック回帰(logistic regression):分類問題に用いる手法。シグモイド関数をモデルの出力に用いる。2種類以上の分類を行う場合、ソフトマックス関数を用いる。
- ランダムフォレスト(random forest):決定木を用いる手法。特徴量をランダムに選び出し、ランダムに複数の決定木を作る。複数の決定木それぞれの結果を用いる多数決をとることより、モデルの最終的な出力を決定する。
- ブートストラップサンプリング(Bootstrap sampling): それぞれの決定木に対してランダムに一部のデータを取り出して学習に用いる。
- アンサンブル(ensemble)学習:複数のモデルで学習させること。
- バギング(bagging)またはブートストラップ・アグリゲーティング(Bootstrap aggregating):全体から一部のデータを用いて複数のモデルを用いて学習する方法。複数のモデルを一気に並列に作成する。
- ブースティング(boosting):一部のデータを繰り返し抽出し、複数のモデルを学習させるアプローチ。複数のモデルを逐次に作成する。1つのモデルを作成し学習する→次にモデルを作成し、前のモデルで誤認識したデータを優先的に正しく分類できるように学習する(前のモデルで誤ったデータに重みを付けて学習)→繰り返し→最終的に1つのモデルとして出力を行う。種類例:AdaBoost、勾配ブースティング(gradient boosting)、XgBoost。
- random forestと比べ:より良い精度が得なれる。並列処理が出来ないので、学習にかかる時間は多くなる。
- サポートベクターマシン:(Support Vector Machine、SVM):各データ点との距離が最大となるような境界線を求めることで、パターン分類を行う。この距離を最大化することをマージン(margin)最大化と言う。
- カーネル(kernel)関数、カーネルトリック(kernel trick):データをあえて高次元に写像することで、そこ写像後の空間で線形分類出来るようになる。
- ニューラルネットワーク(neural network):ニューロン、神経回路、入力層、出力層、重み、活性化関数、単純パーセプトロン、多層パーセプトロン、隠れ層
- 単純パーセプトロン(simple perceptron):複数の特徴量(入力)を受け取り、1つの出力を行う。
- 多層パーセプトロン(multilayer perceptron)
- 重み:入力層と出力層におけるニューロンの間の繋がり。
- 誤差逆伝播法(back propagation):予測値と実際の値との誤差をネットワークにフィードバックするアルゴリズム。
- 線形回帰(linear regression):データ(の分布)に最も当てはまる直線を考える。
-
教師なし学習:教師ある学習は入力と出力がセットとなったデータを用いるが、教師なし学習で用いるデータには出力がない。入力データそのものがもつ構造・特徴が学習対象になる。
- k-means:データをk個のグループに分ける。元のデータからグループ構造を見つけ出し、それぞれをまとめる。クラスタ(cluster)、クラスタ分析、クラストに分類する
- 主成分分析(Principal Component Analysis,PCA):データの特徴量の間の関係性を分析することで構造を掴む手法。
- 特徴量削減(次元削減):相関をもつ多数→相関のない少数(主成分)
-
モデルの評価は、未知のデータに対しての予測能力を見ることが適切だ。
- 全データを訓練データ、テストデータとランダムに分割する。(交差検証)
- ホールドアウト検証、k-分割交差検証
- 訓練データ・テストデータ→訓練データ・検証データ・テストデータ
- 混同行列(confusion matrix)、正解率(accuracy)
- 正解率:accuracy=TP+TN / TP+TN+FP+FN 予測が当たった/全データ
- 適合率:precision=TP / TP+FP 予測が正の中で、実際に正であった割合
- 再現率:recall=TP / TP+FN 実際に正であるものの中で、正だと予測できた割合
- F値:F measure=2precisionrecall / precision+recall 適合率と再現率の調和平均
- オーバーフィッティング(overfitting)、正則化、アンダーフィッティング(underfitting)
- 正則化:
- L1正則化:一部のパラメータの値をゼロにすることで、特徴選択を行うことができる。ラッソ回帰。
- L2正則化:パラメータの大きさに応じゼロに近づくことで、汎化された滑らかなモデルを得ることができる。リッジ回帰。
- L1とL2組み合わせた手法はElastic Netだ。
- 全データを訓練データ、テストデータとランダムに分割する。(交差検証)
第5章 ディープラーニングの概要
- ニューラルネットワークはあくまでも入力と出力の関係性が、隠れ層の中に(重みとして)表されているだけに過ぎない。非線形分類ができる。
- 誤差逆伝播法
- 勾配消失問題
- オートエンコーダ(auto encoder)
- 可視層
- 可視層の次元より、隠れ層の次元を小さく置くこと。
- 入力層→隠れ層:encode
- 隠れ層→出力層:decode
- 積層オートエンコーダ(stacked auto encoder):入力層に近い層から順番に学習させ、逐次的な方法。
- 流れ
- オートエンコーダA、オートエンコーダB
- A:可視層←→隠れ層 学習 → Aの隠れ層がBの可視層になる
- B:可視層←→隠れ層 学習 → Bの隠れ層がCの可視層になる
- 繰り返し
- 事前学習(pre-training):このオートエンコーダを順番に学習していく手順のこと。計算コストが高い。
- 積層オートエンコーダの最後にロジスティック回帰層(シグモイド関数/ソフトマックス関数)を足すことで、教師あり学習を実現。(ただし、回帰問題において線形回帰層)。最後に足したロジスティック層も重みの調整が必要だ。
- ファインチューニング(fine-tuning):事前学習を終え、ロジスティック層を足したら、最後に全体で学習を行う。
- 積層オートエンコーダ:事前学習+ファインチューニング
- 流れ
- 深層信念ネットワーク(deep belief networks):制限付きボルツマンマシン(restricted Boltzmann machine)
- オートエンコーダ(auto encoder)
第6章 ディープラーニングの手法
- 活性化関数:
- tanh関数:-1~1 (sigmoid:0~1)
- ReLU関数(Recrified Linear Unit): y=max(0,x)
- Leaky ReLU関数:x <0において僅かな傾きを持っている。
- Parametric ReLU:傾きを学習によって最適化
- Randomized ReLU:複数の傾きをランダムに試す
- 勾配降下法:勾配に沿って降りていくことで解を探索する
- 誤差関数、関数の最小化(微分を用いる)、局所最適解、大域最適解、鞍点、プラトー
- 問題解決
- 適切なタイミングで学習率の値を小さくする
- モーメンタム:慣性、最適化の行進方向に学習を加速させる
- Adagrad,Adadelta,RMSprop,Adam
- 今流行り:RMSprop、Adam
- overfitting解決:
- ドロップアウト
- early stopping
- データの正規化・重みの初期化
- 正規化:スケール、全体、0〜1
- 標準化:標準正規分布に従う
- 白色化:各特徴量を無相関化した上標準化する
- 初期値:sigmoid→Xavier、ReLU→He
- バッチ正規化(batch normalization)、活性化関数をかける前に正規化、overfitting防止
- CNN:S細胞、C細胞、ネオコグニトロン、LeNet、フィルタ、畳み込み、プーリング、カーネル、特徴マップ、移動不変性、ダウンサンプリング(サブサンプリング)、maxプーリング、avgプーリング、全結合層、Global Average Pooling、Inceptionモジュール、Skip connection
- データ拡張(data augmentation):データの水増し
転移学習
- データ拡張(data augmentation):データの水増し
- RNN:BackPropagation Through-Time(BPTT)、入力重み衝突、出力重み衝突
- LSTM(Long Short-Term Memory):LSTMブロック、CEC(Constant Error Carousel)、GRU(Gated Recurrent Unit)
- Bidirectional RNN
- RNN Encoder-Decoder
- Attention
- 強化学習
- 深層強化学習:Q learning、DQN(Deep Q-Network)、モンテカル木探索
- 生成タスク
- 変分オートエンコーダ(Variational AutoEncoder、VAE)、統計分布に変換、平均と分散を表現、潜在空間
- 敵対的生成ネットワーク(Generative Adversarial Network、GAN)
第7章 ディープラーニングの研究分野
-
画像認識分野
- 課題
- 位置課題(location task) 「どこ」
- 検出課題(detection task) 「何」
- 術語
- 関心領域(Region of Interest: ROI)
- Amazon Mechanical Turk
- アレックスネット(AlexNet) 2012,ILSVRC
- R-CNN(Regional CNN):(従来手法で)ROI画像切り出しの後に領域ごとに個別にCNNを呼び出す
- 矩形領域の左上と右下の座標→4点回帰問題になる
- 矩形領域→バンディングボックス(bounding box):領域内の物体識別
- 高速RCNN(fast RCNN):領域の切り出しと切り出した領域の物体認識同時に行う
- faster RCNN
- YOLO: You Only Look Once
- SSD: Single Shot Detector
- セマンティックセグメンテーション(semantic segmentation、複数物体同一ラベル)とインスタンスセグメンテーション(個個の物体ごとに認識).:より詳細な領域分割、画素単位(各画素がどのカテゴリーに属するか)
- 術語
- カーネル幅(受容野)
- 完全畳み込みネットワーク(Fully Convolutional Network:FCN)
- 出力層に縦画素数*横画素数*カテゴリー数
- 解像度復元
- アンサンプリング(unsampling)
- セグネット(Segnet)
2. 自然言語处理分野
- 術語
- 術語
- マルチタスク言語モデル、1対多のマルチタス学習より→普遍埋め込み(universal embedding)モデル
- word2vec→ベクトル空間モデル(vector space models)、単語埋め込みモデル(word embedding models)
- 手法
- スキップグラム(skip-gram) 与えてある単語→周辺単語
- CBOW 周辺単語→与えてある単語
- 後継
- fastText:単語include文字
- ELMo(Embedding Language Modeling):文章表現、2層双方向RNN
- 手法
- seq2seq(シーケンス2シーケンス)
- 画像脚注付け: Neural Image Captioning(NIC):CNN and LM(Language Model)
- Neural Turing Machines(NTM,ニューラルチューリングマシン):コントローラーにLSTMが使われる。
- 課題
-
音声認識
- WaveNet
- 音声合成(Speech synthesis)
- 音声認識(Speech recognition)
- WaveNet
-
強化学習(Reinforcement Learning,RL)
- DQN(Deep Q Networks)
- AlphaGo
- Monte Carlo Tree Search,MCTS:モンテカルロ木探索
- self play
- 改善手法
- 方策(ポリシー)ベース(value function base)
- 行動価値関数ベース(Q function base)
- モデルベース(model base)
- RAINBOW