タグ

adagradに関するyukimori_726のブックマーク (11)

  • 確率的勾配法あれこれまとめ - KAZ log TechMemo

    Kerasで選択できる最適化アルゴリズムそれぞれの違いと使い所がいまいちわからんかったので調べてみた。 Incorporating Nesterov Momentum into Adamがアルゴリズムを整理してくれているので理解しやすかった。 とりあえずざっくりと俯瞰した感じだと、いかに効率良く傾斜を降下していくかという課題を解決するっていう大枠からはみ出るものはない。そんで、構築しているモデルの種類やサイズによってベストなアルゴリズムは変わってくるので、突き詰めるのであれば要実験。ただ、上記論文は、NadamかRSMProp使っときゃいいんじゃないっすか、みたいなこと言ってる。なんにしろ2000年代後半以降で進化が進んでいる分野であり、今後もアップデートがあるだろうから追っていきたい。 SGD まずはオーソドックスな勾配法。 後述するMomentum法や、NAGもKerasの中ではSGD

  • AdaGradが学習率のスケジューリングを上手く調整してくれる理由 - 理論編 - - Qiita

    1. はじめに 機械学習では、多くが目的関数(凸関数)を最適化する問題として定式化され、勾配・劣勾配をヒントとして逐次的に目的関数を下げていくわけです。その際、学習率のスケジューリングに頭を悩ませます。そこで、学習率のスケジューリングに関しAdaGrad[J.Duchi]と呼ばれる手法が有効である事が示されました。実装が容易という背景もあり、一気に広まりました。他にもAdaDelta, RMSProp, Adamなど有名で、Qiitaにも各種法を経験的に比較している投稿[1]があります。 ですので、投稿では実装の話がありません。理論を整理します。なぜ、AdaGradの性能が良いかへの答えは、標準的なSGDよりタイトなRegret上限バウンドを理論的導出したためとなります。 以降で使用するAdaGradはComposite Mirror Descent \mathbf{x}_{t+1} =

    AdaGradが学習率のスケジューリングを上手く調整してくれる理由 - 理論編 - - Qiita
  • 勾配降下法の最適化アルゴリズムを概観する | POSTD

    (編注:2020/10/01、2016/07/29、いただいたフィードバックをもとに記事を修正いたしました。) 目次: さまざまな勾配降下法 バッチ勾配降下法 確率的勾配降下法 ミニバッチ勾配降下法 課題 勾配降下法を最適化するアルゴリズム Momentum(慣性) Nesterovの加速勾配降下法 Adagrad Adadelta RMSprop Adam アルゴリズムの可視化 どのオプティマイザを選ぶべき? SGDの並列化と分散化 Hogwild! Downpour SGD SGDのための遅延耐性アルゴリズム TensorFlow Elastic Averaging SGD 最適化されたSGDに対する更なる戦略 シャッフル学習とカリキュラム学習 バッチ正規化 早期終了 勾配ノイズ 結論 参考文献 勾配降下法は、最適化のための最も知られたアルゴリズムの1つです。これまではニューラルネット

    勾配降下法の最適化アルゴリズムを概観する | POSTD
  • GitHub - jnishi/rda

  • AdaGrad + RDAを実装してみた - Christopher-727の日記

    AdaGrad + RDA 「結局オンライン最適化はAdaGrad1択だよね」 「AdaGrad + RDAでの分類が精度一番良いみたいです」 「AdaGrad + RDAの方が実装がはるかに簡単」 と立て続けに聞いたのでAdaGrad + RDA*1を理解するために実装してみた。 結論から言うと、確かに実装は簡単だし精度もでました。 損失関数と正則化項 AdaGrad自身は最適化手法です。すると適用するには最適化問題の形で記述する必要があります。 分類問題における定式化では損失関数と正則化項を足したものになります。今回の損失関数は ヒンジロスとなります。 は1 or -1のラベル、はベクトル空間上にマッピングしたデータです。 正則化項は-正則化、-正則化など色々有りますが今回は-正則化となります。 劣微分 で、最適化問題を解くわけです。今回はやの偏微分を用いるのですが、max関数や絶対値

    AdaGrad + RDAを実装してみた - Christopher-727の日記
  • 実装が簡単で高性能な線形識別器、AdaGrad+RDAの解説 - EchizenBlog-Zwei

    機械学習では、データがどのクラスに属するかを識別するという問題が基的です。 この識別問題は線形識別器というモデルを使うことで解くことができます。 この記事では、実装が簡単で高性能な線形識別器、AdaGrad+RDAの解説を行います。 AdaGrad+RDAの詳細な解説は以下の論文を参考にしてください。 http://www.magicbroom.info/Papers/DuchiHaSi10.pdf こちらはAdaGrad+RDAの実装例です。 http://d.hatena.ne.jp/echizen_tm/20140726/1406376207 識別問題は、通常データを2つのクラスに分類します。どうやって分類するかというと、線形識別器が正の値を返したか、負の値を返したかでクラスを分けます。 具体的には、線形識別器は以下の形式をしています。 y = Σ(x_i * w_i) データを表

    実装が簡単で高性能な線形識別器、AdaGrad+RDAの解説 - EchizenBlog-Zwei
  • CNNの学習に最高の性能を示す最適化手法はどれか - 俺とプログラミング

    Adam, AdaGrad, AdaDelta, RMSpropGraves, SGD, MomentumSGDなど数ある最適化手法の中で、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)の学習には、どのOptimizerをつかうのが最も適しているのかということを実験しました。 最適化とは SGDとは MomentumSGDとは AdaGradとは AdaDeltaとは Adamとは RMSpropGravesとは NesterovAGとは 実験環境 実験結果 ソースコード 最適化とは 最適化 (Optimization) とは、関数などを最適な状態に近づけることをいいます。ディープラーニングにおける最適化とは、モデルの予測値と実際の値との誤差から、パラメータ(重み)を更新することです。その最適化手法は以下のように様々なものがあります。パラ

    CNNの学習に最高の性能を示す最適化手法はどれか - 俺とプログラミング
  • https://www.logos.t.u-tokyo.ac.jp/~hassy/deep_learning/adagrad/

  • AdaGradのすすめ - Qiita

    学習率の調整アルゴリズムについて、いろいろ試した結果AdaGradが一番使いやすいという結論に至ったのでまとめ。 前提 線形モデルの学習に限った話。(特に、コンピュータ将棋の評価関数、進行度、実現確率とかでの経験に基づく話。) 非線形モデル(というかNN)の場合は挙動がそれほど素直じゃないので、指数移動平均を使うアルゴリズム(AdamとかRMSPropとか)の方が合っていると思う。 AdaGradとは オンライン学習で学習率を自動調整する手法の一つ。 g:勾配、w:特徴の重みの配列に対して、 こんなような感じで更新する。g2:配列(最初は0)、eta:定数。 実装するときのポイント その1 g2にg * gを足すのは先にやる必要がある。 正しく実装すると、初回の学習率がeta * g / sqrt(g * g) == etaになっていて、2回目以降はちょっとずつ小さくなっていくという、とて

    AdaGradのすすめ - Qiita
  • アニメ推薦くんの精度について - はこべにっき ♨

    今季見るべきアニメを機械学習で推薦する に対してなんか精度評価のしかたおかしくない? とご意見をいただきました (指摘1, 指摘2 ) 調べたところたしかにいろいろおかしくて、F値が0.9をこえるスコアも実際よりもかなり高いことがわかったのでご紹介します。ご指摘ありがとうございます :bow: 。 おかしかったところ 教師データをあたえるときには1とラベル付けされたデータと0と、ラベル付けされたデータの数が同じになるように、オーバーサンプリングしました。 と元の記事にはあったのですが、このオーバーサンプリングが問題でした。オーバーサンプリングを教師データとバリデーションデータに分ける前に行ってしまっていたため、同じアニメの特徴とそのラベルが教師データとバリデーションデータの両方に含まれていました。 教師データに含まれるアニメを正しく分類できるのは当然ですから、教師データと同じアニメをバリデ

    アニメ推薦くんの精度について - はこべにっき ♨
  • AdaGradが12倍速くなる魔法

    AdaGradは学習率を自動調整してくれる勾配法の亜種で、いろんな人が絶賛しています。 勾配を足し込む時に、各次元ごとに今までの勾配の2乗和をとっておいて、その平方根で割ってあげるだけと、恐ろしくシンプルです。 Adaptive Subgradient Methods for Online Learning and Stochastic Optimization John Duchi, Elad Hazan, Yoram Singer. JMLR 2011. 丁度、 @echizen_tm さんがブログを書いてました。 AdaGrad+RDAを実装しました。 通常のSGDなどは学習率をだんだん減衰させながら勾配を足していくわけですが、どの様に減衰させるかという問題にいつも頭を悩ませます。 AdaGradでは最初の学習率こそ外から与えますが、減衰のさせ方や減衰率といったハイパーパラメータから

  • 1