社会人はリラックスしたい

社会人はリラックスしたい

アラサーリーマンです。漫画の感想を主に、メンズファッション初心者向けの服レビュー、乗馬未経験者・初心者向けの記事を書いていきます。

G検定に向けたチートシート 当日用のカンペ

こんばんは、へるもです。

 

いよいよG検定ですね!

圧倒的な暗記項目の多さにやる気を失っていたのですが、インターネットで調べてもよいという特長を活かして、カンニングペーパーを作ることにしました。

 

※取得後に思ったこと

herumo.hatenablog.com 

herumo.hatenablog.com

herumo.hatenablog.com

 

 

 

 

チートシート

考えることはみんな同じようで、ネットで調べると幾つか出てきますね。「G検定カンペ、まとめ、チートシート」とかが検索ワードとして強いようです。

ただ、いくつのページを開いて検索するというのは不合理ですし、次の項目で紹介するページを参考にして、ここにないものをまとめる、といった形で作成しました。

これだけ書いても足りないんだろうな、と思うとつらいのですが、それでもないよりマシです。

 

自分用のメモなので間違っていたらごめんなさい。何かあれば、ご指摘ください。

 

 

使い方 

【G検定チートシート】AI関連法律や動向含む試験当日のカンペ | WATLAB -Python, 信号処理, AI-

 

①上のページとこのページを開いておく 

②わからなければ、この2つから検索する(ctrl+F)

 

google先生に頼ればいいでしょと思う方には、そのとおり!っていいたくなるのですが、ぱっと分かりやすいやつに出会う確率が少なかったんですよね。はずれを引くと文章が長い。

とはいえgoogle先生もやはり強力なので、基本は三刀流かな。

 

このように引用元がかかれていないものは上記のページから引用させてもらいました。丸っきりのパクリにならないように引用したものにはデータを付け足しましたが、偉大なる先人には感謝です。 

 ※がついているのは管理人のコメントです。精度は低いかもしれませんが、難しい言葉を言い換えるときとかに使います。

 

 

こっちも重要?

法律や政策ベースのものが出題させる傾向があるとのことなので、それっぽいものを探してきました。

まとめている時間がないので、何が書かれているかをさらっと把握して後は運任せですかね。

【ディープラーニングG検定対策】ディープラーニングの応用に向けて | シミュレーションの世界に引きこもる部屋

ディープラーニングの産業への応用 その1 | シミュレーションの世界に引きこもる部屋

ディープラーニングの産業への応用 その2 | シミュレーションの世界に引きこもる部屋

ディープラーニングの法律、倫理、現行の議論 | シミュレーションの世界に引きこもる部屋

 

 

少しお得な問題集

ちなみにG検定の問題集(黒本)がキンドルで半額のようです。

定価で買っちゃったよ。評判もよいので、最後の追い込みにいいかもしれません。

 

 

後は、D検定を主催しているJDLAの松尾先生の本(推薦図書)がキンドルアンリミとaudibleで出ていますね。無料体験があるので、まだ読んでいない方は目を通しておいてもよいかもしれません。

勉強が足りない方は問題集をしたほうがいいと思いますが、読み物としても普通に面白かったです。

 

 

こういうのも大事。

 

ソフト関連

Deep Blue

1996年にIBMが開発

チェスの世界チャンピオンガリル・カスパロフに勝利

力任せの探索

10~14手先を読む

 

Bonkras

将棋ソフトウェア

2011年 世界コンピュータ将棋選手権で優勝

2012年 将棋電脳戦

現在はPuella αと解明

 

Ponanza

将棋ソフトウェア

山本一成らが開発

2012 電脳トーナメントを制する

2015  世界コンピュータ将棋選手権で優勝

 

sharpchess

オープンソースのチェスソフトウェア

 

Deep Dream

2015 年  google

通常の画像をまるで夢に出てくるかのような不思議な画像に変換して表示するプログラム

 

Tay

マイクロソフトの対話型ボット

ツイッターを利用

不適切な調教によりやらかした

 

AlexNet
2012年のILSVRCでトロント大学のジェフリー・ヒントン率いるチームが使用し、2位以下に圧倒的な差をつけて優勝したネットワーク。8層。調整するパラメータは60,000,000にものぼる。 

→Alex Krizhevsky

 5個のcovolutional層と3個のpooling層が存在

 "stride of 4"

 

ResNet
2015年のILSVRCで優勝。152層。Microsoftのチームが開発。これまで以上に層を深くできるようにスキップ構造を導入した。

→スキップ構造=インセプション(inception)モジュールの導入

→出力を「入力」と「入力からの差分」の和としてモデリングした

→求めたい関数と入力のと差である残差を学習するようにした

 

→CNNでは沢山の層を重ねた結果、学習に用いられるパラメータの数が膨大となり、学習が上手く進まないという問題が生じていた。ResNetは入力層から出力層まで伝播する値と入力層の値を足し合わせたモデルで、入力層まで、勾配値がきちんと伝わり、 深い構造(1000層)でも学習が可能となった。2015 年の ILSVRC で人間の成績を上回る成果をあげた

Microsoft Research(現Facebook AI Research)のKaiming He

 

VGG16
2014年のILSVRCでGoogLeNetに劣らない性能を誇ったオックスフォード大学のチームのCNN。16層。GoogLeNetには及ばなかったが、シンプルなネットワークなので技術者に好んで使われる。

教師あり学習

※VGGnetともいう?

 

STRIPS

前提条件、行動、結果の3つの組み合わせで記述する

人工知能が自律的に行動計画を作成する技術であるプランニングで有名

 

SHRDLU

テリーウィノグラード

積み木の世界

物体の動かし方をプランニングできた言える

 

LeNet

