1. はじめに 機械学習では、多くが目的関数(凸関数)を最適化する問題として定式化され、勾配・劣勾配をヒントとして逐次的に目的関数を下げていくわけです。その際、学習率のスケジューリングに頭を悩ませます。そこで、学習率のスケジューリングに関しAdaGrad[J.Duchi]と呼ばれる手法が有効である事が示されました。実装が容易という背景もあり、一気に広まりました。他にもAdaDelta, RMSProp, Adamなど有名で、Qiitaにも各種法を経験的に比較している投稿[1]があります。 ですので、本投稿では実装の話がありません。理論を整理します。なぜ、AdaGradの性能が良いかへの答えは、標準的なSGDよりタイトなRegret上限バウンドを理論的導出したためとなります。 以降で使用するAdaGradはComposite Mirror Descent \mathbf{x}_{t+1} =
![AdaGradが学習率のスケジューリングを上手く調整してくれる理由 - 理論編 - - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/25fe262a829fa4a16b10bcb84ef2daaab3ffd9c5/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9QWRhR3JhZCVFMyU4MSU4QyVFNSVBRCVBNiVFNyVCRiU5MiVFNyU4RSU4NyVFMyU4MSVBRSVFMyU4MiVCOSVFMyU4MiVCMSVFMyU4MiVCOCVFMyU4MyVBNSVFMyU4MyVCQyVFMyU4MyVBQSVFMyU4MyVCMyVFMyU4MiVCMCVFMyU4MiU5MiVFNCVCOCU4QSVFNiU4OSU4QiVFMyU4MSU4RiVFOCVBQSVCRiVFNiU5NSVCNCVFMyU4MSU5NyVFMyU4MSVBNiVFMyU4MSU4RiVFMyU4MiU4QyVFMyU4MiU4QiVFNyU5MCU4NiVFNyU5NCVCMSUyMC0lMjAlRTclOTAlODYlRTglQUIlOTYlRTclQjclQTglMjAtJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1jNmJhOWIxZTgwYzgxMmU1YTVkMGU4ZjUzYjY5NDdjOA%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwUXVhc2ktcXVhbnQyMDEwJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0yMDk5MGUxMmY0MTIzNjdhYTZhZDUwZGVlZTA2YzI2Mg%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Db383128fb5bb375e015987cc6e6ccb67)