はじめに
arxivにある論文からAI研究トレンドをまとめたという、以下のサイトを眺めていて、初めて見る単語がいくつかあったのでお勉強してみました。
A Peek at Trends in Machine Learning
ちなみに、筆者は、AI、機械学習に関してほぼ素人で数式を見ると頭が痛くなるタイプなので、ふわっと分かったをまとめています。
Batch Normalization
2015 年に提案された手法。
Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
隠れ層のアクティベーション(活性化関数における出力)の分布は、基本的にばらついていた方がよい。(0,1に集中していたりすると、勾配消失問題(*1)が起こりやすくなるらしい)
そこで、重みの初期値を適切に設定することで、アクディベーションの分布を適度に広げ、学習をスムーズに行えるようにする。(初期値に、どのような値を設定するかで、学習の成否が分かれることがある)
初期値に依存せず、このアクティベーションを強制的に広がりを持たせて分布させるのが、Batch Normalization とのこと。
こんな感じで、ニューラルネトワークに挿入する
次のような利点があるらしい。
- 学習係数を適度に大きくし学習の進行速度を上げられる
- 初期値にそれほど依存しない
- 過学習を抑制する
*(1)勾配消失問題とは
ディープラーニングによる判別結果と正解データの誤差を、出力層側から入力層側に向かって伝播して、パラメータを変化させることで精度を上げていく(誤差逆伝播法またはバック・プロパゲーションという)際、複数の層を伝播していく過程で誤差情報が消失してしまう現象。
(引用元)ディープラーニングって何?人工知能ブームに火をつけたアルゴリズムをどう捉えるべきか
Style Transfer
ニューラルネットワークによる画風変換のこと
(参考URL)Style Transferの外観
こんなやつです。
(引用元)Image Style Transfer Using Convolutional Neural Networks
FCN(Fully Convolutional Networks)
名前の通り、全てが畳み込み層(Convolutional layer)で構成されるニューラルネットワークのこと。
以下論文のような Semantic Segmentation 向けのアルゴリズム。Semantic Segmentationとは、簡単にいうと、各ピクセルがどのオブジェクトに属しているのかをラベリングすること。
Fully Convolutional Networks for Semantic Segmentation
一番右の画像(Image)に対して、その一つ隣の画像(Ground Truth)を学習させることにより左側2列のような画像を出力できるようにしたいというもの。比較に用いられているSDSは、Simultaneous detection and segmentationという別の手法です。
Siamese Network(SNs)
Siamese Networks は、GANs(Generative Adversarial Networks)のように、2つのネットワークが共に作用する。ネットワークが競い合うGANsとは異なり、SNsはネットワーク出力を2つの異なる入力で比較し、その類似点を比べる。
(参考URL)ディープラーニングネットワーク (GAN と Siamese) を組み合わせハイクオリティでリアルなイメージを生成
Adam(Adaptive Moment Estimation)
オプティマイザー(最適化アルゴリズム)の一種。
最急勾配を下げていく、それ以外の勾配方法も試すことで、鞍点からの抜け出しが速くなる可能性があるとのこと。
(参考URL)Adamのパラメータ設定
理解できないと思われるので、数式は見ていませんが、単語は覚えたので一旦よしとします。
おわりに
トレンドとしては、ResNetsとかニューラルネットや画像処理に関する技術が多かった気がします。
はやく、こうした最新の論文を読みこなして、面白そうなものは実装できるようになりたいです・・・