1998にヤンルカン氏が発表したCNNの原型

多層CNNに誤差逆伝播法を適用した手法

 

WaveNet

音声生成でブレイクスルー

google Deep mindが2016年に開発

RNNではなくCNNを用いている

 

ライブラリなど

OpenCV:画像に特化

mecabオープンソース 形態素解析エンジン

Julius:音声認識システムの開発・研究のためのオープンソースの高性能な汎用大語彙連続音声認識エンジン

OpenNLP:自然言語処理のためのツールセット

 

画像処理

R-CNN(Regional CNN)

関心領域(ROI)の切り出し → CNNを呼び出す

ROIきりだしにはCNNはではない従来手法を使ったので時間がかかる

※ROI:見たい領域、どこに識別するかという領域

高速RCNN

切り出しの画像認識を同時に行う

→faster RCNN:ほぼ実時間で処理が可能。動画認識にCNNを使えるようになった

 ↓

物体検出(画像検出)

画像内に含まれるとある物体を取り囲むようなボックスを推定するタスクを行うもの

2014:R-CNN

2015:Faster R-CNN

2016:YOLO(You only look once)

SSD(single shot detector)

f:id:herumo:20200701192204p:plain

自動運転にも応用される精緻な画像認識技術、「画像セグメンテーション」とは?事例を交えてわかりやすく解説|株式会社インキュビット

 

物体セグメンテーション(画像セグメンテーション)

対象とする物体とその周囲の背景境界まで切り分けるようなタスクを行うもの

  

特徴はFCN (Fully Convolutional Network/完全畳み込みネットワーク)

※画素ごとに判別している、だったかな?

CVPR 2015, PAMI 2016で発表

Semantic Segmentation手法

全ての層が畳み込み層

入力画像の画素数だけ出力層が必要

 縦画素×横画素数×カテゴリー数

 

特徴量から画像を生成する際はCNNと逆の操作を行う

畳み込み層→逆畳み込み層

プーリング層→アンプーリング層

アンサンプリングにより解像度を復元

f:id:herumo:20200701192243p:plain

自動運転にも応用される精緻な画像認識技術、「画像セグメンテーション」とは?事例を交えてわかりやすく解説|株式会社インキュビット

 

画像セグメンテーションは2種類

1つは,個別の物体を区別するインスタンスセグメンテーション(Instance-aware Segmentation)

(上で言えばcowを1~4に区別される)

もう一つは,同一クラスの物体であれば個を区別しないSemantic Segmentation(セマンティックセグメンテーション) 

 

画像キャプション

画像内に表示されている女性を認識し,「青い服を着てスマートフォンをいじっている」などのようにその対象が何をしているかを表示させること

画像をCNNに入力し、そこから得られた特徴をLSTMに入力することで生成

CNNとRNNと組み合わせ

f:id:herumo:20200702070110p:plain

日本語による画像キャプション自動生成AIを作ったので丁寧に解説します! - Qiita

   

画像分類

f:id:herumo:20200701192124p:plain

自動運転にも応用される精緻な画像認識技術、「画像セグメンテーション」とは?事例を交えてわかりやすく解説|株式会社インキュビット

この画像は何を示しているのか?という操作をすること 

 

 

動画認識

Spatio-temporal ConvNet 

動画の10フレームをCNNに入力し、行動認識

 

Two-stream CNN

Spatial stream ConvNet:フレーム画像を認識

Temporal stream ConvNet:動きの情報を認識

 

動画データセット:Kinetics DeepMind

→Inflated 3D ConvNet (I3D)

 肺がん診断AI:人間の専門家に匹敵 or 上回る精度

 

 

音声認識

End to End 音声認識

音響特徴量から音素,音素から文字列,文字列から単語列に直接変換して言語モデルを学習するアプローチ

ディープラーニングは入力から出力を一括で行うことができるEnd to End learning

従来の音声認識はステップバイステップの処理が必要だった

(音声波形→音素→文字→文字列→単語→単語列)

 

音素状態認識

音声の周波数スペクトル,すなわち音響特徴量をインプットとして,音素状態のカテゴリに分類する

 

雑音・残響抑圧

音声を認識したい対象とそれ以外の雑音に分離する

 

音声合成

人間の音声を人工的に作り出すこと

 

言語モデル

自然言語処理などにおいて、文の品詞や統語構造、単語と単語、文書と文書などの関係性について定式化したもののことである。 言語モデルは、多くの場合は統計学的な観点から数式などを用いて確率的に定められる。

確率を精密に設定することにより人間が用いる言語は理論上モデル化できる。

 

代表的な言語モデルとしては、Nグラムモデル、隠れマルコフモデル、最大エントロピーモデル

 

隠れマルコフモデル(HMM)

1990年代の音声認識

音自体を判別するための音響モデル 

HMM+DNNの組み合わせがよい結果を出す 

 

GMM

 

 

Nグラム法

1990年代の音声認識

語と語のつながりを判別する言語モデル

 

自然言語処理

機械翻訳、画像説明文生成→できる

構文解析、意味解析→精度向上はしているが、、、

文脈解析、常識推論→実用的な精度は見込めない

 

word2vec

 トマスミコロフ

記号をベクトルとして表現することにより、ベクトル間の関係や距離として単語の意味を表現しようとするモデル

「王様」ー「男性」+「女性」=「女王」

単語埋め込みモデル、ベクトル空間モデルとも呼ばれる

 

スキップグラム(Skip-gram)単語を与えて周辺の単語を予測

CBOW:単語を与えてある単語を予測

 

fastText

トマスミコロフ

単語の表現に文字の情報も含める

学習に要する時間が短い

 

ELMo

アレンインスティチュート

文章表現を得るモデル

 

