【G検定】覚えられないAI用語のまとめ(個人用ですが)
G検定のテキストを見てても覚えられる気がしないので。
頭に入らない項目を、簡単にまとめました。
参照可能なようなので、覚える必要はあまりないかもしれないんですが。
問題数が多いですし、おじさんの頭からはしっかりと抜けるので。
文字だけの説明で済ませますが、個人の勉強用なのでご了承ください。
見出しは公式テキストの目次を参考にさせていただきました。
横文字・・・キライ・・・
なお、自分の理解のために無理やりまとめているので、参考にしていただく場合は必ずテキストの内容をご確認ください。
※かなり長くなったので、Control+FやCommand+Fの検索が便利だと思います。
- 1. AIとは
- 2. AI研究の歴史
- 3. 探索と推論
- 4. 知識表現の動向
- 5. ディープラーニングの動向
- 6. 機械学習の代表的な手法
- 7. モデルの選択・評価【機械学習】
- 8. ニューラルネットワーク【DL概要】
- 9. 誤差関数【DL概要】
- 10. 正則化【DL概要】
- 11. 最適化手法【DL概要】
- 12. 活性化関数【DL概要】
- 13. ネットワーク【DL要素技術】
- 14. RNN【DL要素技術】
- 15. Transformer【DL要素技術】
- 16. オートエンコーダ【DL技術】
- 17. 画像認識【DL応用】
- 17.1. 1段階モデルと2段階モデル
- 17.2. Selective Search
- 17.3. Fast R-CNN
- 17.4. YOLO
- 17.5. SSD
- 17.6. 物体認識タスク
- 17.7. VGG
- 17.8. GoogLeNet
- 17.9. ResNet
- 17.10. SENet(Squeeze-and-Excitation Networks)
- 17.11. MobileNet
- 17.12. NAS(Neural Architecture Search)
- 17.13. EfficientNet
- 17.14. セマンティックセグメンテーション
- 17.15. FCN(Fully Convolution Network:完全畳み込みネットワーク)
- 17.16. SegNet
- 17.17. PSPNet
- 17.18. DeepLab
- 17.19. DeepLabV3+
- 17.20. データ拡張
- 18. 音声処理【DL応用】
- 19. 自然言語処理【DL応用】
- 20. 深層強化学習【DL応用】
- 21. データ生成【DL応用】
- 22. 転移学習とファインチューニング【DL応用】
- 23. マルチモーダル【DL応用】
- 24. モデルの解釈性【DL応用】
- 25. モデルの軽量化【DL応用】
- 26. AIプロジェクトの進め方【社会実装】
- 27. データの収集・加工・分析・学習【社会実装】
- 28. AIの法律
- 29. AIの倫理
AIとは
AI効果
AIの仕組みを知ると、人工知能ではなく単なる自動化に過ぎないと思う人間の心理。
AI研究の歴史
トイ・プロブレム
第一次AIブーム(1950年代後半〜1960年代)で起きた問題。
実世界の複雑な問題に対応できず、明確かつ狭いルールでの運用だった。
探索と推論
探索木
場合分けによる木構造で最短ルートを探す。
幅優先探索
出発点から近いノード順に、その階層をしらみ潰しに当たってから次の階層に進む。
最短距離は見つかる。
メモリ消費量が大きい。検索したノードをすべて記憶するから。
深さ優先探索
深さ方向に掘り下げ、解が見つからなければ引き返して次の枝に移る。
記憶するノード数は少ないので、メモリ消費量は小さい。
探索方向によっては時間がかかるし、見つかったルートが最短距離とは限らない。
mini‐max法
自分のターンの時にスコアが高く、相手のターンの時にスコアが最小になる打ち手を探索する。
αβ法
mini-max法の不必要な探索をなくし、計算量を削減する。
スコアを評価し、カットする枝を決定する。
αカット:自分の局面で、探索する必要のない相手の枝をカット
βカット:相手の局面で、探索する必要のない自分の枝をカット
モンテカルロ法
モデルフリー。AlhaGOで利用。
報酬が得られるまで行動し、価値関数を一気に更新する。
コンピュータ同士が仮想的なプレイヤーを演じ、ランダムな手を指し続けてシュミレーションする。
ゲームを終わらせること(プレイアウト)を複数回実行し、それぞれのスコアを評価する。
数多くの手から最良のものを選ぶ、ブルートフォース法のような評価方法なので、計算量をディープラーニングにより解決。
知識表現の動向
エキスパートシステム
第二次AIブーム(1980年代)で実用化。
専門家の知識を蓄積し、ルールマッチングで高精度な返答をできるように。
「知識獲得のボトルネック」の問題で終焉。
MYCIN
エキスパートシステムのルールベースのプログラム。
500のルールから、医学・伝染性の血液疾患を持つ患者を診断して細菌を特定し、抗生物質を処方する。
専門医じゃない医者よりは高精度(70%)。
オントロジー
知識・概念を、共有・活用しやすいように体系的に記述することを目指す学術分野。
「語彙」や「その意味」、「それらの関係性」を、他の人とも共有できるように、明確な約束事として定義する。
ヘビーウェイトオントロジー
構成要素や意味敵関係の正当性について哲学的にしっかり考えて記述する。
概念の厳格な定義と知識の追加にかかるコストが大きい。
Cycプロジェクト
ライトウェイトオントロジー
効率を重視し、コンピュータで概念間の関係を自動で見つける。
「完全に正しくなくても使えるものであれば良い」
WEBマイニングやデータマイニング。ワトソン。
is-a関係
「である」の関係。上位概念と下位概念の関係を表す。推移律が成立する。
part-of関係
「一部である」の関係。全体と部分の関係。最低5種類の関係がある。推移律は成立しない。
ディープラーニングの動向
ILSVRC(ImageNet Large Scale Visual Recognition Challenge)
画像認識の精度を競う競技会。誤差率の低さを競う。
AlexNet
2012年のILSVRCでエラー率15%で優勝した、ニューラルネットワークのモデル。
畳み込み層・プーリング層・全結合層を組み合わせた、物体認識で使用するモデル。
畳→プ→畳→プ→畳→畳→畳→プ→全
SuperVision
トロント大学のジェフリー・ヒントン教授が率いる、AlexNetを利用したチーム。
機械学習の代表的な手法
汎化性能
未知のデータが入力された時に、正しく予測できる性能。
シグモイド関数
分類問題であるロジスティック回帰に利用。
・任意の値を0から1の間に写像する。
・閾値によって、2クラス分類問題に対応。
ニューラルネットワークの活性化関数に利用される。
導関数(微分)の最大値が0.25のため、誤差逆伝播により勾配消失の原因に。
ソフトマックス関数
多クラス分類問題に使用。
各クラスの出力値を0から1の間、及び合計が1になるような出力を行う=確率分布を出力している。
他に確率を出力するのは、シグモイド関数(単クラス分類問題やロジスティック回帰分析に使用)。
SVM(サポートベクターマシン)
画像分類に使用。
目的:異なる2クラスの各データ点の距離が最大となるような境界線を求め、パターン分類すること。
・線形分離不可能なデータを超平面により分離する。
・カーネル関数を利用し、高次元空間で線形分離する。
マージン最大化
マージン:入力データを分類するための境界線と各データ点との間の最短距離。
各データを2つの領域にキレイに分ける境界線を求めるためにマージンを最大化する。
カーネル法
線形分離不可能なデータを非線形なカーネル関数で表現し、高次元空間に写像する。
膨大な計算量をカーネルトリックで対処する。
ARモデル(自己回帰モデル)
時系列データを、現在のデータXtと過去のデータXt‐iの関係でモデル化し、回帰問題に適用したもの。
・株価の日足の推移
・世界人口の年ごとの推移
アンサンブル学習器
複数の単純なモデル(弱学習器)で学習させ、過学習を抑制しつつ、汎化性能を向上させる。
バギング
全体から一部のデータを用いて複数のモデルを学習させる方法。
・少しずつ異なる弱学習器を多数作り、並列学習する。(計算が高速)
・各モデルの出力の平均もしくは多数決を結果として出力する。
代表手法:ランダムフォレスト
ランダムフォレスト(教師あり学習)
複数の決定木を並列に組み合わせたアンサンブル学習器。
決定木:特徴量を軸に作られた分岐路。どの特徴量を軸にし、どれくらいの閾値で分割されるかは自動最適化される。
それぞれの決定木の結果の多数決により、出力を決定。
◯ハイパーパラメータ
・決定木の数
・葉ノードの最小サンプル数
・木の深さの上限値
ブートストラップサンプリング
データから一部分をランダムに抽出して学習に利用すること。
ブースティング
多数のモデルを1つずつ逐次的に(直列)で学習させる。
入力は1つ前のモデルの結果。
バギンクより時間はかかるが、予測精度は高い。
代表手法:勾配ブースティング
勾配ブースティング
前のモデルの予測誤差を関数と捉え、最小化するように逐次的に学習を進める。
特徴量設計とモデルの調整で精度が変わる。
勾配降下法やニュートン法も利用できる。
AdaBoost
直列処理。
・直前のモデルが誤認識→重み大
・直前のモデルが正しく認識→重み小
を繰り返し、誤認識したデータを優先的に正しく分類できるように学習する。
k-means法(教師なし学習)
非階層クラスター分析。階層なしクラスタリング。
元のデータからグループ構造を見つけ出し、k個のクラスタに分ける。
◯手順
①適当にk個のクラスタに分ける
②各クラスタの重心を求める
③各データ点とk個の重心の距離を計算
④距離が一番近い重心に対応するクラスタに振り分ける
⑤重心の位置が変化しなくなるまで①~④を繰り返す
ウォード法
階層クラスター分析。
各データの平方和が小さい順にクラスタを作り、階層構造を作る。
協調フィルタリング
オススメの探索に用いられる手法。
対象者と行動パターンが似ている人を探し出し、対象者が持っていない商品を推薦するなど。
コールドスタート問題
事前にデータがある程度ないと、協調フィルタリングの効果が無いという問題。
A3C
2016年DeepMind社。
行動を決めるActor(行動器)と方策を評価するCritic(評価器)からなる、Actor‐Criticを使用。
複数のエージェントが同じ環境で非同期かつ並列に学習する。rollout(ゲームプレイ)を実行する。
割引率
強化学習で使用するハイパーパラメータ。
将来貰える報酬をどれくらい現在の価値として考慮するか?
1に近いほど現在と同じくらいの価値。
モデルの選択・評価【機械学習】
過学習(オーバーフィッティング)
訓練データの精度は良いのにテストデータの精度は良くない状態。汎化性能が低い。
◯原因
・特徴量の数が多すぎる(次元が高い)
・学習データの不足
・モデルが複雑
・特徴量間の相関が強い
k-分割交差検証法(クロスバリデーション法)
訓練データ・テストデータの分割を複数回行い、全グループ(k)がテストデータを担当するまで、学習と評価を行う。
訓練データとテストデータを交差させることで、偏りの影響を抑制する。
データ量が多くない時に有効。
ハイパーパラメータの調整と併用される。
精度指標(スコア)
分類問題の性能評価。混同行列を基準に考える。
予測(Positive) | 予測(Negative) | |
---|---|---|
実際(Positive) | 真陽性(TP) =予測が正しい | 偽陰性(FN) =誤認識 |
実際(Negative) | 偽陽性(FP) =誤認識 | 真陰性(TN) =予測が正しい |
何を評価したいのかを明確にし、目的に沿った指標を選択する。
正解率(Accuracy)
全データ中、どれだけ予測が当たったか?
最も一般的な精度指標。
(TP+TN)/(TP+TN+FP+FN)
適合率(Precision)
陽性判定(TP+FP)のうち、実際に陽性(TP)だったものの割合
陽性判断の正確性。
重視すると偽陽性(FP)を出さないようにするため、Recallが下がる。
TP/(TP+FP)
再現率(Recall)
実際の陽性データ(TP+FN)のうち、陽性(TP)として検出できた割合
陽性判断の網羅性。
重視すると偽陽性(FP)が増え、Precisionが下がる。
TP/(TP+FN)
F値(F-measure)
予測が偏っていて、値が高くなってしまう場合。
適合率と再現率の調和平均。
2×Precision×Recall/(Precision+Recall)
ROC曲線
閾値を0から1に変化させた時に、予想の当たり外れがどの様に変化するかを表したもの。
横軸:FPR=FP/(FP+TN)
縦軸:TPR=TP/(TP+FN) =再現率
理想的なROC曲線は弧を描く。
全く予測できない:右上がりの直線
完全に予測できる:左と上の2辺に一致
AUC
ROC曲線より下部の面積。
1に近いほど、モデルの性能が高い。
ニューラルネットワーク【DL概要】
人間の脳の中の構造を模したアルゴリズム。
入力層:データの受取
隠れ層(中間層):データから、識別に必要な特徴量を学習
出力層:予測結果の出力。分類問題の場合は、各クラスに属する確率。
単純パーセプトロン
数式上の表現はロジスティック回帰と同じ。
・入力層と出力層の2層のみ
・活性化関数はステップ関数
恒等関数を利用した場合、重回帰モデルと一致→回帰問題に対応できる
・出力は0か1の2値のみ。
シグモイド関数で0から1の値をとるように閾値を調整し、2値分類に対応可。
→線形分離可能な問題と2値分類に対応している。
→線形分離不可能なXOR回路は再現できない。
多層パーセプトロン
入力層と出力層の間に隠れ層を持つ3層以上の構造。
→単純パーセプトロンの構造が繰り返されているだけと見ることもできる。
活性化関数に非線形を関数を利用する。
→他クラス分類問題、線形分離不可能問題に対応できる。
GPU(Graphics Processing Unit)
リアルタイムの画像処理向けに設計。並列演算処理が得意。
CPU | GPU | |
---|---|---|
コア数 | 数個 | 数千個 |
得意な処理 | 直列処理 | 並列処理 |
GPGPU(General Purpose computing on GPU)
GPUの演算処理能力を画像以外でも使えるように汎用化したもの。
NVIDIA
GPUメーカー。
CUDA(Compute Unified Device Architecture)
GPGPUで並列演算を行う開発環境。
TPU(Tensor Processing Unit)
Googleが開発。テンソル計算に特化した、機械学習用演算処理装置。
誤差関数【DL概要】
交差エントロピー誤差関数
2つの確率分布がどれくらい異なるか定式化したもの。
ニューラルネットワークの出力層でシグモイド関数やソフトマックス関数を利用する。
正解値と予測値を確率分布と捉える。
→2つの分布が一致する時に最小値を取る関数も予測誤差を適切に表す関数と言える。
シグモイド関数やソフトマックス関数の指数計算と相性が良い。
正則化【DL概要】
正則化:過学習への対策。
L1正則化(ラッソ回帰)
ペナルティ項はパラメータの各成分の絶対値の和。
一部のパラメータの値をゼロにする。
不要なパラメータを削減することになり、特徴選択と次元圧縮に効果的。
L2正則化(リッジ回帰)
ペナルティ項は各成分の2乗和の平方根=距離。
パラメータの大きさをゼロに近づける。
ドロップアウト
ニューラルネットワークの正則化の手法。
内部的にアンサンブル学習器の一種といえる。
ミニバッチごとに一部のニューロンを、エポックごとに無効化(除外)する。
→毎回異なるネットワークで学習していることになる
→学習全体ではパラメータが調整されている
・過学習の軽減
・汎化性能の向上
各ニューロンの出力に(1-無効化割合)の係数をかける。
最適化手法【DL概要】
ノーフリーランチ定理
ジェフリー・ヒントン教授。
「あらゆる問題で性能の良い汎用最適化戦略は理論上不可能」という定理。
つまり、万能な機械学習モデルやアルゴリズムは存在しない。
勾配降下法
勾配=接線の傾き=微分値。最適解は傾きが0の点。
誤差関数を微分し、接線の傾きを求め、変化量を調べ、誤差が減る方向に重みを更新する。
重みの値を最適化しつつ、パラメータを少しずつ更新し、大域最適解を探索する。
確率的勾配降下法
ニューラルネットワークの最適化アルゴリズムの代表例。オンライン学習。
訓練データをシャッフルした上で毎回サンプルを1つだけ取り出し、予測誤差だけを用いてパラメータを更新する。
イテレーション数が多くなる。
バッチ学習(最急降下法)
パラメータの更新にすべての学習データを一度に用いる。
結果は安定しやすいが、計算コストが高い。
ミニバッチ学習
訓練データをミニバッチと呼ばれるグループに分け、ミニバッチ毎に損失関数を計算し、少しずつパラメータを更新する。
=学習データごとに勾配を求めて修正量を出し、逐次更新する。
オンライン学習とバッチ学習(最急降下法)の手法の中間。
学習率
誤差関数の「勾配に沿って一度にどれだけ降りるか」を決めるハイパーパラメータ。
大きすぎる:パラメータの最適解(大域最適解)を通り越す。
→誤差関数の最小点の周りを振動する。
小さすぎる:局所最適解(見せかけの解)に陥る。最適解に収束するのに時間がかかる。
モーメンタム
1990年代の最適化アルゴリズム。
勾配降下法に慣性を加え、重みの更新量を決め、学習の停滞を防ぐ。
Adagrad
最適化アルゴリズム。
学習が進行するに従い、パラメータごとに学習率を自動調整する。
Adam
最適化アルゴリズム。モーメンタム+Adagrad。
過去の勾配の二乗の指数移動平均を使い、勾配の平均と分散を推定する。
経験的に高い性能を発揮。
AdaBound・AMSBound
学習率に上限と下限を加えた最適化アルゴリズム。
AdaBoundはAdamに。
AMSBoundはAMSgradに。
グリッドサーチ
人間が候補となるようなハイパーパラメータの値を何パターンか用意する。
その中から一番高い精度となる組み合わせを、総当りで探索する。
ランダムサーチ
人間が適切と思われる値の範囲や試行回数を指定する。
何らかの確率分布に基づいた乱数を発生させ、それをハイパーパラメータに利用し探索する。
活性化関数【DL概要】
tanh関数(ハイパボリックタンジェント関数)
・任意の値を-1から1の間で取る
・微分の最大値は1
→シグモイド関数より勾配消失問題が起きにくくなる
ReLU関数(Rectified Linear Unit関数)
・入力が負→0、入力値が正→入力値そのもの、を返し特徴を際立たせる
・式はy=max(0,x)
・微分は
x>0で常に最大値1 →勾配が消失しにくい
x≦0で0 →学習がうまくいかない場合も
活性化関数の相性
画素値等の負の値が無いデータ→ReLu関数
測定値等の負の値が有るデータ→シグモイド関数、tanh関数
Leaky ReLU関数
ReLU関数の派生形。
x<0で僅かな傾きがあり、微分が0にならない。
Parametric ReLU
f(x)=axとし、aをパラメータとして決定する。
Randomized ReLU
ネットワーク【DL要素技術】
プーリング層
あらかじめ決めたルールに従って演算を行う層。学習はしない。
重要な特徴を残しつつ画像の情報量を圧縮(ダウンサンプリング・サブ・サンプリング)
→特徴量の凝縮、特徴次元の削減
・物体の些細な位置変化による認識結果の変化がないようにする
・過学習の抑制
・計算コストの低下
最大プーリング
画像の小領域ごとに最大の画素値だけ残す。
平均プーリング
画像の小領域ごとの平均値だけ残す。
全結合層
多層パーセプトロンと同じ構造。
入力された特徴に対して重みをかけ、総和した値をユニットの値とする→線形関数
特徴マップを1列(フラット)にする。
特徴抽出器 | 畳み込み象・プーリング層 |
分類器 | 全結合層・出力層 |
Global Average Pooling(GAP)
全結合層の代わりに使用し、学習しなければならないパラメータ数を削減する。
→GoogLeNet
特徴マップの平均値を1つのユニットにする。
特徴マップと出力結果の関連性が強くなることで、モデルの解釈にも有効な処理。
Grad-CAMで使用。
・各チャンネルの特徴マップについて平均値を求める
・重みをかけて各出力値を求める
・特徴マップからヒートマップにし、判断根拠を可視化する
RNN【DL要素技術】
CTC
入力と出力で系列が一致しない場合に、空白文字を加えて形式的に長さを揃える技術。
RNNが可変長データに対応できる理由。
BPTT(Back Propagation Through Time)
RNNにおける誤差逆伝播。
・入力層から回帰結合層への情報の伝播
・過去の回帰結合層から現在の回帰結合層への伝播
により、これまでに与えられた情報をどの程度現在の情報に反映するかを学習。
LSTM(Lond Short-Term Memory)
回帰結合層の構造を変えることで、勾配消失問題を解決。
LSTMブロック:セルとゲートからなる機構
CEC(Constant Error Carousel):LSTMのセル。誤差を内部に留め、勾配消失を防ぐ。
入力ゲート:入力重み衝突のためのゲート
出力ゲート:出力重み衝突のためのゲート
忘却ゲート:誤差が過剰にセルに停留するのを防ぐ、リセットの役割のゲート
GRU
LSTMを軽量化したもの。
リセットゲートと更新ゲートでLSTMの動作を実現。
Attention(注意機構)
情報の重要度(時間の重み)をネットワークに組み込み、注意を向けて学習する。
それぞれの単語が果たしている役割を理解できるようになる。
Transformer【DL要素技術】
エンコーダとデコーダからRNNを排除し、Self‐Attentionを利用。
ネットワーク全体がSelf-AttentionとSource-Target Attentionで構成されている。
並列計算がしやすく、RNNよりも高速に学習が行える。
Attention
情報の重要度(重み:出力から見たときの各入力の貢献度)を計算し、注意を向けて学習。
それぞれの単語が果たしている役割を理解する。
・過去の各時刻での回帰結合層の状態を保持し、それぞれの重みを求める
・回帰結合層の状態の重み付き和を出力の計算に利用する
→時間の重みを考慮したモデルを実現した。
Self-Attention(自己注意機構)
入力文内の単語間または出力文内の単語間の関連度を並列計算し、特定の時刻の単語に重みを付ける。
遠い位置にある単語同士の関係もうまく捉えることができる。
クエリ・キー・バリュー:自分自身のコピー
Source-Target Attention(Encoder-Decoder Attention)
入力文(Source文)と出力文(Target文)の単語間の関連度を解析する。
クエリ:デコーダの中間状態
キーとバリュー:エンコーダの最終出力
Multi-Head Attention
複数の異なるいくつかのパターンでクエリとキーの関係をみるために、Attentionの計算を複数並列に行う。
各Attentionの計算→Head
・クエリ、キー、バリューの値を異なる全結合層に通して変形
・Headの数だけ異なる全結合層を用意
オートエンコーダ【DL技術】
教師なし学習。
可視層(入力層と出力層)と隠れ層の2層からなるニューラルネットワーク。
隠れ層の次元を入力層より小さくして圧縮。
→次元削減による特徴量の抽出
・初期値としてオートエンコーダで学習させたパラメータを用いることで、勾配消失の防止に有効。事前学習に利用される。
・画像データのノイズ削減に応用できる。
・過学習の防止にも有効。
画像認識【DL応用】
1段階モデルと2段階モデル
2段階モデル:R-CNN、FPN
大まかな物体の位置を特定してから物体クラスを識別
1段階モデル:YOLO、SSD
物体の位置とクラスの識別を同時に行う→高速化
Selective Search
セグメンテーションの方法。
色や強度などが類似している隣接ピクセルをグルーピングし、セグメントに分割。
Fast R-CNN
R-CNNの構造を簡略化し高速化。
画像全体に一度だけCNNを適用し特徴マップを獲得する。
特徴マップ上で識別処理を行う。
Selective Searchを利用。
YOLO
グリッドに分割した領域単位における、物体領域らしさと矩形領域を直接出力するモデル。
SSD
CNNの途中の特徴マップから、領域単位で物体らしさと矩形領域を出力するモデル。
デフォルトボックス
短形領域のテンプレートの様な、パターンに対するズレを矩形領域の情報として出力。
複数用意しておく。
物体認識タスク
入力画像に対し、その画像に移る代表的な物体クラスの名称を出力するタスク。
識別対象としている物体クラス全てに対する確信度を出力し、最も高い物体クラスを識別結果として出力する。
VGG
物体認識のモデル。
畳み込み→畳み込み→プーリングの塊で16層。
・各畳み込み層のフィルタサイズを3×3に統一
・プーリングの次の畳み込み層からフィルタ数2倍
・少ない層数で学習した後、途中に畳み込み層を使って深くする
層が深くなる事に特徴マップの縦横の幅は小さくなり、特徴マップの数は多くなる。
GoogLeNet
物体認識のモデル。
2014年ILSVRCで優勝したインセプションモデル。
Inceptionモジュールを積み重ねた構造。
→深いネットワークにしつつ、着目する範囲が異なる特徴を合わせて捉える
ネットワークの途中に認識結果を出力する層を追加し、学習時に誤差を逆伝播する。
Inceptionモジュール
入力層から出力層まで複数の畳み込み層やプーリング層で構成。
同時に(並列で)異なるフィルタサイズの畳み込み処理を行う。
ResNet
2015年ILSVRCで優勝した、スキップ結合導入モデル。残差ネットワーク。
畳み込み層を積み重ねているが、スキップ結合により、勾配消失を防止しつつ多層ネットワークを実現。
初めて人間の認識精度の誤差5%を越えたモデル。
スキップ結合
「超」深層になると識別精度が落ちる問題に対処。
ある層への入力を飛び越えて奥の層へ入力することで、勾配消失問題を防止しつつ多層ネットワークを実現(152層)。
技術的には最大1,000層。
Wide ResNet
フィルタ数を増やしたモデル
DenseNet
スキップ結合を工夫したモデル
SENet(Squeeze-and-Excitation Networks)
2017年ILSVRC優勝。
Attention機構を導入し、特徴マップに重み付けを付加。
MobileNet
メモリ量が限られている環境でも利用できるモデル。
畳み込み処理をDepthwise Separable Convolutionに置き換え、計算量を削減。
ただし、畳み込み処理の近似計算なため、精度は一致しない。
NAS(Neural Architecture Search)
RNNと深層強化学習でネットワーク構造を探索する。
・RNNが出力した各層のフィルタサイズやフィルタ数などをもとにネットワークを作成し、学習、評価する
・認識精度が高くなるように、深層強化学習によりネットワークを生成する部分を学習する
NASNet
生成する単位をResNetのResidual Blockのような塊にする工夫を導入
MnasNet
モバイル端末での計算量も考慮したもの
EfficientNet
深さ(層の数)・幅(ニューロンの数)・入力画像の解像度をスケーリングし、小さなモデルで効率よく高い精度を実現。
複合係数による最適化を行っている。(係数:Compound Confrict)
開発当時の最高水準の精度を上回るとともに、従来のモデルよりもパラメータ数を減らすことにも成功。
転移学習に有用なモデル。
セマンティックセグメンテーション
画像全体が対象。物体領域を画面単位で切り出し、各画素を暮らすに割り当てる一般物体認識の手法。
FCN(Fully Convolution Network:完全畳み込みネットワーク)
セマンティックセグメンテーションのアルゴリズム。
全結合層を使わず、畳み込み層とプーリング層で構成するモデル。
→特徴マップが小さくなる。
教師データのラベル:画素(画素ごとにカテゴリを予測)
出力ノードの数:縦画素数×横画素数×(カテゴリ数+1)
入力画像のサイズ:可変
SegNet
FCNの出力を入力画像サイズまで拡大すると粗くなるのに対処。
エンコーダで特徴マップを徐々に小さく、デコーダで特徴マップを徐々に大きくして畳み込み処理。
PSPNet
セマンティックセグメンテーションのモデル。
エンコーダとデコーダの間にPyramid Pooling Moduleを追加したモデル。
Pyramid Pooling Module
エンコーダで得られた特徴マップを、異なるサイズでプーリングし、それぞれの大きさで畳み込み処理を行う。
画像全体や物体の大きさに応じた特徴をマルチスケールで捉える。
DeepLab
セマンティックセグメンテーションのモデル。
Google社によって開発された、Atrous convolutionを導入したモデル。
間隔を開けて畳み込み演算を行う。
DeepLabV3+
ASPP(Atorus Spatial Pylamid pooling)機構を採用。
SegNetやU-Netのようなエンコーダ・デコーダ構造。
PSPNetのように複数解像度の特徴を捉える。
データ拡張
手元にあるデータから擬似的に、現実的にあり得るデータを作り、学習データを増やす。
◯基本手法
・上下左右にずらす、反転する
・拡大縮小
・回転
・斜めに歪める
・一部を切り取る
・明るさやコントラストを変える
・ノイズを加える
paraphrasing
データの一部を別の値に変える
Cutout
ランダムな位置を中心として、正方形領域を固定値0でマスクする
→データの一部を遮蔽したようなデータの生成に相当する
Random Erasing
ランダムな値で画像の短形距離を埋める
Mixup
2つのデータを合成する
→存在しないデータを擬似的に作成する
CutMix
CutoutとMixupを組み合わせたもの
Random Crop
元画像の一部をランダムに切り抜く
Rand Augment
どのようなデータ拡張の処理をどのくらいで行えばよいかを学習させる手法
音声処理【DL応用】
音の要素
・長さ
・強さ
・高さ
・音色(音質)→音の区別に重要な要素
スペクトル包絡
音色の違いを表す、周波数スペクトル上の穏やかな変動(共振特性)
→音色の違いを「周波数スペクトルにおけるスペクトル包絡の違い」と解釈する。
音色の特徴量となる係数列
メル周波数ケプストラム係数(MFCC)
スペクトル包絡を求める係数。
フォルマント周波数
ピークのある周波数。音韻に近い値を取る。
フォルマント:周波数のピーク部分
メル尺度
人間が感じる音(20Hz〜20kHz)の高低に合わせた尺度。
1000Hz=1000メル
隠れマルコフモデル(HMM)
音響モデル。確率的な状態遷移モデル。
・音素の音響的なパターンをモデリング
・観測された音声データが生じた確率が高い音素を推定
・音素辞書を使ってパターンマッチング
WaveNet
2016年DeepMind社。
量子化の状態でニューラルネットワークで処理し、音声合成の質を向上させたモデル。
・細かい特徴を考慮できる
・実時間の20倍の速さで音声を生成できる
Dilated Casual Convolution
層が深くなるにつれ、畳み込むユニットをスキップする仕組み
自然言語処理【DL応用】
形態素解析
分かち書き。意味を持つ表現要素の最小単位(形態素)に分割し、品詞を推定する。
英語、フランス語など:空白でつながっているため、分かち書きしやすい。
日本語、中国語など:形態素解析で分かち書きを行う。
BoW(Bag−of‐Words)
文章を、出現する単語の集合として表現する手法。
出現頻度を考慮した数値ベクトルに変換する。
TF-IDF
各文章の単語ごとにTF✕IDFで計算し、重要度を付与する。
TF
特定の単語の出現回数÷全単語数
ある文章中の特定の単語の出現頻度を調べる。
IDF
全文章÷単語が出現する文章数の対数
文章間の特定の単語の珍しさを調べる。
BERT
2018年Google社が開発した事前学習モデル。
Transformerのエンコーダを利用し、過去→現在と未来→現在の双方向の情報を同時に扱うことができる。
ラベルのついてないデータを利用し、MLMとNSPで学習。
MLM(Masked Language Model)
文章の穴埋め問題を解く事前学習のタスク。
NSP(Next Sentence Prediction)
2つの文をつなげて、連続する文かどうかを判定するタスク。
GPT
2019年OpenAI社。
パラメータ数の遷移
GPT-1:約1億7,000万
GPT-2(2019年):約15億
GPT-3(2020年):約1,750億
GPT-4(2023年):約1兆
GPT-3は約45TBの大規模なコーパスを利用して事前学習を行い、汎用的な言語能力を持つ学習済モデル
学習
事前学習は教師なし学習(自己教師学習)。
Transformerのデコーダ部を利用し、各時刻ステップで「ある単語の次に来る単語」の確率を学習。
文章の一部をランダムにマスキングし、次の単語を予測する。
文章生成
単語を出力値(単語が次に来る確率)から最も高いものを選び、逐次的に生成。
RLHF(Reinforcement Learning from Human Feedback)
ChatGPTが利用したファインチューニングの手法。
人間からのフィードバックに基づきモデルを訓練する。
◯手順
①教師あり学習:プロンプトと正しい回答のセットを学習データとし、「こういう質問にこう答えると良いよ」と教えてあげる。
②報酬モデルの学習:③強化学習に利用するモデルの学習。出力された回答を人間が適切であると思われる順に並べ、データセットとして報酬モデルに学習させる。
③強化学習:回答出力→報酬モデルが評価→GPTにフィードバックし最適化
◯効果
・差別、偏見を含む出力の減少
・犯罪的な指示が入力されたら断る
・制約条件を満たしやすくなる
・捏造の減少(ゼロにはならない)
プロンプトエンジニアリングの注意点
・APIを経由するとしても個人情報を入力しない
→漏洩リスクがあり、第三者提供にも該当してしまう
・API経由の場合は、モデルの学習に利用しない
深層強化学習【DL応用】
AlphaGO
2016年DeepMind社。トップ棋士に勝利。
モンテカルロ木探索に深層強化学習を組み合わせる。
バリューネットワークとポリシーネットワークというDQNを利用。
→教師あり学習と複製したAlphaGOとの自己対戦で学習。
完成形:AlphaZero
DQN(Deep Q-Network)
2013年DeepMind社。代表的な「価値ベース」のアルゴリズム。
Q値
各状態において、エージェントがある行動をすることで得られる報酬の期待値
Q学習
1つの状態と行動の組み合わせに対し、Q値が割り当てられる。
新しい状態に遷移し、行動を選択するたびにQ値を更新し、Q値を最大化する学習法。
経験再生(Experience Replay)
環境を探索する中で得られる経験データをリプレイバッファーに保存し、適切なタイミングで学習に利用する。
→学習に使うデータの時間的な偏りをなくし、学習の安定化を図る。
ターゲットネットワーク(Target Network)
TD誤差を教師データのように使用し、価値推定の安定を図る。
DDQN
DQNの派生。経験再生やターゲットネットワークの使い方を工夫。
デュエリングネットワーク、カテゴリカルDQN、ノイジーネットワーク
DQNの派生。ディープニューラルネットワークのアーキテクチャ出力を工夫。
Rainbow
DQNの派生形を組み合わせたもの。内発的報酬による報酬の工夫。
sim2real
シミュレーションを用いてあらかじめ方策を学習し、実世界に適用する手法。
カメラ画像等のセンサデータ、ロボットの存在する空間の幾何学的な制約や力学を再現する。
パフォーマンスギャップ(リアリティギャップ):実世界での性能低下
ドメインランダマイゼーション(Domain Randmization)
2019年OpenAI。ロボットハンドでルービックキューブを解く。
環境パラメータをランダムに設定した複数のシミュレーションを用いて生成したデータから学習
→シミュレーション環境への過学習を防止
データ生成【DL応用】
VAE(変分オートエンコーダ:Variational AutoEncoder)
オートエンコーダを用いた画像生成モデル。
オートエンコーダの入力データの特徴量を隠れ層で抽出し、出力層で元のデータに復元する動作を活用。
手順
①入力画像から抽出した特徴量を統計分布(潜在分布)に変換
→入力データを平均と分散で表現する
②統計分布のある一つの点を入力データとし、エンコーダが潜在変数に変化する
→正規分布に従うように調整する
③デコーダがランダムにサンプリングした1点を復元し、未知のデータを生成。
→連続的な特徴空間を学習し、ランダムサンプリングすることで、未知のデータを生成
VQ-VAE
VAEの潜在変数を離散値にしたモデル
info VAE
潜在変数とデータの相関を高め、生成の精度を上げたモデル
β‐VAE
VAEの目的関数の正則化を工夫し、画像の特徴を潜在空間でうまく分離することで、画像の生成を行いやすくしたモデル。
GAN(Generative Adversarial Network:敵対的生成ネットワーク)
2種類のネットワークを競い合わせ、新しい画像を生成する。
共通の損失関数を用いて訓練する。
ジェネレータ
ランダムなベクトルを入力とし、ディスクリミネータが間違えるような偽物画像を作るように学習する。損失関数の値を小さくする。
ディスクリミネータ
偽物データと本物データを入力とし、ジェネレータが生成した画像を偽物と見抜けるように学習する。損失関数の値を大きくする。予測結果はジェネレータにフィードバックする。
CycleGAN
教師なし学習→画像のペアを用意する必要がないモデル。
画像データセット同士の分野・領域などのドメインの関係を学習
→ある画像を変換し、その画像を元の画像に変換
→変換した画像が本物か予測し、元の画像と再度変換した画像が一致するように学習する
転移学習とファインチューニング【DL応用】
転移学習
あるタスクのために学習させたモデルを、他のタスクに適応させるために、出力層だけ初期化して学習する方法。
適用したい問題に合わせて、追加する層は変えられる。
マルチモーダル【DL応用】
CLIP(Contrastive Language-Image Pre-training)
2021年OpenAI社。
画像と文章の間の双方向の関係を捉えるマルチモーダルのモデル。
テキストと画像の間のコサイン類似度を計算し、正しいペアに対して大きく、間違ったペアに対して小さくなるように学習する。
実世界の画像データで事前学習。
Zero-Shotで画像分類が可能。
Flamingo、Unified-ID
マルチモーダルタスクの基盤モデル
モデルの解釈性【DL応用】
ディープニューラルネットワークは深さゆえに、判断根拠が不透明なブラックボックス化しやすいという問題に対処する研究
説明可能AI(XAI):判断根拠を解釈し説明可能にするAI
LIME
構造化データ、非構造化データの両方に使用可能なモデル。
1つの特定のサンプルに対し、線形回帰モデルを利用し、複雑なモデルに近似する。
Permutation Importance
入力データの特徴を単ダムに入れて、ふるまいの変化を元に特徴の寄与度を測る
SHAP
個別の予測結果に対して、各特徴量の寄与度や予測値との関連性を明らかにする、局所的なモデル解釈ツール。
協力ゲーム理論におけるshapley値を応用
報酬→モデルの予測値
プレイヤー→各特徴量
モデルの軽量化【DL応用】
量子化
学習は32ビットの浮動小数点で行われる。
推論時の重みを8ビット整数にする。
ネットワークの構造を変えずに、メモリ使用量と計算コストを削減。
枝刈り(プルーニング)
比較的重要度の低いニューロンを剪定→学習、を繰り返し少しずつ圧縮する。
モデルのサイズと計算コストの削減。
マグニチュードベース:重みが一定以下
勾配ベース:勾配情報の評価値の小さいもの
蒸留
利用環境に合わせて、計算コストが高いモデル(教師モデル)を未学習のモデル(生徒モデル)の学習に使い、軽量化する方法。
入力データに対する教師モデルの事後確率を、生徒モデルの正解ラベルとして学習を行う。
教師モデル:学習済みの層が深く複雑なモデルや、アンサンブル学習器のモデル。
生徒モデル:未学習の小さくて単純なモデル。
AIプロジェクトの進め方【社会実装】
オープンイノベーション
社外の組織から知識や技術を取得し、社内に取り込み、自前主義から脱却する
産学連携など
CRISP-DM(CRoss‐Industry Standard Process for Data Mining)
データマイニングのための産業横断方標準プロセス。
データを分析することが主題。
・ビジネス理解 Business Understanding
・データの理解 Data Understanding
・データの準備 Data Preparation
・手法の選択、モデルの作成 Modeling
・結果の評価、プロセスの見直し、次のステップの計画 Evaluation
・本番環境への展開 Deployment
PoC(Proof of Concept:概念実証)
AI開発プロセスの一部。準委任契約。成果物は報告書。
実運用可能なモデルが生成できるか、モデルを実運用できるかの調査が目的。
AI開発は成果物が確かではないため、リスク低減になる
・少ないデータで必要最小限のモデルを構築する
・検証の対象となるコンセプトについてなど、意見交換の機会
・問題点の早期発見や精度の見込みについて議論する
準委任契約
AI開発では一般的な、契約不適合責任のない契約形態。
受注側が指定の業務の遂行を確約する。
成果物に対する必要要件が設けられない。
履行割合型:履行に対し報酬を支払う
成果完成形:完成の義務は無いが、成果物の納品が報酬支払の条件
請負契約
受注側が条件を満たす成果物を納品することを確約し、不履行の場合に契約不適合責任に問われる。
仕事の完成とその結果に対して報酬が支払われる
AI・データの利用に関する契約ガイドライン(経済産業省)
AI開発においては成果の保証が難しいため、準委任契約を推奨している。
・モデルの内容や性能がデータの品質に依存する
・性能保証が難しい
・ノウハウの重要性が高い
クラウドとエッジ
メリット | デメリット | |
---|---|---|
クラウド | ・モデルの更新が楽 ・装置の故障がない ・計算機の保守、運用が不要 | ・通信遅延の影響がある ・ダウンしたときの影響が大きい |
エッジ | ・リアルタイム性が高い ・通信量が少ない ・故障の影響範囲が小さい | ・モデルの更新が難しい ・機器を長期間保守、運用する 必要がある |
ビックデータの3V
Volume:量
Variety:多様性
Velocity:速度・頻度
データの収集・加工・分析・学習【社会実装】
データリーク
テストデータの一部が訓練用データに交じること。
過学習が起きているか、正しく判断できなくなる。
AIの法律
不正競争防止法
営業秘密:
①秘密管理性:秘密情報として管理され、従業員等にわかるように他の情報と区別されていること。
②有用性:有用な技術上、営業上の情報であること(ネガティブインフォメーション、顧客リスト等)。
③非公知性:公然と知られていないこと。
限定提供データ:
ビッグデータ事業を念頭に置いている。
特許法や著作権法に保護されず、営業秘密にも該当しないデータ。
◯要件
・事業の一環としてデータを提供している
・相当量蓄積されている
・電磁的な方法により管理されている
個人情報保護法
個人識別符号:
①生存する個人の身体的な特徴に関する情報
→指紋、DNA、顔認識に使用する特徴ベクトル
②個人に割り当てられる符号
→公的機関により与えられる番号、紙媒体も対象
個人データ:
データベース化された個人情報で、個人データベースを構成するもの。
正確、最新の状態に保ち、不要になったら消去する(努力義務)
要配慮個人情報:
利用目的の公表にかかわらず、取得には本人の同意が必要。
オプトアウトによる第三者提供も付加。
仮名加工情報:
単体では個人を特定できないように加工したもので、得意なデータを残してある個人データ。
取得した事業者の内部での利用を想定した利便性のあるもの。
第三者提供は原則禁止。
著作権法
プログラム、ソースコード:
十分に創作性が認められる場合は保護の対象。
アルゴリズム、数学的手法は対象外。
パラメータ:単なる数値とみなされるため対象外
30条の4の例外規定:
情報解析のための著作物の複製を認める
→機械学習の利用が該当する
・侵害となる場合
・著作権者の著作物の利用市場と衝突する場合
・将来における著作物の潜在的市場を阻害する場合
AIの倫理
データ汚染(Data Poisoning)
学習データに対する攻撃。意図的に分析や予測の結果に間違いを起こす変更を加える。
敵対的攻撃
・異常検知AIの回避
・自動運転AIの誤認識
・顔認証システムの誤作動
特定の入力データを恣意的に加工する行為。
人間の目視では確認できないが、AIにとっては別画像なので、誤分類を引き起こす。
敵対的サンプル:微妙なノイズ(摂動)やデータが追加された入力データ。
エコーチェンバー
人間自身による情報選択の偏り。
SNS等で自分と意志や関心が似ているユーザーのみフォローすることで、自分と似たような意見ばかりが表示され、偏った考えや意見が集約され拡散される現象。
ディスカッション
コメント一覧
まだ、コメントがありません