タグ

sgdに関するyukimori_726のブックマーク (25)

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

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

  • paragraph2vecの論文 要訳 (Distributed Representations of Sentences and Documents) - Qiita

    paragraph2vecの論文 要訳 (Distributed Representations of Sentences and Documents)自然言語処理機械学習word2vecparagraph2Vec論文読み 原文: Distributed Representations of Sentences and Documents 要訳者からのお知らせ この要訳はTSGの機械学習分科会での発表のために作られたものです。 雑に内容を理解するためのまとめであり、正確な内容を保証するものではありません。 致命的なミスはコメントか編集リクエストでお知らせください Abstract 機械学習するには入力を固定長のベクトルにする必要がある 既存手法で一番popularなのはbag-of-words だけどBOWはクソ 順序の情報が失われる 単語間のセマンティクスが失われる なので Paragr

    paragraph2vecの論文 要訳 (Distributed Representations of Sentences and Documents) - Qiita
  • AdaGradが学習率のスケジューリングを上手く調整してくれる理由 - 理論編 - - Qiita

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

    AdaGradが学習率のスケジューリングを上手く調整してくれる理由 - 理論編 - - Qiita
  • Optimizer : 最適化手法の検証 - Qiita

    結果はAdaDeltaが一番高い精度を出し、次点でAdamでした。一応分散も出したのですが、これもAdaDeltaが一番小さいことから安定していることがわかります。 以上のことから、今回の手書き数字10クラス分類というタスクにおいては、分散・精度ともにAdaDeltaが最も適していることがわかりました。 この結果が出るまでは、どうせAdamの圧勝だろーなーって軽く考えていただけに面白い結果が出てしまいました。今回のようなモデルの場合、Adamのバイアスを打ち消す項が逆に学習の収束まで足を引っ張ってしまうのでしょうか。そもそもChainerのAdamが自分が考えている動き方をしているのかも不安なのですが、、 単純にAdamを使っておけばいいという訳ではなさそうですね。 まとめ 最初にも述べましたが、今回の手書き数字分類問題に関してはこのような結果が出ましたが、あくまでこの問題における結果であ

    Optimizer : 最適化手法の検証 - Qiita
  • 確率的勾配降下法

    確率的勾配降下法 機械学習のアルゴリズムの多くは,考えている問題を, 何らかの目的関数の最大化もしくは最小化問題(最適化問題)に落としこんで解く. 最適化問題の解析解を簡単に求められればよいが,そうではない場合は反復法 (適当に与えた初期値を徐々に最適解に近づける方法)に頼ったりする. 今日は,そんな反復法の1つである,確率的勾配降下法のお話. 勾配降下法 まずは,「確率的」勾配降下法の前に,普通の勾配降下法 (gradient descent) について話しておく. パラメータ $\theta$,サンプル $x$ に対する誤差関数を $E(x, \theta)$ とおくと, 勾配降下法では,誤差関数のサンプルに関する期待値 を最小化する.しかし,一般に $p(x)$ は分かんないし,そもそも,上の積分を計算するためには, 起こりうる全てのサンプルを獲得しなければいけない. 普通は母集団は

  • 株式会社ALBERT(レコメンドエンジン)

    データ分析から導き出されたインサイト無しにAI人工知能)の活用は始まりません。私たちは、各業界知識とデータ・アナリティクス技術を駆使しデータドリブン経営を強力に支援します。 データ、アナリティクス、AIは企業にとって競合他社との差別化を図るかつてないほど大きな要因になっています。今日の経営幹部が効率を向上しながら新たな収益源を開拓し、新しいビジネスモデルをタイムリーに構築する方法を模索する中、価値を生み出し成長を続ける企業には「データ活用」という共通項があります。私たちは、無数のデータから企業にとって当に必要なデータを活用するための方法を知っています。 将来を見据えたオペレーション体制を備えている企業の半数以上(52%)は、すでにデータとアナリティクスを大規模に活用しています。データとAIに関する取り組みをビジネス戦略に沿って実施することで投資利益率を迅速に最大化し、最終的にはAIをビ

    株式会社ALBERT(レコメンドエンジン)
  • 劣微分を用いた最適化手法について(3) - Preferred Networks Research & Development

    進撃の巨人3巻が11月に発売されるものと勘違いして屋を探し回っていましたが、発売日は12月9日でした。徳永です。 前回は、確率的勾配降下法(SGD)について説明しました。今回はいよいよ、劣微分を用いた最適化手法に付いての説明をおこないます。 前回の復習 前回は、最大エントロピーモデルによる線形識別器の学習方法について説明し、最後に正則化について紹介しました。正則化については重要性を主張しきれていなかった気がするので、もう一度過学習と正則化について説明しておきたいと思います。 前回、間違いは少ないほうがいいよね、というような話をしましたが、間違いには2種類あります。一つは既知のデータに対する間違いの多さで、もう一つは未知のデータに対する間違いの多さです。既知のデータに対する間違いを経験損失と言い、未知のデータに対する間違いを期待損失、もしくは汎化誤差と言います。(間違いと損失はちょっと違い

    劣微分を用いた最適化手法について(3) - Preferred Networks Research & Development
  • “確率的最適化”を読む前に知っておくといいかもしれない関数解析のこと

    Stochastic optimization http://owl-learn.connpass.com/event/28739/Read less

    “確率的最適化”を読む前に知っておくといいかもしれない関数解析のこと
  • 深層学習を読んでいったときのメモ (1. 順伝播型ネットワーク) - Qiita

    今回の内容 順伝播型ネットワーク 深層学習が成り立つ仕組み、問題に対するアプローチについて簡単に触れます。 はじめに 最近、深層学習について興味があって、理解した内容を書いていこうと思います。 今回の教科書は深層学習というで勉強します。教科書を丸っきり一緒のことは書かないです。 このの内容は大きく分けて以下のものがあります。 順伝播型ネットワーク 確率的勾配降下法 誤差逆伝播法 自己符号化器 畳込みニューラルネット 再帰型ニューラルネット ボルツマンマシン 順番にメモを書いていきます。今回は順伝播型ネットワークをメモを書きます。 1.1 順伝播型ネットワークについて 順伝播型ネットワークとは、情報が入力側から出力側に一方向にのみ伝搬させていくネットワークのことです。 (他の文献では多層パーセプトロンともいうみたいです。) 下の図は入力が4個あって、出力も4個です。別に入力数と出力数が異

    深層学習を読んでいったときのメモ (1. 順伝播型ネットワーク) - Qiita
  • http://exploredoc.com/doc/6526342/%E6%9C%80%E6%80%A5%E9%99%8D%E4%B8%8B%E6%B3%95%E3%81%AB%E3%82%88%E3%82%8B%E6%83%85%E5%A0%B1%E9%87%8F%E8%A6%8F%E6%BA%96wbic%E3%81%AE%E5%AE%89%E5%AE%9A%E7%9A%84%E8%A8%88%E7%AE%97%E6%B3%95-%E6%B8%A1%E8%BE%BA

    http://exploredoc.com/doc/6526342/%E6%9C%80%E6%80%A5%E9%99%8D%E4%B8%8B%E6%B3%95%E3%81%AB%E3%82%88%E3%82%8B%E6%83%85%E5%A0%B1%E9%87%8F%E8%A6%8F%E6%BA%96wbic%E3%81%AE%E5%AE%89%E5%AE%9A%E7%9A%84%E8%A8%88%E7%AE%97%E6%B3%95-%E6%B8%A1%E8%BE%BA
  • 確率的勾配降下法+α の話をしました - kisa12012の日記

    先日PFIセミナーにて,「SGD+α: 確率的勾配降下法の現在と未来」というタイトルで発表をしました!発表の機会を設定して頂いたPFIの皆様,ありがとうございます.スライドは以下になります. SGD+α: 確率的勾配降下法の現在と未来 from Hidekazu Oiwa 確率的勾配降下法(SGD)はシンプルで大規模データから”そこそこの”解を得るには非常に有効なアルゴリズムです.一度自分で実装してSGDを回してみたことのある人も多いと思います. 一方で 結局ステップ幅の設定が大変 正規化とか前処理しないとそれほど上手く動いてくれない などなどSGDには欠点も多く,たくさんの人が使う際に苦しめられてきた現実もあるのではないでしょうか. 今回の発表では,SGDの欠点を克服するため,およびさらなる長所を加えるための,最新の+α拡張研究について紹介しました. 内容は, ステップ幅設定に今後悩まさ

    確率的勾配降下法+α の話をしました - kisa12012の日記
  • 確率的勾配降下法とは何か、をPythonで動かして解説する - Qiita

    勾配降下法は何に使う? 勾配降下法は統計学や機械学習で多く使われています。特に機械学習というのは基的に何かしらの関数を最小化(最大化)する問題を数値解析的に解くことに帰結する場合が多いです。(e.g. 最小二乗法 → 誤差の二乗和を最小化(参考)、ニューラルネットワークのパラメータ決定 etc...) なので、基的にはひたすら微分して0となるところを探す問題ですね、微分して0。で、その微分して0となる値は何か、をプログラムで解く場合に重要になるのがこの勾配降下法です。幾つか勾配法にも種類がありますがここでは最急降下法、確率的勾配降下法の2つを扱います。まずはイメージをつかむために1次元のグラフで確認していきたいと思います。 1次元の場合 1次元の場合は、確率的という概念はなく、ただの勾配降下法になります。 (どういうことか、はのちほど) 1次元の例は、正規分布をマイナスにしたものを使っ

    確率的勾配降下法とは何か、をPythonで動かして解説する - Qiita
  • 機械学習超入門IV 〜SVM(サポートベクターマシン)だって30分で作れちゃう☆〜 - EchizenBlog-Zwei

    ニーズがあるのかさっぱりわからない機械学習超入門だけどひっそり続けていきたい。 前回は識別関数の基礎であるパーセプトロンの簡単な説明とPerlによる実装を解説した。実はこの時点でかの有名なSVM(Support Vector Machine、サポートベクターマシン)もほぼ完成していたのだ!というわけで今回はSVMをPerlで作ってしまうお話。 参考: これからはじめる人のための機械学習の教科書まとめ - EchizenBlog-Zwei 機械学習超入門 〜そろそろナイーブベイズについてひとこと言っておくか〜 - EchizenBlog-Zwei 機械学習超入門II 〜Gmailの優先トレイでも使っているPA法を30分で習得しよう!〜 - EchizenBlog-Zwei 機械学習超入門III 〜機械学習の基礎、パーセプトロンを30分で作って学ぶ〜 - EchizenBlog-Zwei さて

    機械学習超入門IV 〜SVM(サポートベクターマシン)だって30分で作れちゃう☆〜 - EchizenBlog-Zwei
  • averaged stochastic gradient descentのご紹介 - Preferred Networks Research & Development

    そろそろ寒くなってきましたね。早速風邪を引きました。徳永です。 今日は私の使っている自作の足置き(制作費600円)の紹介でお茶を濁そうと思っていたのですが、途中で方向転換しました。今日は機械学習の話をします。 Léon Bottouという研究者(彼はまたDjVuというドキュメントフォーマットの開発者でもあります)が開発・公開しているsgdというソフトウェアのバージョン2.0が公開されました。sgd 2.0ではaveraged stochastic gradient descent(ASGD)という手法が実装され、これまでのSGDと比べて性能が向上しました。今日はこのASGDを紹介したいと思います。日語に訳すと平均化確率的勾配降下法でしょうか。漢字が多くて読みづらいので以下ではASGDと呼びます。 もともと、SGD(確率的勾配降下法)はNLPのような高次元かつスパースなタスクではうまく行く

    averaged stochastic gradient descentのご紹介 - Preferred Networks Research & Development
  • 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では最初の学習率こそ外から与えますが、減衰のさせ方や減衰率といったハイパーパラメータから

  • Coursera / Machine Learningの楽しみ方 (Week 10) - Qiita

    (ベンチマークテストに関して,追記しました.) 先日,Coursera, Machine Learning コース (by Stanford University, Prof. Andrew Ng) のプログラミング課題(Matlab)をPythonに移植しながら楽しむ方法についてQiitaに投稿させていただいた.その後コースの受講も進んだが,Week 10から楽しみにしてきたプログラミング課題が無いことを知った.(全11週の内,Program AssignmentがあるのはWeek 1からWeek 9までです.因みにQuizは,Week 10, 11でもあります.) Week 10は,"Large Scale Machine Learning"ということで,Stochastic Gradient Descent (SGD,確率的勾配降下法) やOnline Learningについての講義

    Coursera / Machine Learningの楽しみ方 (Week 10) - Qiita
  • 【論文紹介】 A Fast Parallel SGD for Matrix Factorization in Shared Memory Systems – はむかず!

  • https://scikit-learn.org/stable/modules/sgd.html

  • An overview of gradient descent optimization algorithms

    An overview of gradient descent optimization algorithms Gradient descent is the preferred way to optimize neural networks and many other machine learning algorithms but is often used as a black box. This post explores how many of the most popular gradient-based optimization algorithms such as Momentum, Adagrad, and Adam actually work. This post explores how many of the most popular gradient-based

    An overview of gradient descent optimization algorithms
  • Spark mllibのmini batch SGD実装 - Qiita

    はじめに この記事はApache Spark Advent Calendar 2015の24日目の記事です。 Spark mllibのSVM, Logistic Regressionの学習に使われている mini batch SGD実装について調べた結果などを書きます。 SGDの実装は簡単で応用も広く有用な最適化手法なのでSparkの分散処理の枠組みの中でどう実装されているか興味を持っていました。 また、SGDの学習率を自動に最適化する手法, AdaGrad, Adam etc.をSpark mllibでどう実装できるかにも興味を持っていてその観点で調べてみました。 次の順番に軽く書いてみたいと思います。 GradientDescent.scalaのソースコードリーディング SGD実装に関係するSpark JIRAチケット AdaGradのプロトタイピング GradientDescent.

    Spark mllibのmini batch SGD実装 - Qiita