bag-of-words

文章に単語が含まれているかどうかを考えてテキストデータを数値化(ベクトル化)

Bag of Wordsについて書いてみる - どん底から這い上がるまでの記録

 

Ngram

単語単位で区切った形態素解析とことなり、Ngramでは任意の連続したN文字単位で区切

 

TF-IDF

Term Frequency(TF)

Inverse Document Frequency(IDF)

文書の中から、その文書の特徴語を抽出する時に使う

単語の重要度を特徴量にする

いくつかの文書があったときに、それらに出てくる単語とその頻度(Frequency)から、
ある文書にとって重要な単語はなんなのかというのを数値化

 

形態素解析 

文法的な情報の注記の無い自然言語のテキストデータ(文)から、対象言語の文法や、辞書と呼ばれる単語の品詞等の情報にもとづき、形態素(Morpheme, おおまかにいえば、言語で意味を持つ最小単位)の列に分割し、それぞれの形態素の品詞等を判別する作業

 

制限ボルツマンマシン(RBM)

音声認識で使用される

 

自動運転

米国ネバダ州では自動運転の走行や運転免許が許可制にて認められた

 

 

ドローン

飛行禁止空域
・空港周辺
・150m以上の上空
・人家の集中地域(DID)

飛行ルール
・日中のこと
・距離の確保を行うこと
・催しを行っている場所は飛行禁止
・危険物輸送の禁止
・物件投下の禁止

国土交通省への申請で許可を受ければ飛ばすことができる。守らないと50万円以下の罰金。ルールは総重量(バッテリー等本体以外の重量含む)が200g未満の場合は対象外。

 →夜間の禁止

 人口集中地区の上空・イベントなど大勢の人が集まる場所での飛行禁止

 ひと・ものから30m未満の飛行は承認が必要

風速が5m/s以下のコンディションでなければ飛行はできない

風速と速度の和が7m/s以下とすること

→国会議事堂や内閣総理大臣官邸、外国公館、原子力事業所の周辺地域は「小型無人機等の飛行禁止法」により飛行禁止空域

きっとあなたも間違えている。国内ドローン規制3つの落とし穴

 

 

セキュリティ関連

スパムメール判別

LSTM, ナイーブベイズ

 

Adversarial Examples

AIへのサイバー攻撃

Evasion attack : 難読化(暗号化,画像ベース)
Poisoning attack : 訓練データの操作,ラベルの反転

 

 

AIを作るうえでのあれこれ

 フレーム問題
無限にある可能性からの探査には無限の時間がかかってしまう問題。このフレーム問題を克服したAIを強いAI(汎用AI)、克服できないAIを弱いAI(特化型AI)と呼ぶ

 →有限の情報処理能力では、現実の問題を解くのは難しい

 

強いAI, 弱いAI

汎化AI, 特化AI

ジョンサール

中国語の部屋

 

身体性・身体知

AIが現実世界における抽象概念を理解し、知識処理を行うために必要なこと

→身体性を通じた高レベルの身体知を獲得し、

→次に身体知を通じて言語の意味理解を促し、抽象概念・知識処理へいたる

※ロボット研究から生まれた概念だったような?人間は五感をはじめとしてセンサーだらけの自律体でいろいろな情報から複雑な関係性を学習できるですが、ロボットは限られたセンサーしかもたないですし

 

人工知能研究

抽象概念や知識理解に辿り着くための方針は3つある

 

Google 社・Facebook

→言語データによる RNN や映像データからの概念・知識理解を目指す

UC Berkeley

→実世界を対象に研究を進め,知識理解を目指す

DeepMind

→オンライン空間上でできることをターゲットにするして,知識理解を目指す

 

人工知能研究の変遷

パターン処理 -> 記号処理 -> 知識の蓄積

 

学習方法

表現学習

ローデータからコンピュータが自動的に事象を識別するための特徴量を学習する一連の技術

CNNがこれにあたるはず。特徴量学習とか言われているときもあるような

 

マルチタスク学習

いくつかの関連するタスクにおける学習の内容を共有する事によってそれぞれのタスクにおける予測精度を向上させる学習方法

 

多様体学習

非線形多様体上に分布しているようなデータ構造のデータを学習する一連の手法

勾配降下法

勾配情報を利用して重みを増加させるか減少させるかを決める。学習率がハイパーパラメータ。

逐次学習(オンライン学習)の場合は確率的勾配降下法(SGD)、ミニバッチ学習の場合はミニバッチ勾配降下法と呼ぶ。

 →オンライン学習とはひとつのサンプルだけを利用する手法

1. 重みとバイアスを初期化

2. データ(ミニバッチ)をネットワークに入力し出力を得る

3. ネットワークの出力と正解ラベルとの誤差を計算

4. 誤差を減らすように重み(バイアス)を修正

5. 最適な重みやバイアスになるまで繰り返す

 

バッチ学習:全データを用いて学習

      計算処理に時間がかかる

      最急降下法

オンライン学習:ひとつのサンプリングごとに学習

        収束するまで学習データを何週もする

        計算処理は早いが、ノイズやはずれ値の影響を受けやすい

        確率的勾配降下法(SGD)

ミニバッチ学習:折衷案で、よく用いられる

        幾つかのデータセットに分けて、それぞれの塊ごとに学習する

確率的勾配降下法 - Wikipedia

 

AdaBoost

機械学習⑤ アダブースト (AdaBoost) まとめ - Qiita

 

モメンタム

以前に適用した勾配の方向を現在のパラメータ更新にも影響させる

※坂を下っていくのが勾配降下法なら、坂を下る際の加速度を加味するイメージ

AdaGrad

モメンタムの欠点を解決したのがAdaGrad

