めも

メモ.

ディープラーニングのパラメータ設定・更新方法に関するメモ

使う機会がありそうなのでメモ。 ただ正直目的関数を変更することはあっても、パラメータ更新手法は滅多に変更しないので資料も添付しない、存在だけ知っておく程度。

パラメータの初期化

Xavier Initialization

http://andyljones.tumblr.com/post/110998971763/an-explanation-of-xavier-initialization

He Initialization

Glorot initialisation

パラメータ更新の手法

Vanilla update

w += - learning_rate * dw というつまり一番シンプルな形式。

Momentum

Nesterov Momentum

上記三つの比較実験。自分も本当は実験して記事を書くべきなんだけども。

Nadam

Nesterov Momentum + Adam

AdaGrad

スライド資料: https://courses.cs.washington.edu/courses/cse547/15sp/slides/adagrad.pdf

AdaDelta

Adam(Adaptive Moment Estimation)

RMSprop

Eve

Improving Stochastic Gradient Descent with Feedback, Jayanth Koushik, Hiroaki Hayashi

ICLR2017における該当論文のレビューはここで公開されています。

その他多数

ICLRにサブミットされた確率的勾配法もしくはpolicy gradient関係の論文一覧、多い。

stochastic gradient descent – Amund Tveit's Blog

自分で定義した目的関数を使用して学習

Kerasの場合は

model.compile(loss=objective_function_defined_by_yourself, optimizer='nadam')

などと指定する。objective_function_defined_by_yourself

import theano.tensor as T

epsilon = 1.0e-9
def objective_function_defined_by_yourself(y_true, y_pred):
    y_pred = T.clip(y_pred, epsilon, 1.0 - epsilon)
    y_pred /= y_pred.sum(axis=-1, keepdims=True)
    cce = T.nnet.categorical_crossentropy(y_pred, y_true)
    return cce

などと指定する(参照ページ)。

その他

モデル圧縮、入力のノーマライズドロップアウト、転移学習、weight decayなどの手法に触れていない。

プライバシーポリシー

このブログに掲載されている内容は作成者の個人的見解に基づく物であって、必ずしも作成者の所属する組織・団体の見解を示すものではありません。また、記載が不正確であったことにより生じたいかなる損害に関しても、責任を負いかねますのでご了承ください。また、本サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。また、本サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。 クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。本サイトの管理者への問い合わせ、当ブログのプライバシーポリシーの詳細についてはこちらをご覧ください。