数式もコードも使わないAI(人工知能)入門セミナー
- 6. AI入
門
6/284
0.はじめに
1.AIの歴史・現状
(1)人工知能 AI(Artificial Intelligence)の歴
史
(2) 現在のブームはディープラーニングが
牽引
(3) AI(人工知能)が人間を超えだした
(4) AI(人工知能)が日常生活に
(5) 経済: 平成時代は、日本の失われた30
年
(6) 経済: 企業の時価総額ランキング
(7) 経済: 日本の労働生産性は先進国最低
(8) AI領域: 日本は、中国・アメリカに完
敗
(9) AI領域: 中国の次世代人工知能発展計
画
(10) AIにより激変する社会
(11) AIがつくる未来
(12) AIがつくる未来: Googleの猫
(13) AIがつくる未来: 画像の自動生成
(14) AIがつくる未来: 小説を書く
(15) AIがつくる未来: 練習して歌う
(16) AIがつくる未来: 医療診断を行う
(17) AIがつくる未来: 店舗が無人に
(18) AIがつくる未来: 働くロボット
(19) AIがつくる未来: 自動運転
(20) AIがつくる未来: 人間と討論する
(21) AIがつくる未来: 農林水産業をサポー
ト
(22) AIがつくる未来: いいことばかり?
(23) AIがつくる未来: AI完全版は非公開に。
(24) AIがつくる未来: セキュリティーを破
る
(25) AIがつくる未来: フェイク動画
(26) AIがつくる未来: フェイク被害
(27) AIがつくる未来: 予測型取締り(アメ
リカ)
(28) AIがつくる未来: 天網(中国)
(29) AIは人類を滅ぼすか?
(30) AIの軍事利用が進んでいる
(31) テクノロジーは「使う側の哲学」が問
われる
目次
【目次1】
- 7. AI入
門
7/284
2.AIの区分
(1) AI(人工知能)の区分
(2) AI(人工知能)の種類
【参考】 群知能 (Swarm Intelligence, SI)
3.AIの全体像
(1) AIの全体像をレイヤーで理解する
(2) ハードウェア
(3) 機械学習ライブラリ(フレームワー
ク)
【参考】 OSSライセンス
(4) 人工知能プラットフォーム
(5) 人工知能アプリケーション(サービ
ス)
(6) ここ数年のAIの歩み
4.Python
(1) AIの開発言語はPythonが主流
(2) 開発環境を支える強力なライブラリ群
5.クラウドとエッジ
(1) クラウドでの処理
(2) クラウドとエッジコンピューティング
(3) エッジコンピューティング 2パター
ン
目次
【目次2】
- 8. AI入
門
8/284
6.機械学習(Machine learning)
(1) 機械学習とは
(2) 統計と機械学習の違い
(3) データの前処理が重要
(4) 「学習」と「判定・推論」の2フェー
ズ
(5) 運用で育てていく
(6) 学習(learning)について
(7) 判定・推論(inference)について
(8) 代表的な学習方法
(9) 教師あり学習(Supervised learning)
(10) 回帰(regression)
(11) 分類(classfication)
(12) 教師なし学習(Unsupervised learning)
(13) クラスタリング(clustering)
(14) レコメンデーション(r
ecommendation)
(15) 機械学習の手法いろいろ
(16) K近傍法(k-nearest neighbor)
(17) 決定木(Decision Tree)
(18) ランダムフォレスト(Random Forest)
(19) ナイーブベイズ(Naive Bayes)
【参考】ベイズ統計
(20) サポートベクターマシン(SVM)
(21) 強化学習( Reinforcement Learning)
(22) 強化学習( MDP: マルコフ決定過程)
(23) 強化学習( 各種アルゴリズム)
(24) 強化学習( Q学習:Q-learning)
(25) 強化学習( SARSA)
(26) 強化学習( モンテカルロ法)
目次
【目次3】
- 9. AI入
門
9/284
7.ニューラルネットワーク
(1) ニューラルネットワークとは
(2) 活性化関数いろいろ
(3) 活性化関数の特性をグラフで見る
(4) 活性化関数の使用イメージ
(5) 多層パーセプトロンへの拡張
(6) 順伝播法(Forward propagation)
(7) 誤差逆伝播法(Back propagation)
(8) 順伝播と誤差逆伝播
(9) 誤差逆伝播法(Back propagation)の理解
(10) 誤差逆伝播法: データの使い方
(11) 誤差逆伝播法: データの使い方
(ホールドアウト法)
(12) 誤差逆伝播法: データの使い方
(クロスバリデーション法)
(13) 誤差逆伝播法: データの使い方
(リーブワンアウト法)
(14) 誤差逆伝播法: 損失関数 回帰
(15) 誤差逆伝播法: 損失関数 分類
(16) 誤差逆伝播法: 損失関数の特性をグラ
フで
(17) 勾配降下法の考え方
(18) 勾配降下法
(19) 勾配降下法の課題
(20) 勾配降下法の最適化アルゴリズム
(21) バッチサイズ
目次
【目次4】
- 10. AI入
門
10/284
8.深層学習(Deep learning)
(1) 深層学習(Deep learning)とは
(2) 層を増やすと何がいいのか?
(3) 機械学習と深層学習の違い
(4) 注目されるきっかけ
(5) さまざまなニューラルネットワーク
(6) CNN: 畳み込みネットワーク
(7) CNN: 畳み込み層
(8) CNN: プーリング層
(9) CNN: 全結合層
(10) CNN: 画像の処理イメージ
(11) CNN: 設定するパラメータ
(12) CNN: 関連技術が次々に・・・
(13) CNN: YOLO(You Look Only Onse)
(14) CNN: Mask R-CNN などなど
(15) CNN: WaveNet(音声技術)
(16) CNN: Adversarial Example
(17) RNN: 再帰型ニューラルネットワーク
(18) RNN: 課題
(19) RNN: LSTM(Long Short-Term Memory)
(20) RNN: こんなことができる
(21) 生成モデル
(22) 生成モデル: オートエンコーダ
(23) 生成モデル: VAE
(24) 生成モデル: GAN
(25) 生成モデル: GAN (DCGAN)
(26) 生成モデル: GAN (SRGAN)
(27) 生成モデル: アップサンプリング
(28) 生成モデル: GAN さまざまな派生
(29) 転移学習とは
(30) 転移学習: ファインチューニングとド
メイン適応
(31) ディープラーニング(深層学習)の問題点
(32) 問題: 局所最適解へのトラップ
(33) 問題: 過学習(過剰適合) Overfitting
(34) 問題: 勾配消失
(35) 問題: 次元の呪い(球面集中現象)
(36) 問題: 学習時間増大
目次
【目次5】
- 11. AI入
門
11/284
8.深層学習(Deep learning)
(37) 問題解決へのアプローチ
(38) 対策: 最適化アルゴリズムの選択
(39) 対策: バッチサイズの適正化
(40) 対策: ハイパーパラメータ
(41) 対策: ハイパーパラメータの最適化
(42) 対策: 正則化(Regularization)
(43) 対策: 早期終了(Early stopping)
(44) 対策: ドロップアウト (Dropout)
(45) 対策: 活性化関数(Maxout)
(46) 対策: バッチ正規化
(47) 対策: 蒸留 (distillation)
(48) 対策: データ拡張(Data Augmentation)
(49) 対策: データの前処理
(50) 対策の結果
(51) 評価について: 正解率、再現率など
(52) 評価について: バイアスとバリアンス
(53) アンサンブル学習 ( Ensemble Learning)
(54) アンサンブル学習の手法
(55) アンサンブル学習の例
(56) 深層強化学習: AIでもっともHotな領域
(57) 深層強化学習: 強化学習のおさらい
(58) 深層強化学習: 各種アルゴリズム
(59) 深層強化学習: 性能比較
(60) 深層強化学習: 年表
(61) 深層強化学習: 応用例
(62) 深層強化学習: 人間を超える能力
目次
【目次6】
- 24. AI入
門
24/284
1.AIの歴史・現状
(10) AIにより激変する社会 1
◇ 金融大手ゴールドマンサックス
AIリストラで500人のトレーダーが3人に激減
エンジニアは9000人を雇用
◇ 配車サービスのUber台頭
アメリカ最大手のタクシー会社Yellow Cabが倒産
運転手はNYだけで8万人。市当局が参入規制も。
◇ AIに奪われる仕事 オックスフォード大学 マイケル・A・オズボーン准教授
アメリカでは、今後~20年の間に総雇用者の
半分の仕事が自動化されるリスクが高い
- 49. AI入
門
49/284
2.AIの区分
人工知能 AI(Artificial Intelligence)
機械学習 ML(Machine Learning)
深層学習 DL(Deep Learning)
AI
強いAI (感情を持つ)
弱いAI
特化型AI(AGI)
汎用型AI(GAI)
ML
教師あり学習
回帰(Regression)
分類(Classification)
異常検出(Anomaly detection)
教師なし学習 クラスタリング、分布推定
強化学習
DL
生成モデル
CNN(Convolutional Neural Network)
RNN(Recurrent Neural Network)
- 50. AI入
門
50/284
2.AIの区分
(2) AI(人工知能)の種類
種 類 概 要
機械学習
コンピュータ上のアルゴリズムが学習し、判断
を行う。
遺伝的アルゴリズム
生物の遺伝子を模倣する。コンピュータ上の遺
伝子で突然変異や交配を行う。
群知能
生物の群れを模倣する。シンプルなルールに
従って行動する個体の集合体が、集団として高
度に振る舞う。
ファジイ制御
あいまいさを許容したファジイ集合を利用し、
人の経験則に近い制御を行う。家電等に利用。
エキスパートシステ
ム
人間の専門家の判断能力を模倣する。知識に基
づく推論・アドバイスが可能。
- 52. AI入
門
52/284
2.AIの区分
【参考】 群知能 (Swarm Intelligence, SI)
2
【アルゴリズム】
利他的アルゴリズム、蟻コロニー最適化、人工蜂コロニーアル
ゴリズム、人工免疫システム、荷電系探索、カッコウ探索、ホ
タルのアルゴリズム、重力探索アルゴリズム、Intelligent Water
Drops、マルチスウォーム最適化、粒子群最適化、河川形成力学。
自己駆動粒子群。確率的拡散探索 など
群知能によるドローンの群
制御
- 71. AI入
門
71/284
4.Python
(2) 開発環境を支える強力なライブラリ群
1
ライブラリ 主な用途
NumPy 数値計算用で高速に行列やベクトル演算を行う
Pandas データの読込みや欠損値処理など機械学習にも使う
SciPy 科学計算用ライブラリ
Jupyter Python の実行環境でコードと出力結果を記録可能
Matplotlib 棒グラフ、散布図、ヒストグラムなどをグラフ描画する
plotly リッチでインタラクティブなグラフを描画する
wxPython クロスプラットフォームのGUIライブラリ
Kafka-Python Apache Kafka(分散ストリーミングプラットフォーム) のクライ
アント
PySpark ビッグデータ処理用に使う
- 72. AI入
門
72/284
4.Python
(2) 開発環境を支える強力なライブラリ群
2
ライブラリ 主な用途
TensorFlow Googleによるディープラーニング用ライブラリ
scikit-learn 機械学習用訓練/検証データの分割や交差検証等が利用
可
Theano 多次元配列を最適化して使用できる機械学習ライブラリ
Chainer 動的に計算グラフを構築可能な日本製の深層学習ライブ
ラリ
Pytorch chainerからforkして作られたライブラリ
Pyevolve Pure Python文法で記述できて遺伝的アルゴリズムで利用
Deap 拡張性が高くデータ構造からアルゴリズムまでカスタマ
イズ可
Stan MCMCサンプラーでRからも使える。PyStanはラッパー
Edward Tensorflowに基づいた確率的プログラミングライブラリ
- 73. AI入
門
73/284
4.Python
(2) 開発環境を支える強力なライブラリ群
3
ライブラリ 主な用途
Requests Web API用でHTTP実装時のコードをシンプルに書ける
Twython Twitter APIをより使いやすくするラッパー
Django 全部乗せのWeb開発系フレームワーク
kivy スマホやマルチタッチ対応のクロスプラットフォームUI
ライブラリ
cocos2d ゲームライブラリ
lxml xmlやhtmlをパースしたりスクレイプに使用する
Selenium lxmlと組み合わせてスクレイプに使用
Scrapy スクレイピングフレームワーク
simplejson JSONのエンコード・デコードライブラリ
Py2exe スクリプトをWindows用の.exeへ変換するライブラリ
pep8 Pep8のコーディング規約に応じたソースコードチェック
pdb ブレークポイント、シングルステップ実行等のデバッガ
- 89. AI入
門
89/284
6.機械学習(Machine
learning)
(8) 代表的な学習方法
方法 概要 適用
教師あり学習
(Supervised Learning)
正解の訓練データを使って学習し、
過去の正解にできるだけ近似(回帰
/分類)する入出力パターンのモデ
ルを構築する
回帰
分類
異常検出
教師なし学習
(Unsupervised Learning)
正解が決まっていない訓練データを
使って学習し、クラスタリングや次
元削減によって本質的なデータ構造
のモデルを構築する
クラスタリング
レコメンデー
ション
強化学習
(Reinforcement Learning)
プログラムの行動に対するフィード
バック(報酬・罰)を訓練データと
して学習し、次に最も取るべき行動
方針のモデルを構築する
- 109. AI入
門
109/284
6.機械学習(Machine
learning)
(21) 強化学習( Reinforcement Learning) 2
強化学習ではその時点で貰える報酬(即時報酬)ではなく、(将来に渡
る)価値を最大化する。よって、近視眼的な行動ではなく、より未来を
考えた価値を最大化する行動を取る必要がある。
このため、エージェントは「ある状態においてある行動を取った時の価
値」の一番高い行動を選択するようにする。この価値のことを Q値 (状態
行動価値)と呼ぶ。
Q値は「報酬」ではなく「価値」。つまり、Q値とは報酬ではなく、長期
的価値を値として持っている関数となる。
「その行動によって、価値の高い状態に遷移できるような行動」を学習
する。
ただし、時間制限しない場合、ローリスクローリターンな行動に偏りが
ちになるため、時間による割引の概念を導入する。つまり、早く行動し
ないと同じ行動でも得られる報酬が減るように「割引率」を設定する。
・報酬の総和を最適化する
・時間に対する報酬の割引を導入する
- 110. AI入
門
110/284
6.機械学習(Machine
learning)
(22) 強化学習( MDP: マルコフ決定過
程)
強化学習では、エージェントが取得する利得(累積報酬)を最大
化するよう、状態から行動へのマッピング(政策)を獲得させる。
マルコフ決定過程(Markov decision processes: MDP)によってモデル化
し、学習アルゴリズムを考える。
マルコフ決定過程では、次の状態への遷移が, そのときの状態と
行動にのみ依存し、それ以前の状態や行動には関係ないことを前
提としている。
・環境は状態を持ち、それは完全に正確に観測可能であること。
・エージェントが行動を行うと、環境が確率的に状態遷移し、環境から確率的に
報酬が得られるが、遷移確率と報酬が得られる確率は事前に分からず、学習過程
で学習していくこと。
・報酬の指数移動平均を最大化するように行動すること。
SMDPやPOMDPなどの数理モデルも考案されている。
- 112. AI入
門
112/284
6.機械学習(Machine
learning)
(24) 強化学習( Q学習:Q-learning)
アルゴリズム 特徴
Q学習
Q-learning
代表的な方法で、行動価値関数(Q値)を学習し、こ
のQ関数で報酬が最大の行動を取る。
次の状態がどれくらいの価値を持つかの期待値を(現
在推定されている値の)最大値にする方法。
期待値(≈実際の報酬)と見込みの差分から学習をしてい
くが、この差分(誤差)をTD誤差といい(Temporal
Difference)、TD誤差により学習を行うTD学習の一種。
Q関数更新後に、実際に行う次の行動Action(next)を、ε-
greedy法にしたがって決定するので、Q関数の更新に使
用したAction(next)と、次の時刻での実際の行動
Action(next)が異なる可能性がある。
※ε-greedy法
報酬が最大になると期待される行動を選択するが、と
きおりランダムに行動して、探索と最適化のバランス
をとる手法
- 113. AI入
門
113/284
6.機械学習(Machine
learning)
(25) 強化学習( SARSA)
アルゴリズム 特徴
SARSA
State, Action, Reward, State(next), Action(next)の頭文字をとっ
た手法で、Q学習では、期待値の見積もりを現在推定
されている値の最大値で置き換えたが、SARSA の場合、
実際に行動してみたらどうなったかを使って期待値の
見積もりを置き換える。なので、現在の価値を更新す
るためにエージェントはもう一度行動する必要がある。
SARSAでは次の時刻の行動Action(next)を、Q関数の更新
より前に決定する。(SARSAも次の行動Action(next)はε-
greedy法にしたがって決定)つまりSARSAでは、実際に
行う次の行動のQ値を使用してQ関数を更新する。
ステップ数が進み、ε-greedy法がほとんど探索を行わず
最適行動のみを行う場合には、Q学習もSARSAも同じ
となる。
一方で試行の初期で探索が多い場面では、SARSAは実
際の行動を反映し、Q学習は期待される最大のものを
使用するという特徴がある。Q関数の更新に最適値を
使わないため、Q学習よりも収束が遅いが局所解に陥
- 114. AI入
門
114/284
6.機械学習(Machine
learning)
(26) 強化学習( モンテカルロ法)
アルゴリズム 特徴
モンテカルロ法
Q学習やSARSAとは違い、Q値の更新のときに「次の時点のQ
値」を使わない。何らかの報酬が得られるまで行動をしてみ
て、その報酬値を知ってから、辿ってきた状態と行動に対し
てその報酬を分配していくという手法。なので、モンテカル
ロ法では報酬が得られて初めてQ値を更新することができる。
(報酬が得られるまでQ値を更新することができない。)
一方Q学習やSARSAは「現在推定中のQ値でも、未来に渡る価
値を含むはずだ」という前提で、次の時点でのQ値を使って
常に更新を行う。モンテカルロ法は一度未来を見てから一気
にQ値の更新をかけるため、遠い未来の報酬も比較的早く学
習できるという特徴がある。
各ステップごとにQ関数を更新しないという特徴があり、試
行が終了した時点で、Q関数を全ステップ分一気に更新する。
そのため、試行終了までの各ステップでの(状態s、行動a、
得た報酬r)をすべて記憶しておく。試行の途中でQ関数を更新
できないが2つの利点がある。
・実際に得た報酬でQ関数を更新できる
・「報酬をうまく規定しづらいタスク」の学習に対応しやす
- 118. AI入
門
118/284
7.ニューラルネットワー
ク
(2) 活性化関数いろいろ
関数名 出力 特徴
ステップ関数 0,1
入力値が0未満なら出力値は0
入力値が0以上なら出力値は1
シグモイド関数 0~1
入力値が小さいと出力値は0に近づく
入力値が大きいと出力値は1に近づく
2クラスの識別に利用
ReLU関数 0~
入力値が0未満なら出力値は0
入力値が0以上なら出力は入力値
Leaky ReLU関数 -0.01~
入力値が0未満ならわずかな値を取る
この微小値が計算を進行させる
Tanh関数 -1~1 0を中心にマイナスとプラス側で相同
ソフトマックス関数 0~1
最終的な合計値が1となるように出力
多クラス識別に利用
恒等関数 入力値
入力と同じ値を出力する
回帰で使用することがある
- 133. AI入
門
133/284
7.ニューラルネットワー
ク
(14) 誤差逆伝播法: 損失関数 回帰
出力結果(回帰)の精度を上げるための計算を行
う
損失関数が最小0に近づくようにパラメータを更新する
損失関数(回帰) 特徴
二乗誤差(最小二乗
法)
差の二乗を足すシンプルさ
よく使われるが外れ値に弱い
τ−分位損失
分位点回帰に使用
正解の上に位置するのか下かで損失が変
わるのが特徴
Huber損失 ロバスト回帰に使用
ε−感度損失
サポートベクター回帰に使用
不感帯を設定する
- 134. AI入
門
134/284
7.ニューラルネットワー
ク
(15) 誤差逆伝播法: 損失関数 分類
出力結果(分類)の精度を上げるための計算を行
う
損失関数が最小0に近づくようにパラメータを更新する
損失関数(分類) 特徴
交差エントロピー誤差
誤った確率分布 q が、正しい確率分布 p と
異なるほど大きい値になる
ロジスティック損失 ロジスティック回帰で使用
指数損失
分類が失敗しているケースに非常に厳し
い損失を付与
ヒンジ損失
サポートベクターマシンで使用
一定以上離れた場合には損失を0にする
平滑化ヒンジ損失 ヒンジ損失を滑らかにしたもの
- 138. AI入
門
138/284
7.ニューラルネットワー
ク
(18) 勾配降下法
勾配降下法 概要
最急降下法(バッチ勾配法)
Gradient Descent
学習データのすべての誤差の合計を取ってパラ
メーターを更新する。計算コストが大きく、学習
データが増えるたびに全データで再学習が必要。
オンライン更新(新しい例を得ながらモデルを更
新)することができない。学習率の設定が重要。
確率的勾配降下法
Stochastic Gradient
Descent(SDG)
学習データをシャッフルした上でランダムに1つを
取り出して誤差を計算しパラメーターを更新する。
増えた分だけの学習データのみで再学習するため
再学習の計算量が低くなる。最急降下法よりも早
く最適解にたどり着けるが、運が悪ければいつま
で経っても適した答えを導けない。
ミニバッチ確率的勾配降下法
Minibatch SGD(MSGD)
最急降下法では時間がかかりすぎ、確率的勾配降
下法では一つ一つのデータに揺さぶられるので、
学習データの中からランダムにいくつかのデータ
を取り出して誤差を計算、パラメーターを更新す
る。このとき一回に取り出すデータの数をバッチ
サイズと呼ぶ。
- 144. AI入
門
144/284
7.ニューラルネットワー
ク
(20) 勾配降下法の最適化アルゴリズム 2
最適化アルゴリズム 特徴
Nesterovの加速勾配降
下法
Momentumの慣性項に対し、現在のパラメータに関する勾配計
算ではなく、未来のパラメータの推定位置を計算することで
勾配更新を調整(加速し過ぎの場合は減速)する。
Adadelta
Adagradの発展形で急速かつ単調な学習率の低下を防ぐ。学習
率の初期値設定が不要。直近の勾配情報を優先して計算する。
勾配の合計値を、過去のタイムステップ全ての勾配の二乗を
減衰平均化し、再帰的に定義するのでタイムステップ時点に
おける移動平均は、その時点の勾配と過去の平均にのみ依存
する。
Adam
他のアルゴリズムのいいとこ取り。重みつき平均と重みつき
勾配を推定する。勾配に過去の影響の強さを反映させ、高い
性能を発揮する。
この他に RMSpropGraves (2014)、SMORMS3 (2015)、AdaMax (2015)、Nadam (2016)、
Eve (2016)、Santa (2016)、GD by GD (2016)、AdaSecant (2017) など、次々に提
唱されている。
- 147. AI入
門
147/284
learning)
人工知能 AI(Artificial Intelligence)
機械学習 ML(Machine Learning)
深層学習 DL(Deep Learning)
AI
強いAI (感情を持つ)
弱いAI
特化型AI(AGI)
汎用型AI(GAI)
ML
教師あり学習
回帰(Regression)
分類(Classification)
異常検出(Anomaly detection)
教師なし学習 クラスタリング、分布推定
強化学習
DL
生成モデル
CNN(Convolutional Neural Network)
RNN(Recurrent Neural Network)
- 156. AI入
門
156/284
今回は、代表的な
CNN: 畳み込みネットワーク(Convolutional Neural Network)
RNN: 再帰型ニューラルネットワーク(Recurrent Neural Network)
生成モデル:オートエンコーダ(自己符号化器)やGANなど
を紹介します。
【CNN】
• 画像に含まれる物、場所、人などを検知しラベル付けする。
• 人の音声をテキストに変換する。自然な音や音声を合成する。
• 画像やビデオに自然言語で注釈を付ける。
• 自動運転車で道路を把握したり周囲の障害物を避ける。
• 自動プレイの為テレビゲームの画面解析を行う。
• 画像、音、テキストなどを自動生成するモデルで使われる
learning)
(5) さまざまなニューラルネットワーク
3
- 171. AI入
門
171/284
learning)
(14) CNN: Mask R-CNN などなど
物体検出をバウンディングボックスの範囲ではなく、ピクセル
単位で行う(セマンテックセグメンテーション)
他にも、FCN、SegNet、Dilated畳み込み、DeepLab (v1 & v2)、
RefineNet、PSPNet、Large Kernel Matters、DeepLab v3などが提唱され
ている
- 182. AI入
門
182/284
learning)
(24) 生成モデル: GAN (Generative Adversarial Networks)
GAN(敵性的生成ネットワーク)は、Generator(生成器)とDiscriminator(判別
器)の2つネットワークの学習によって、ノイズから画像を生成するアル
ゴリズム
生成器Gは、判別器Dに本物と誤認識させるような画像を生成し、判別
器Dは、本物か偽物かを見分ける役割がある。
お互いが切磋琢磨して学習すると、本物と見分けがつかないような画像
も生成できる。
DCGANのモデル
- 186. AI入
門
186/284
名称 概要
GAN ベースのシンプルなGAN
DCGAN GANの2つのネットワークにCNNを用いることにより、学
習の精度が上がり高解像度の画像を生成
Pix2pix 一対一に対応してそうな画像間を変換するGAN
pix2pixHD 2048×1024の高解像な画像を生成
CycleGAN 二つの画像を変換するように学習したGAN
StarGAN CycleGANの複数対応版
DCGAN シンプルに画像を生成するGAN
PGGAN 1024×1024の高解像な画像を生成
ACGAN DCGANより綺麗な画像生成を実現
SAGAN 指定したクラスの画像生成で最も高画質な生成を実現
learning)
(28) 生成モデル: GAN さまざまな派生 1
◇注目される技術なので、さまざまな派生版が提唱されている
- 187. AI入
門
187/284
名称 概要
SNGAN 正則化を損失関数に加えてより学習の精度あげる
ConditionalGAN 生成して欲しい画像のラベルも入力に与えることで指定
した画像を生成できる
InfoGAN 相互情報量を評価関数に導入し、可能な限り画像の何ら
かの特徴と意味の取れた関係を持つように学習する
StackGAN 高精度に文章から画像を生成できる
AnoGAN 画像の異常検出を試みる
WGAN 学習の方法を工夫する提案
WGAN-gp 評価関数にペナルティ項を加え、よりよいWGANの学習を
提案
3DGAN 画像ではなく3次元のボクセルを生成
CartoonGAN アニメ調に特化させているGAN
learning)
(28) 生成モデル: GAN さまざまな派生 2
◇注目される技術なので、さまざまな派生版が提唱されている
- 197. AI入
門
197/284
learning)
(38) 対策: 最適化アルゴリズムの選択 1
◇【再掲】勾配降下法のアルゴリズム
状況に応じて最適なものを使う
最適化アルゴリズム 特徴
確率的勾配降下法
(SDG)
学習データの中からランダムに一つのデータを選んで勾配を
計算するため局所最適解にトラップされにくい。学習率と勾
配をかけるシンプルな計算。
欠点:学習の進行度で更新量の調整ができない。
MomentumSDG
前回の勾配と現時点での勾配を線形結合し、勾配の更新方法
とする。(1つ前の勾配方向の影響を受けながら現在の勾配方
向にも進む)。過去の勾配ほど影響を少なくする。
AdaGrad
学習係数を自動で調整するので、便利で効率良い探査が行え
る。
同じ勾配方向ばかりが現れた場合、その方向に対する進みを
減衰させ、出現頻度の少ない勾配方向の成分を優先する計算
を行う。
欠点:学習が進むと更新量が0になって学習が進まない。
- 198. AI入
門
198/284
learning)
(38) 対策: 最適化アルゴリズムの選択 2
◇【再掲】勾配降下法のアルゴリズム
状況に応じて最適なものを使う
最適化アルゴリズム 特徴
Nesterovの加速勾配降
下法
Momentumの慣性項に対し、現在のパラメータに関する勾配計
算ではなく、未来のパラメータの推定位置を計算することで
勾配更新を調整(加速し過ぎの場合は減速)する。
Adadelta
Adagradの発展形で急速かつ単調な学習率の低下を防ぐ。学習
率の初期値設定が不要。直近の勾配情報を優先して計算する。
勾配の合計値を、過去のタイムステップ全ての勾配の二乗を
減衰平均化し、再帰的に定義するのでタイムステップ時点に
おける移動平均は、その時点の勾配と過去の平均にのみ依存
する。
Adam
他のアルゴリズムのいいとこ取り。重みつき平均と重みつき
勾配を推定する。勾配に過去の影響の強さを反映させ、高い
性能を発揮する。
この他に RMSpropGraves (2014)、SMORMS3 (2015)、AdaMax (2015)、Nadam (2016)、Eve (2016)、
Santa (2016)、GD by GD (2016)、AdaSecant (2017) など、次々に提唱されている。
- 201. AI入
門
201/284
learning)
(41) 対策: ハイパーパラメータの最適化
1
◇パラメータ調整法のいろいろ
調整法 概要
ランダム・サーチ
RandomizedSearchCV
ランダムにパラメータを試していく
グリッド・サーチ
GridSearchCV
パラメータの候補値を指定して、その組み合わせを全て試
す
ラテン超方格サンプリ
ング法
LHS
層別サンプリング法のひとつで、各変数をn個に分割して、
ランダムに値を取り出して試す
ベイズ最適化
Bayesian Optimization
パラメータに対する評価関数の分布がガウス過程に従うと
仮定し、パラメータ値を試していくことで実際の分布を探
索してより良いパラメータ値を得る
遺伝アルゴリズム
Genetic Algorithm
N個のランダムなパラメータの組み合わせ(遺伝個体)を作
り、その評価関数を得て、2つの遺伝個体間で交叉と突然
変異を行うことでより良いパラメータを得る
SMBO
TPE
パラメータに対する評価関数を予測する関数を使い、パラ
メータの変化でモデルがどのくらい改善されるかを予測し
て探索する
- 203. AI入
門
203/284
learning)
(42) 対策: 正則化(Regularization) 1
過学習の防止のため、モデルを学習する際に複雑さが増すこと
に対するペナルティを設け、このペナルティを訓練誤差に加え
た量が最も小さくなる学習モデルを求めるようにすることによ
り汎化性能を高める。
■L1正則化(L1ノルム) LASSO
ペナルティとして学習モデルのパラメータの絶対値の総和を用いる
特定のデータの重みを0にする事で、不要なデータを削除する
パラメータの一部を完全に0にするため、モデルの推定と変数選択を同
時に行う
■L2正則化(L2ノルム) Ridge
ペナルティとして学習モデルのパラメータの二乗の総和を用いる
データの大きさに応じて0に近づけて、滑らかなモデルとする
両方ともモデルの次元が低い方がペナルティが小さくなる。
(例外データに対応しようとして次元が増えるのを抑制する効果あり)
L1ノルムとL2ノルムを線形結合したElastic Netというモデルも提案されて
- 204. AI入
門
204/284
learning)
(42) 対策: 正則化(Regularization) 2
重み付けベクトルの空間上に学習データに対する誤差項の広がりを配置しこれを
動かすことで誤差を最小化させるが、そこにペナルティ項を付けておくことで
w1,w2の定まり方が変わる。
L1ノルム正則化: 尖った形の領域に接するようにしなければならないため自ず
とw2の軸上に最適点が定まってw1=0となる。「w2だけに値が入りw1はゼロにな
る」というような、いわゆるスパース(疎)な解を得やすい。「不要なパラメー
タを削りたい」(次元・特徴量削減)という時によく使われる。
L2ノルム正則化: 円状の領域に接するようにしなければならないためw1,w2とも
にnon-zeroな値が入る。過学習を抑えて汎化された滑らかなモデルを得やすい。
- 206. AI入
門
206/284
learning)
(44) 対策: ドロップアウト (Dropout)
過学習の防止のため、ある更新で層の中のノードのうちのいく
つかを無効にして(そもそも存在しないかのように扱って)学
習を行い、次の更新では別のノードを無効にして学習を行うこ
とを繰り返す。
形が異なるネットワークを複数使うことになるため、アンサン
ブル学習の効果があり、自由度を強制的に小さくして汎化性能
を上げる。