すでに大きく更新されたパラメータほど更新量(学習率)を減らす

一度更新量が飽和した重みはもう更新されないという欠点がある

※一度大きな坂を下り、緩やかな坂を体験すると、次の坂に差し掛かっても降下できない

RMSprop

AdaGradの発展

指数移動平均を蓄積することによってAdaGradの問題を解決した

※上記、二度目の坂では最初の坂の勾配情報を無視して学習を進めることが可能

Adam

RMSpropの発展

 

Adadelta

RMSpropの発展

 次元のミスマッチを解消

 

RMSpropGraves 

手書き文字認識で使われる

深層学習の最適化アルゴリズム - Qiita

 

学習率

学習率が過度に大きいとコスト関数の高い局所的最適解から抜け出せなくなることがある

学習率が大きいと収束は速いがコスト関数の最終的な値が高い

学習率が小さいと収束は遅いが最終的にはより最適解に近いパラメータになるため,コスト関数は小さな値に収束する.

  

最小二乗法

モデルの予測値と実データの差が最小になるような係数パラメータを求める方法

符号を考えなくてよくなり計算がしやすくなる→二乗するから

はずれ値に弱い

 
ファインチューニング

既存のモデルの一部を利用して新たなモデルを解くために再学習する手法

学習済みモデルの最終出力層を付け替えるが、入力層に近い部分と出力層のパラメータも変更

例えば、犬と猫と人間を分類するモデルを柴犬とゴールデンレトリバーを分類するモデルに変更するなどのように学習済みモデルと比べて全く異なるモデルへと学習することができるようになる

転移学習とファインチューニングの違い|Zono|note

※事前学習との比較のときとは扱われ方が違うような? 本質的には同じようだが

 

転移学習

学習済みモデルの最終出力層だけを付け替えて、自分のデータを学習させ新しいモデルを作成するということで出力層のパラメータだけ変更する

例えば、犬と猫と人間を分類するモデルを犬と猫のデータで再学習させることで犬と猫を分類するモデルを作ることができる

 

蒸留

大きなNNなどの入出力をより小さなネットワークに学習させる技術

生徒モデルを単独で学習させるより過学習を緩和する効果がある

メリット:モデルの精度向上、訓練の効率化、敵対的攻撃(Adversarial Attack)に対する防御

 

SVMサポートベクターマシン

各クラスの最も近いデータの距離を最大化することで係数パラメータを得る方法

マージンの最大化がコンセプト

線形分離不可能なデータのマージンを最大化するためのスラック関数

非線形境界を得られるようにするためのカーネル法カーネル関数)

→データをあえて高次元に写像することで、その写像後の空間で線形分類できるようにする

カーネル法の計算量を大幅に削減するためのカーネルトリック

 

主成分分析

線形

次元削減

寄与率が各成分の重要度

主成分が各成分の意味

 

 ロジスティック回帰

シグモイド関数という関数をモデルの出力に用いる 

→数式上の表現は単純パーセプトロンとまったく同じになる

→線形分類しかできない

ニューラルネットワークの一種

→尤度関数が目的関数

→対数オッズと呼ばれる値を予測し、正規化して結果を確率として解釈

 

 

最尤推定

ある係数パラメータが与えられたときに,モデルが実データを予測する確率(尤度)を最大化するような係数パラメータを求める方法

 

残差

モデルによって出力された値と実際の測定値の誤差

残差を用いて係数パラメータを推定するアルゴリズムが最小二乗法と最尤推定

 

教師なし学習(大脳皮質の動きを模倣)

主成分分析(PCA)

独立成分分析

自己符号化器

クラスター分析

自己組織化マップ

 

教師あり学習(小脳の働きを模倣)

k近傍法

主成分分析(PCA)

 

強化学習

エージェントが環境に対して行動を行うと、報酬と状態が環境から返ってくる

報酬を最大化するように学習する

 

エージェント:行動を学習する

環境:エージェントが行動を加える対象

状態:環境が今どうなっているかをあらわす

 

時間がかかる

 

マルチエージェント応用

アルゴリズム:Q学習

DQNディープラーニングを使った強化学習

   行動価値関数の関数近似に畳み込みニューラルネットワークを用いた手法

モンテカルロ法

 

モンテカルロ法

ゲーム終盤でコンピュータがランダムに手をさし続けて終局させて勝率が高い選択肢を選ぶ

 

Mini-Max法

ゲームボードの戦略を立てるときに自分が指すときにスコアが最大に、相手が指すときにスコアが最小になるように戦略を立てる方法

 

αカット:スコアが最小のものを選ぶ過程=相手の選択肢を考える上ですでに選択したスコアよりも大きいノードが現れた時点でその先に繋がるノードの探索をやめてしまう

βカット:αカットの逆。自分の選択肢を考える上で不利になるものはその先まで探索しない

 

行動価値関数

ある状態である行動を行うことの「価値」を表す関数

強化学習では最適行動価値関数をとることを目指して学習を行う

→Q学習:試しに何度もやってデータ集めて、期待値に収束させる

DQN最適行動価値関数をニューラルネットを使った近似関数で求める

 

強化学習における工夫

Experience Replay:時系列で並んでいるinputデータを順々に使って学習を進めると、inputデータ間の時系列の特徴に影響を受けてしまうため、ランダムにデータを取り出して学習させる

Fixed Target Q-Network:正解データ(target)と見立てている部分の値は一つ前のθを使って計算しています。(θとする)しかし、1回の学習ごとに毎回θを更新すると、正解も毎回変わるため、どこに近づけたらいいのかわからない状態になります。そのため、θは、一定の期間ごとにθで更新するようにします。

報酬のclipping:

 

ロボット・ロボティクス

