今日は、非エンジニア向けのディープラーニング資格、「G検定」の公式テキスト、「深層学習教科書 ディープラーニング G検定(ジェネラリスト) 公式テキスト」の要約をご紹介します。
G検定とは?
【本書の特徴】
1)試験運営団体である「日本ディープラーニング協会」が執筆。
2)各章末には、練習問題つき。試験勉強に最適。
3)最新シラバス「JDLA Deep Learning for GENERAL 2018」に完全準拠。
4)ディープラーニングについて最新事情も踏まえ学ぶことができる。【対象読者】
・「ディープラーニング G検定(ジェネラリスト検定)」を受験しようと思っている人
・ディープラーニングについてこれから広く学びたい人
・ディープラーニングを事業活用しようと思っている人【G検定とは】
amazonより
・目的:ディープラーニングを事業に活かすための知識を有しているかを検定する
・受験資格制限:なし
・試験概要:120分、知識問題(多肢選択式)、オンライン実施(自宅受験)
・出題問題:シラバスより出題
・日程:公式サイトにて公表
G検定(ジェネラリスト) 公式テキストの要約
要点を記載していきます!
人工知能とは(1956年 by ジョンマッカーシー @ダートマス会議)
「推論、認識、判断など人間同様の知的な処理能力を持つ機械」※人工知能とは何かは絶対解は無い
・レベル1 「シンプルな制御」
全ての振る舞いが決められた制御工学
・レベル2 「古典的な人工知能」
探索、推論、知識データを使い状況に応じた振る舞い(掃除ロボや診断システムなど)
・レベル3 「機械学習」
多くのサンプルを元に入出力を学習したもの(検索エンジンや渋滞予測など)
・レベル4 ディープラーニング
特徴表現学習(学習の基準となる、特徴量を自ら学習するもの)
AI効果…AIの理屈がわかると単純な自動化で知能ではないと結論付ける人間心理
【歴史(第一次〜三次は単体では無く今も文脈はある)】
1946年 エニアック(世界初のコンピュータ)
1956年 ダートマス会議
ロジックセオリスト…初の人工知能
・第一次…推論、探索の時代(トイプロブレムしか解けず )
探索木→迷路が分岐のツリー構造
幅優先探索…重いが早く正確
深さ優先探索…軽いが時間かかる
ロボットの行動計画(プランニング)
前提条件、行動、結界→stripsと呼ぶ
積み木の世界(SHRDLU)→対話形式で物体を動かす
ボードゲーム
天文学的分岐→コスト(スコア)の概念(計算法は事前定義)
mini-max法…自番でスコア最大、相手方逆
αβ法…上記内部不要な探索をカットする
モンテカルロ法…局面が進んだらスコア評価を捨て、ランダムに手をシミュレーションし、勝率が高い手を選択していく
・第二次…知識の時代
エキスパートシステム…専門知識を取り込み専門家の様に振る舞うプログラム
イライザ(1966)…世界初のチャットボット
マイシン(MYCIN)…医療領域の対話システム
DENDRAL…未知の有機化合物の発見
専門家、ドキュメント、事例から知識を探すが、最も重要な人からの収集が難しい
→インタビューシステムの発展
→知識の保守が煩雑→意味ネットワークの発展
意味ネットワーク…概念をノードで繋げる
is-a …上位と下位の継承関係
part-of …属性(最低5種類存在)
CYCプロジェクト…30年以上続く手打ちのDB
オントロジー…記述方法の定義書→意味ネットワークの書き方
ヘビーウェイトオントロジー…知識の記述を哲学的に考えるべき
ライトウェイトオントロジー…とにかく自動的に効率良く読み込ませる→マイニング、セマンティックWebなどに
・第三次…機械学習、特徴表現学習(特徴量を自ら)
DLは2012年ILSVRCでsupervisionの優勝で登場
機械学習(特徴量は手動)←→DL(特徴量も自動)
ニューラルネットワーク…人間の神経回路を真似ね学習を実現→元祖は1958年単純パーセプトロン
→機械学習内の、ニューラルネットワーク内の、ディープラーニング(ニューラル〜を多層化)
単純パーセプトロンは直線のみ→パックプロパゲーション(勾配消失)→自己符号化器…
背景としてネット→ビッグデータの発展
更に特にGPUが大きい(並列処理が特徴)
GPGPU(画像以外にも適切)やTPU(google)
【人工知能の問題】
トイプロブレム…おもちゃのような問題しか解けず、現実世界の問題を解くのは難しいとされるもの
フレーム問題…今しようとしていることだけ選び出すのが難しい(今も課題)
チューリングテスト…別の場所に居る人がbotと会話しbotと見抜けなければ知能があるとする
→イライザが有名、ローブナーコンテストが開催されている
強いAI、弱いAI…強い物は人間の心を再現出来るとする
→チューリングテストに異議を唱える、中国語の部屋(マニュアルは使えるがそれは証明にならない)
シンボルグラウンディング…記号(シンボル)と意味が結び付かない(例:シマウマ)
身体性アプローチ…意味を理解するために必要とする議論
特徴量設計…機械学習では特徴量が性能を決定
→特徴量を自ら発見すること→特徴表現学習
シンギュラリティ…機械が人間を超えるとされる特異点。2045年と言われている
【機械学習の手法】
機械学習の目的…モデルの予測値と実際値との誤差を無くすこと
・教師あり…入力を元にどんなパターンになるのか識別、予測
→回帰問題(売上など連続した値)
→分類問題(画像識別など離散値予測)
・教師なし…データが持つ構造や特徴を学習
・強化学習…スコアが高くなるように行動を学習していくこと
・教師ありの手法
線形回帰…単純な直線回帰
ロジスティック回帰…回帰ではなく分類問題、シグモイド関数を使用し、0〜1で基準値をベースに分類
ランダムフォレスト…決定木の組合せが多数の為、ランダムに特徴量を抜き出し、それぞれを用いて多数決
決定木…分岐路の事
アンサンブル学習…複数のモデルで学習させること
バギング…一部のデータを使い複数のモデルで学習すること(並列で一気)
ブースティング…一部のデータを使い複数のモデルで学習すること(逐次的に作成、要は直列)
サポートベクターマシン…各データ点との距離が最大となる境界線を求めてパターン分類
→データが線形分類出来ない→高次元写像し分類(その際使われるのがカーネル関数)
ニューラルネットワーク…ニューロンを再現したい
単純パーセプトロン…複数の入力に対して1つの出力→層の間の伝播信号の調整する関数を活性化関数(シグモイド関数を使用)
多層パーセプトロン…隠れ層が追加され、非線形に分類も可能に
・教師なしの手法
k-means(分類しデータの構造を知る)…
適当にクラスタをn個に分割し、各クラスタの重心求め、重心と各データの距離を求め、各データを最も距離が近い重心に対応するクラスタに振り分け直し、重心の位置が変化しなくなるまで繰り返す
→クラスタの特徴を解釈するのは人間
主成分分析(相関を分析にデータ構造を知る)…
特徴量が多い場合、相関持つ多数を持たない少数の特徴量(主成分)へ次元削減
→学習時間の短縮やデータの可視化
・強化学習(深層強化学習、行動を学習する仕組み)
→目的とする報酬(スコア)を最大化するために学習
状態をいかに表現するか、いかに行動に結ぶかが難しい→DLの登場でQ学習を利用し精度UP(α-goなど)
DQN(deepQnet)以降様々なモデル
改善手法としては、方策(ポリシー)ベース、行動価値関数ベース、モデルベースの3つ
RAINBOW…上記全てを入れたもの
【手法の評価方法】
未知のデータに対しての予測能力を見る
→未知が難しいため擬似的に作り出す
→全データを分割(交差検証)
訓練データ(学習用)
テストデータ(評価用)
テストと訓練を一回分割→ホールドアウト検証
複数回分割→k-分割交差検証
評価基準(テストデータを用いる)
混同行列
正解率…TP+TN/全データ数
予測が当たった割合
適合率…TP/TP+FP
予測正の中で実際に正
再現率…TP/TP+FN
実際に正の中で正と予測
F値…2×適合×再現/適合+再現
適合と再現の調和平均→各々だと予測が偏る可能性の時
オーバーフィッティング…訓練データにのみ最適化されること
アンダーフィッティング…全体の予測性能が低下
【ディープラーニング概要】
多層パーセプトロンが基本のニューラルネットワークの事
→単純から多層にして性能が上がったように層を増やせばより複雑な関数を表現出来るのではないかの発想が基
→つまりディープラーニングとは隠れ層を増やしたニューラルネットワーク→ディープニューラルネットワーク
データ量の目安→
バーニーおじさんのルール…モデルのパラメータの10倍のデータが必要
【過去の問題点】
誤差逆伝播法が深くなると勾配消失問題
→活性化関数(シグモイド関数)の微分の最大が0.25のため
オートエンコーダ(自己符号化器) 2006年…
学習ができない問題→事前学習で解消
可視化層(入力と出力のセット)と隠れ層の2層からなる
→ 入力→隠れ→出力の順で、入出力が同じになる
→隠れ層の次元を入力よりも小さくすることで隠れ層に入力情報が圧縮されたものが反映
入力→隠れ…エンコード
隠れ→出力…デコード
→ディープにするために積み重ね、積層オートエンコーダ
→入力層から段階的に学習させていく形(事前学習)
→ラベルを出力することが出来ない為、最後にロジスティック回帰層(シグモイドorソフトマックス)or線形回帰
つまり、事前学習→出力層追加→出力層も重みの調整するために一気に学習(ファインチューニング)
※事前学習により調整されているため適切に逆伝播
→その後、深層信念ネットワークや制限付きボルツマン
・活性化関数
出力に使う関数は必ずシグモイドorソフトマックス
勾配消失は活性化関数の問題→解決すれば事前学習不要
隠れ層では変更可能
tanh(ハイパボリックタンジェント)…微分の最大値が1
ReLU関数…現在最も使われている→派生(Leaky ReLU)
↑活性化関数の問題
・学習率の最適化
学習=誤差を無くす→誤差関数最小→関数の最小化→微分
→各層の重みで誤差関数を微分した値が0になる重みがわかればよい
→勾配降下法…勾配に沿って降りていき解を探索
→各パラメータに対して勾配降下法で繰り返し計算を行うこと=学習
・勾配降下法の問題点
1.
乱高下途中で低めの点を最適解と勘違い(局所最適解)
←→大域最適解
→学習率(どれだけ降りていくか)を大きく設定することで解決(最適解を通り過ぎない為に適切なタイミングで学習率は小さくする)
2.
3次元で考えると鞍点(ある次元では極小だが別次元では極大)に陥り、抜け出せなくなる状態に(プラトー)
→モーメンタム(最適化の進行方向に学習を加速させる
→その後RMSpropやAdamなど
↑学習率の問題
・オーバーフィッティング対策
ドロップアウト…ランダムにニューロンをドロップアウトする(アンサンブル学習)
early stopping…訓練データに対しての学習のため、続けて行くと誤差が大きくなり出す→上がりはじめで止める
学習前に最適化するために、正規化(データ全体を揃える)
・各特徴量を0〜1の範囲に…各特徴量を同特徴量の最大値で割る
・標準化…標準正規分布に従う形に
・白色化…各特徴量を無相関化した上で標準化
→伝播の度に崩れるため、初期値に重みを付ける→乱数×適当な係数(関数による)
バッチ正則化…
重みの初期値をいじるんでなくて各階層で正規化してしまえば良いという発想(活性化関数の前に)
正則化…学習の式に項を追加し、重みの値の範囲を制限
ラッソ回帰(L1正則化)…一部のパラメータを0に
リッジ回帰(L2正則化)…パラメータの大きさを0に近付ける
【ディープラーニングの手法】
基本はディープニューラルネットワークだが分野によっては最適な形に
CNN(畳み込みネットワーク)…
画像に特化、画像は縦横色の3次元だが通常のものだと縦に並べる必要があるためそのまま次元を維持したモデル
ネオコグニトロン…人間の視覚野を再現
LeNet…畳み込み層とプーリング層
→どちらも2種の層の多層だが、下のみ誤差逆伝播法使用
畳み込み…フィルタ(カーネル)を用いて、画像と重ね合わせ、画像との掛け合わせた数値の総和を持つ処理→出来たデータを特徴マップ→フィルタの数字によって特徴が変わるためこの数値を学習するのが=重み+これにより移動不変性も獲得
プーリング…画像サイズを決められたルールに従って小さくすること、決められた演算のみを行う(ex.maxプーリング、aveプーリング→特徴マップの一部分の4象限の最大を取って1象限に)
全結合層…最後に通常の出力層に繋げて1次元に出力(最近はこれを使用せず、1つの特徴マップに1つのクラスを対応させる事が多い)
※同じ物体でも光の当たり方などが多様
→上下左右にズラしたり回転、拡大縮小などデータを擬似的に水増しすることをデータ拡張
↓CNNの発展系↓
AlexNet、VGG、GoogLeNet
→深いと計算複雑になるため小さいサイズの畳み込みフィルターで次元を削減や、inceptionモジュール(google)
超深層だとそれでも勾配消失→skip connection(層を飛び越えた結合)を加える(ResNet)
転移学習…実際に使うとき1から学習は計算量凄い→欲しいのは最適化されたネットワークの重み→ImageNetで学習済みのモデル有→新たに何層か付け足しファインチューニングするだけで良い→学習済みネットワークを新しいタスク識別に使うこと
RNN(リカレントニューラルネットワーク)…
時系列データを用いた学習→過去の状態を反映させる隠れ層があれば良い→基本系は
入力→隠れ(内部に過去の隠れ層も)→出力
→時間軸に沿って逆伝播(BPTT)
問題点
・勾配消失問題
・立つ時間によって重みが変わる(入力重み衝突、出力重み衝突)
→LSTM(long short term memory)で解決
通常のDLは活性化関数の工夫などだったが、これは隠れ層の構造を変え上記問題を解決
↓構造↓
・誤差を内部に留まらせるセル(CEC)
・必要な情報を必要なタイミングで保持、消却させるゲート(入力、出力、忘却ゲートから成り、入力、出力は衝突回避、忘却は誤差が過剰にセルに停留するのを防ぐためにリセット機能)
→計算が多いため、簡略化したモデル
→GRU…リセットゲートと更新ゲートの2種
↓発展系↓
Bidirectional RNN…2つのLSTMを使うことで未来から過去方向も学習
RNN Encoder-Decoder…これまでは出力が1点に対し出力も時系列にするために2つのLSTMを使い方エンコーダが入力、デコーダが出力
Attention…時間の重みを考慮したモデル、過去それぞれの時点での重みを学習
・生成タスク(これまでは識別、予測タスク)
1.データを元に新しく別の何かを生成
→識別モデルの延長、次に何が来るか予測など
WaveNet…音声学習の有名モデル、音声生成と音声認識
2.データそのものを生成
→元データがどんな分布か推測に、分布に基づき似たデータを生成
・画像生成モデル
VAE(変分オートエンコーダ)…エンコーダが入力を統計分布に変換、つまり平均と分散、ランダムにサンプリングした点をデコーダで復元
GAN(敵対的生成ネットワーク)…ジェネレータ(入力として潜在空間のランダムベクトルを受取、画像を生成&出力)とディススクリミネータ(画像を受取、本物かジェネによる偽物か予測して出力)
→2種のネットワークを戦わせる、ジェネは偽物を作るように学習、ディスは偽物を見抜けるように
DCGAN…GANにCNNを用いたもの
【各研究分野】
・画像認識
バウンディングボックス(短形、四角の領域切り出し)とセマンティックセグメンテーション(各画素がどのカテゴリーに属するか)の2つの方向性
AlexNet…ILSVRCでSVMにDLが初めて勝った
↓上記コンテストは100のカテゴリー分類、一般画像認識へ(位置課題と検出課題、つまりどこに何)
R-CNN…関心領域(ROI)を、画像上のバンディングボックス(長方形の短形)の左上と右下の座標を表現して4つの点を予測する回帰問題化したのち、CNNに繋ぐが時間がかかった
高速RCNN…CNNが位置情報を持つので切り出しと領域の物体認識を同時に行う
faster RCNN…ほぼ実時間で可能に→動画認識へ
発展系としてYOLOやSSDなど
もう一つの研究動向として、
セマンティックセグメンテーション…
短形よりもより詳細な領域分割を得るモデル、画素ごとにカテゴリ分け
※同じカテゴリの複数物体が同一ラベル←→個々の物体ごとに認識(インスタンスセグメンテーション)
FCN(完全畳み込みネットワーク)…全て畳み込み層、縦画素数×横画素数×カテゴリー数の出力が必要
カーネルによって上位層ほど画像サイズが縮小→入力の画素数=出力の画素数が必要なため畳み込みと反対方向の解像度を細かくする工夫が必要→アンサンプリング(プーリング層の情報を使用)
・自然言語処理分野
word2vec(≒単語埋め込みモデル)…単語は記号(文字列)の集まり、この記号をベクトルとして距離や関係として意味を表現するベクトル空間モデル
→単語の意味はその周辺の単語によって決まる前提
スキップグラム(W2Vの一種)…ある単語を与えてその周辺の単語を予測
CBOW(W2Vの一種)…周辺の単語を与えてある単語を予測
W2Vの後継
fastText…単語の表現に文字の情報も含める→訓練に無い単語も表現可能に
ELMo…文章表現を得るモデル
上記によってマルチタスク言語モデルが発展
ex)次文・前文予測、機械翻訳、構文解析
CNNと言語モデルとしてRNNを組み合わせるとニューラル画像脚注付け(NIC)
→畳み込み層の最上位をRNNの文章生成ネットワークの入力に
【各領域への応用】
・ものつくり
不良品検知…良品データの特徴から差分で検知
バラ積みピッキング
・モビリティ
自動運転…信号や障害物の把握からアクセル等の操作に繋げるために使用、2022年にはトラックの除隊走行予定
・医療
特徴抽出能力で見落としリスク軽減
創薬生産性の向上
・介護
数理モデル化が困難な着衣も徐々に実用化
コーチング を録画し、自動でケア内容のチェック
・インフラ
道路のひび割れや送電線の不備(GAN)などを計測可能に
廃棄物の自動選別
防犯カメラにて困ってる人を自動検知
・サービス、小売業
タクシー乗車需要予測
無人コンビニやテナントごとのリアルデータ分析
双腕型ロボットアームでよそったりタオルを畳む
・その他
物流画像判定
ピンポイント農薬散布
テクニカル分析
講義動画内の声の検索対象化
現状は画像認識を用いた活用事例の割合が多数
【リスク管理】
・プロダクト検討
本当にDLを使う必要があるのか
ex)ワシントンDCの教師評価ツール→解雇システムだが母数が少なくFBもされないため疑問視
プライバシーバイデザイン(PbD)…プライバシー侵害について仕様段階から検討すること
・データ収集
著作権法、不正競争防止法、個人情報保護法などから成果をラボの外に出さなくても問題になる場合やデータの取得自体が問題になる場合も
チューニングの必要がある性質上、モデルの効果、性質が契約段階では不明瞭な事が多く、ウォーターフォール型とは親和性が低いため、経産省の「AI・データの利用に関する契約ガイドライン(2018)」を参考に開発プロセスを分割しそれぞれ毎に契約する
データは推測統計のため、現実世界の偏りやDBに登録がない(犯罪履歴)やデータセットが欧米主導といったデータの偏りに注意する
・データの加工、分析
フィルタバブル…最適化を強め過ぎるとセレンディピティが低くなること
モデルが複雑化するとどの変数の比率が多いかなどのシステム全体の説明が難しくなる→ブラックボックス化
・実装、運用、評価
一定条件を満たすと知的財産として保護される
別の目的、対象で使う場合は再度同意が必要
・クライシスマネジメント
エスカレーション(クライシスを想定し、どのように誰が対応するのか定める)仕組み作りが大切
その他、こんなコンテンツが欲しいというご要望・お問い合わせはこちらのフォームから