一連の動作の組み合わせと捕らえて学習(一気通貫学習)

強化学習による試行錯誤

 

アンサンブル学習

複数の学習器を組み合わせて予測する手法

これにより全体の汎化性能をあげることができる

 

スタッキング

アンサンブル学習の一つで、モデルを積み上げて性能を向上させる手法

Stacked generalization

複雑だが精度が高い

スタッキング(stacked generalization)の発想とやり方 - 具体例で学ぶ数学

 

バギング

アンサンブル学習の一つで、複数のモデルを別々に学習させ、各モデルの平均や多数決によって最終的な判断をする手法

ブートストラップを使う

ランダムフォレストとかが当てはまる

バギングの意味と、ブースティングとの違い - 具体例で学ぶ数学

並列処理ができるので時間をかけずにそこそこ精度の高いモデルを作る

 

ブースティング

バギングのように弱学習器を独立に作るのではなく、1つずつ順番に弱学習器を構成していく

その際、k 個目に作った弱学習器をもとに(弱点を補うように)k+1 個目の弱学習器を構成する

ブースティングの具体例としては、AdaBoost、XGBoost、LightGBM、CatBoost

直列処理なので、時間はかかるが高い精度が得られる

 

マルチタスク学習

同時に複数の識別問題に対応できるように学習する手法

最初から複数のドメインの課題を解くためのモデルを設定する

マルチタスクの深層学習では各課題の重み付き和が損失関数になる

 マルチタスク学習の成功にとって望ましい条件は、複数の課題間で共通する因子や有用な特徴、局所解をもっていること

 

マッピング

順序を持つ文字列のカテゴリーデータの場合、対応する数値を辞書型データで用意して数値に変換する手法

 

ワンホットエンコーディング

順序を持たない場合、各変数に対応したダミー変数を新たに作り出す

one-hot-encoding

 

 

欠損値がある場合の処理

リストワイズ法

→欠損のある行をすべて削除

ペアワイズ法

→欠損の少ない列を使用することにし、特定の行を取り出してから欠損を削除

回帰補完

→欠損しているある特徴量と相関が強い他の特徴量が存在している場合

平均補完

→平均値を入れる

 

ステップワイズ法

→欠損値処理ではない。「ステップワイズ法(逐次選択法)」は、統計ソフトが自動的に説明変数を1個ずつ入れたり出したりして、適合度の良いモデルを選択する方法

  

データセット

MNIST:手書き文字、アメリカの国立標準技術研究所

ImageNet:インターネットから集めて分類した画像、1400万枚、スタンフォード大学

CIFAR-10:物体カラー写真、初心者向けのチュートリアルなどで使用

Youtube-8M:動画のデータセット、800万本

VOC2012、MSCOCO:

 

学習済みモデル

【2019/4月更新】学習済みの様々なディープラーニング・モデルをメチャ簡単に利用できる! Model Asset Exchange(MAX)をご紹介します - Qiita

 

フレームワーク

設定ファイルを使う:Cafe, CNTK

→モデルの定義がテキストで設定でき,簡単に学習を開始させることが出来るというメリットがある.一方で,ループ構造をもつような RNN など,複雑なモデルを扱う際には,モデルの定義を記述することは難しくなる傾向にある

 

プログラム:TensorFlow, Chainer

→一度書き方を覚えてしまえば,複雑なモデルでも比較的簡単に記述することが出来るが,モデルは,それぞれのフレームワーク固有のソースコードで出来上がるため,モデルが使用しているソフトウェアに依存してしまうという問題がある

 

define-and-run:cafe

define-by-run:Chainer, py-torch, tensorflow, mxnet

 

イテレーション

重み更新の際に、重みが更新された回数

一回のイテレーションに用いるサンプル数はバッチサイズと呼ばれる

 

エポック

訓練データを繰り返し学習したときの、その回数

 

アルゴリズムあれこれ

NN

ニューラルネットワークの学習には損失関数(コスト関数)の最適化により行われる

ロジスティック回帰、単純パーセプトロン、多層パーセプトロン、がこれにあたる(畳み込んでない) 

 

損失関数

回帰問題→平均二乗誤差関数

分類問題→交差エントロピー誤差関数

※分類に使うランダムフォレストの不純度がエントロピーだったような

分布を直接学習→KL ダイバージェンス

 

損失関数、コスト関数、誤差関数の違い

損失関数=誤差関数

損失関数+正規化項=コスト関数

目的関数、コスト関数、誤差関数、損失関数いろいろあるけど、なにが違うのかを検討 - Qiita

 

CNNのコンセプト

CNNは人間の視覚野の神経細胞を模倣

単純型細胞(S細胞):画像の濃淡パターン(特徴)を検出

複雑型細胞(C細胞):物体の位置が変動しても同一の物体であるとみなす

→ネオコグニトロン(福島邦彦)

 

CNNとNNの違い

画像全体のうちある一定範囲ごとに演算を行い、その範囲ごとに特徴量を計算

はじめは単純な特徴を拾い上げ、より後の畳み込み層になると複雑で抽象的な特徴を拾う

これにより汎化性能が高まる

一定範囲ごとに読み込んでいるので特徴がどこにあっても検出できる(位置不変性、移動不変性)

※画像が回転すると検出が苦手で(回転不変性がない)、拡大縮小にも弱い

定番のConvolutional Neural Networkをゼロから理解する - DeepAge

学習に必要なパラメータが多い

計算量が多い

より複雑な関数を近似できる

結果の解釈や説明ができない(ブラックボックス) 

 

Global Average Pooling

ひとつの特徴マップにひとつのクラスを対応させる

CNNの手法の一つで全結合層を用いずにこれを使う

 

1980年代には誤差逆伝播学習が提案されていたが、多くの層を持った学習をすることはできなかった

→勾配消失問題

→層の数が多いとNNの学習の目的関数は多くの最小値を持ち、適切な結合の重みの初期値の設定が難しかった

 

勾配消失問題への対処法

いくつかあるが、、、

事前学習:勾配消失問題はモデルのパラメータの初期値に対して依存する。モデルを事前学習させることで安定した学習が可能となり、勾配消失問題を克服できると考えられる

ReLU関数を使う:微分値が0以上の場合はそのままの値、0以下の場合は0となる。
この性質により誤差逆伝播の際に、重みが小さくなるのを防ぐことができる

 

誤差逆伝播法のときに起こる問題

勾配消失問題:誤差がどんどん小さくなっていき学習が収束しない問題

勾配爆発問題:誤差が大きくなっていき学習が収束しない問題

 

活性化関数

tanh関数(双曲線正接関数)→ReLU関数のほうが勾配消失問題が起こりづらい

ReLU(Rectified Linear Unit)/ランプ関数/正規化線形関数

Maxout→複数の線形関係の中で最大値を利用

シグモイド関数

ステップ関数(Step function、単位ステップ関数:Unit step function)→微分値が常に0なのでほとんどのNNでは使用されない。単純パーセプトロンの出力層で用いられる

 

重み共有、局所的受容野

カプセルネットワークはニューラルネットワークを超えるか。 - Qiita

パラメータ数:全結合層>畳み込み層

重み共有によって有用な特徴量を画像の一によって大きく変化させない

 

DNN

CNNの層を深くしたものがDNN

学習するべきパラメータ数が膨大となるため、処理の高速化が必要

2012年に提案された分散並列技術であるDistBelif(googleが開発した深層分散学習のフレームワーク)やGPUが利用されてきた

 

内部共変量シフト

(DNNにおいて、)ある層の入力がそれより下層の学習が進むにつれて変化し、学習がとまってしまう

大規模なNNの学習が困難となる原因

→対策としてバッチ正規化(2015)がある

 出力値の分布の偏りを抑制する

 各層で出力を正規化することで、層が深くなっても入力の分布の変化が少なくなる

 

CNNによる画像処理

パディング:出力画像のサイズを調整するために元の画像の周りを固定の値で埋める

→ゼロで埋めるときはゼロパディングなど

プーリング:最大プーリング、平均プーリング、Lpプーリング(周りの値をp乗し、その標準偏差をとる)

 

ハイパーパラメータのチューニング

ベイズ最適化:過去の試験結果から次に行う範囲を確率分布を用いて計算する手法

 

リカレントニューラルネットワーク(RNN)

ネットワークの入力層のひとつ前に学習で用いた隠れ層(中間層)のジョウタイを与える回帰構造を兼ね備えている

前の単語や文の情報が引き継がれて、隠れ層で過去のデータを保持できるようになっている

時間軸に沿って深いネットワーク構造を持つため、勾配消失問題が起こりやすい

ネットワークにループ構造を持つため、中間層が一層であっても勾配消失問題が起きてしまう

→手書き文字認識に利用

http://ds9.jaist.ac.jp:8080/ResearchData/sub/99/kobayashi/node5.html

ElmanNet

JordanNetと並ぶ初期の有力なRNNの一種。

音声認識に利用

 

LSTMのゲート
LSTMには以下の3つのゲートがあり、ゲートの開け閉めによって信号の重み付け(全開1、全閉0、その中間)をしている。
・忘却ゲート
・入力ゲート
・出力ゲート  

 →ユルゲン・シュミットフーバーとケプラー大学のゼップ・ホフレイターの提案

→各ゲートでの情報の取捨選択はシグモイド曲線を使う

→RNNとの違いで最も目につくのはメモリセルと呼ばれる中間層の状態を保持するパラメータ。メモリセルは、いくつかの次元をもち、時刻経過とともに変化する性質 

機械翻訳や画像からのキャプション生成などに応用

 

BPTT

RNNのときの誤差逆伝播をこう呼ぶ

 

LDA(Latent Dirichlet Allocation)

トピックモデルの1種

文書がどのようなトピックから構成されているかを推論するモデル


推論するパラメータは以下

トピック分布:文書ごとのトピック構成比率
単語分布:トピックごとの単語比率

 

CNNとRNN

CNN:データに潜む空間的構造をモデル化する

RNN:時間的構造をモデル化する

 

GRU

ゲート付き回帰型ユニット

更新ゲートと忘却ゲート

LSTMに似ているが、小さなデータセットではより高い精度を示す

一方でLSTMのほうが強力である 

 

 音声処理

時系列データなのでリカレントニューラルネットワーク(RNN)が最適と考えられていたが、音声処理の分野ではオートエンコーダが非常に高い精度を記録している 

 

オートエンコーダ(Auto Encoder・自己符号化器)

三層NNにおいて、入力層と出力層に同じデータを用いる学習方法

入力データと一致するデータを出力することを目的とする教師なし学習

→積層オートエンコーダでは最後にロジスティック回帰層を足すことで供しあり学習になる

エンコーダ(特徴抽出機)とデコーダ(生成器)をもつ

ジェフリーヒントンが提唱

活性化関数に恒等写像を用いた場合の 3 層の自己符号化器は主成分分析(PCA)と同様の結果を返す

オートエンコーダを多層化するとDNNと同様に勾配消失問題が生じるため、複雑な内部表現を得ることが困難であったため、2006年にヒントンは単層の自己符号化器に分割し、入力層から繰り返し学習させる層ごとの貪欲法を積層自己符号化器に適用することで、汎用的なオートエンコーダーの利用を可能とした

 

オートエンコーダの利用例

次元削減に用いられる

ニューラルネットの事前学習

ノイズ除去

異常検知

クラスタリング

データ生成(VAE)

オートエンコーダ/自己符号化器 - MATLAB & Simulink

 

積層オートエンコーダ

オートエンコーダを積み重ね、最後にロジスティック回帰層を付加する

事前学習→ファインチューニングの工程がある

 

入力層に近い層から順番に学習させる(=事前学習)という逐次的な方法を取っている

最後にロジスティック回帰層を足して、全体で学習する(これをファインチューニングという)


ファインチューニング

既存のモデルの一部を利用して新たなモデルを解くために再学習する手法

ネットワーク全体への教師あり学習

 

学習済みモデルの最終出力層を付け替えるが、入力層に近い部分と出力層のパラメータも変更

例えば、犬と猫と人間を分類するモデルを柴犬とゴールデンレトリバーを分類するモデルに変更するなどのように学習済みモデルと比べて全く異なるモデルへと学習することができるようになる

転移学習とファインチューニングの違い|Zono|note

 

 「深層信念ネットワーク」(Deep Belief Network)

DNNの一種で教師なし学習

オートエンコーダに制限つきボルツマンマシンrestricted boltzmann machineを事前学習として利用

 

ディープラーニングによる表現の獲得の例として、インターネット上の動画から切り出した画像を入力し、猫の概念を生成したというGoogleの研究が有名

ディープラーニングは素性の再利用と抽象的な概念(あるいは不変量)の獲得が可能ことがわかる

 

VAE

変分自己符号化器 (VAE; variational autoencoder)

変分オートエンコーダ

平均や分散などを求める生成モデル

 

VAEはGANに比べて安定した学習ができ, Flowと異なり潜在変数を低次元に落とすことができるので扱いやすく解釈性が高い

一方で、生成画像がぼやけがちで、尤度の計算ができない

誤差逆伝搬でVAEを学習させることができないので、reparametrization trickを使用する

通常のオートエンコーダとの大きな違いは、入力データを圧縮して得られる特徴ベクトル(潜在変数)を確率変数として扱う部分

深層生成モデルを巡る旅(2): VAE - Qiita

 

生成モデル

データの特徴を抽出して学習し、実在しないデータを生成

変分オートエンコーダ

ボルツマンマシン

GAN

GANはより鮮明な画像の生成が可能

 

GAN

生成敵対ネットワーク

画像生成に用いられる

画像生成器→画像識別器をだますような画像を出力

画像識別器→画像生成器から出力された画像と本物の画像とを分類

ANは学習時に不安定になるケースが見られ、意味をなさない画像を生成したり、生成データの種類が偏るなどが課題

教師なし(ラベルなし)学習

 

DCGAN(Deap Convolutional GAN)

ランダムな数値の入力値をもとに画像生成を行う

GANとの違いは、GeneratorとDiscriminatorそれぞれのネットワークに全結合層ではなく、畳み込み層(と転置畳み込み層)を使用している点
GANの学習が安定しない問題に対して、Batch Normalization (バッチ正規化)の導入や、活性化関数にReLUだけでなくtanh, Leaky ReLUを使用している

 

自己組織化マップ(Self-Organizing Map: SOM)

フィンランドの研究者,T. Kohonenの発明したニューラルネットの一種である.SOM は教師なし学習を行う位相保存写像(topology preserving mapping) の一種である

 

確定的モデルと確率的モデル

f:id:herumo:20200702193209p:plain

https://jsai-deeplearning.github.io/support/20151031-index.pdf

確率的モデル :モデルの中に含まれる変数のうち、1つ以上が確率的に変動する確率変数であるモデル

確定的モデル:予測を行なうときのモデルの中の数式に含まれる変数が確率的な変動を示さないで、確定しているモデル

  

正則化

L1、L2正則化を用いた機械学習モデルは損失関数とパラメータの値の和を最小にするパラメータを学習する

パラメータの和を評価することでパラメータが大きくなるのを防ぐ

これによりモデルが過学習しないようにしている

汎化誤差を下げるために用いられることが多い

 正則化の種類と目的 L1正則化 L2正則化について | AVILEN AI Trend

 

LASSO
Least Absolute Shrinkage and Selection Operator。L1ノルムという制約条件を与える正則化手法。パラメータのスパース推定を行う。 

→ラッソ

→幾つかのパラメータを0(スパース)にする

→スパースであるとは、値のほとんどが0であること

→特定のデータの重みを0にする

→モデルに必要な情報を取捨選択してくれる 

→次元圧縮に使う(※過学習を防がないわけではないはず)

 

Ridge正則化
L2正則化項を使って説明変数の影響が大きくなり過ぎないようにする正則化。 

→スパースにはならず、パラメータの大きさに応じてゼロに近づける

→汎化された滑らかなモデルを得ることができる

→パラメータのノルムにペナルティを課す

過学習を防ぐ

→損失関数にパラメータの二乗ノルムを加えるとL2正則化になる

→荷重減衰:ニューラルネットの重みパラメータwに対して、|w|2が大きくなり過ぎないように制約を与える

→重要でないパラメータを0に近づける

RidgeとLasso | IT工房|AI入門とWeb開発

 

Elastic Net

LassoとEidgeの中間

  

重みの制約
ネットワークの自由度が高いと、過適合が起こりやすい
そこで、学習時に重みの自由度を制限する
これを正則化という

 

正規化

データに対して何らかの計算を行い、全てのデータが0~1の間の大きさにすること

 

バッチ正規化

一部の層の出力を正規化する

 

局所コントラスト正規化

減算正規化と除算正規化の処理

画像処理の分野においては前処理として行われる

 

白色化

各成分を互いに無相関にし、平均を 0、分散を 1 にする

 

グレースケール化

画像を白黒画像に変換

 

平滑化

細かいノイズの影響を除去

 

ヒストグラム平均

画素ごとの明るさをスケーリングする

 

標準化 

平均が0かつ分散を1にする

 

正規化に関する工夫

正規化(標準化)しても層を伝播することで崩れていくという課題に対しては重みの初期値を工夫するというアプローチがとられた

→初期値の最適値はわからない

→乱数にネットワークの大きさに合わせた適当な係数をかけることで、データの分布が崩れにくい初期値がいくつか考えられた

シグモイド関数に対してはXavierの初期値、ReLU関数に対してはHeの初期値がよい

  

単語

再現率

偽陽性(False positive, FP)を減らす

全ての陽性サンプルを母数として、実際に陽性であることを見抜けたサンプル数を分子にする

→検出率というと分かりやすい

疾病判定に使われる

 

適合率

偽陰性(False negative, FN)を減らす

陽性であると判断したサンプル数を母数として、実際に陽性であったサンプル数を分子にする

リコメンドシステムなどに使われる

 

F値

適合率と再現率の調和平均

 

MLP

多重パーセプトロン

非線形な分離が可能になった

Multilayer perceptron

 

非線形分離問題

単純なパーセプトロンで起こる

非線形になると分離できない←ミンスキーが指摘していた

多層にすることで解決

 

A/Bテスト

ウェブサイトのより良いデザインの識別などに用いられる手法

異なるデザインや機能を備えたAとBをランダムに顧客に試してもらいよりよいものを識別する

 

パターンマッチング

あるデータが、どのようなパターンに属しているか or 特定のパターンが出現するかを特定する手法

 

逆問題

出力から入力を推定する問題や、入出力の関係性を解き明かす問題

(対義語)順問題

 

よい表現

ディープラーニングは観測データの説明要因を捉え、人間の知識では気がつくことができない共通点を捉えることができる。これをよい表現という。

ディープラーニングの父」の一人、ヨシュア・ベンジオは良い表現に共通する世界に関する多くの一般的な事前知識として幾つかを提唱している(下記)

-滑らかさ

-複数の説明要因

-説明要因の階層的構造

-半教師あり学習

-タスク間の共通要因

-多様体

-自然なクラスタ

-時間的空間的一貫性
-スパース性(データの分布のまばらさ)
-要因の依存の単純性

ディープラーニングは赤字のものに着目している。これらの事前知識を適切に活用できるのであれば、表現学習は必ずしも層の多いニューラルネットワークの形をしていなくてもよい

 

Hadoop

分散技術を用いたアプリケーション

 

MapReduce

並列処理を行うためのプログラミングモデル

 

 

醜いアヒルの子の定理

認知できる全ての客観的な特徴に基づくと全ての対象は同程度に類似

特徴を選択しなければ表現の類似度に基づく分類は不可能である

 

ベイジアンネットワーク

http://www.msi.co.jp/userconf/2018/pdf/muc18_401_2_1.pdf

 

セマンティックウェブ

情報リソースに意味を付与することで、コンピュータで高度な意味処理を実現する

 

オントロジー

概念もしくは構成要素の体系化

語彙やその意味、それらの関係性を他の人と共有できるように、明確な約束事として定義しておくときに用いられるもの

 

ヘビーウェイトオントロジー

対象世界の知識をどのように記述すべきかを哲学的にしっかり考えて行うもの

-cycプロジェクト

 

ライトウェイトオントロジー

効率を重視し、とにかくコンピュータにデータを読み込ませてできる限り自動的に行うもの

-データマイニング、ウェブマイニング

 

協調ベースフィルタリング

購買履歴

 

内容ベースフィルタリング

アイテムの特徴

 

知識獲得のボトルネック

人間が持っている一般常識が膨大で、それらの知識を全て扱うことは極めて困難

コンピュータが知識を獲得することの難しさを知識獲得のボトルネックと呼ぶ

 

機械翻訳

1970:ルールベース機械翻訳

1990:統計的機械翻訳

2016:ニューラル機械翻訳

 

各国の政策

LAWS

AI殺傷平気 

いまだ現存しない

 

シロマAI原則

LAWSによる軍拡競争は避けるべきである

FLI(スティーブンホーキング、イーロンマスクも賛同者)が2017に発表

 

 

 

 

ツイッター拾い物

 

 

 

 

 

 

その他見つけたチートシート

試験本番用に見つけたのはこちらです。

 

3つも4つもあると検索の効率が悪くなりそうなので、自分用のチートシートを作るにあたっては参考にしませんでした。基本は最初にあげたものと、自分のもので済むようにするという方針でした。

 

ただ、本当にわからない+時間が余ったら調べてみようという選択肢として手元においておくと安心感がありますよね。

 

ディープラーニングG検定の知識まとめ! - Qiita

G検定 本番困りそうな所まとめ - Qiita

【AI入門・G検定】JDLA Deep Learning for GENERAL 2018#1 推薦図書キーワードまとめ - Qiita

G検定チートシート - Qiita

 

AI白書が見れるけどいいのか? 

https://www.ipa.go.jp/files/000082705.pdf

 

内閣府関係(ものすごい量)

https://www.kantei.go.jp/jp/singi/it2/kettei/pdf/20190607/siryou9.pdf

https://www.iais.or.jp/wp-content/uploads/2017/09/457d1fa6b6ed9714a5909e69ed36cf9f.pdf

 

いろいろあって有用そうなのですが、いかんせん細かくて見えない、、、

9. G検定①_AIの歴史_G検定のシラバスに沿ってAIの歴史をマインドマップにまとめてみました|weekly_business_mindmap|note