>  > スウェッジライン ブレーキライン [ステンレス] プレサージュ U30   【ブレーキホースの決定版】

スウェッジライン ブレーキライン [ステンレス] プレサージュ U30   【ブレーキホースの決定版】

YOKOHAMA AVS MODEL F15 8.0J-18とHANKOOK VENTUS V12 evo2 K120 215/40R18の4本セット

スウェッジライン ブレーキライン [ステンレス] プレサージュ U30 BOSCHジャパン正規品 【ブレーキホースの決定版】 ig60

秋葉 拓哉
リサーチャー

2018-12-03 13:45:42

ハイパーパラメータ自動最適化フレームワーク「Optuna」のベータ版を OSS として公開しました。この記事では、Optuna の開発に至った動機や特徴を紹介します。

 

 

ハイパーパラメータとは?

ハイパーパラメータとは、機械学習アルゴリズムの挙動を制御するパラメータのことです。特に深層学習では勾配法によって最適化できない・しないパラメータに相当します。例えば、学習率やバッチサイズ、学習イテレーション数といったようなものがハイパーパラメータとなります。また、ニューラルネットワークの層数やチャンネル数といったようなものもハイパーパラメータです。更に、そのような数値だけでなく、学習に Momentum SGD を用いるかそれとも Adam を用いるか、といったような選択もハイパーパラメータと言えます。

ハイパーパラメータの調整は機械学習アルゴリズムが力を発揮するためにほぼ不可欠と言えます。特に、

スウェッジライン ブレーキライン [ステンレス] プレサージュ U30   【ブレーキホースの決定版】

Project μ プロジェクト ミュー ブレーキパッド RACING N+ リア AUDI A6(Sedan)/A6 AVANT(Wagon) 4BARES 2.7T Quattro, 【USA在庫あり】 フリーダム FREEDOM PERFORMANCE EXHAUS 4" LIBERTY S/O P-BLK 473703 JP, ザム XAM リア スプロケット レーシング マルケジーニ 520/48T スチール 黒 B4910R48 JP店, 『ランサーエボリューションX』 純正 CZ4A グリル&バンパーイルミネーション パーツ 三菱純正部品 ライト 照明 ドレスアップ LANCER オプション アクセサリー 用品, TRD オイルフィラーキャップ 樹脂製 [ MS112-00001(12180-SP031 ] スターレット EP91 EP82 適合 EP82・91 (必要個数 1個) 【メーカー在庫あり】 カワサキ純正 カバー クラッチ 14032-1457 JP店, POSH Faith(ポッシュ フェイス)CB400SF/1300SF -'05 LWLウインカー W(MK/クリアー)[152652], 【送料無料】 175/65R15 15インチ MONZA モンツァ ZACK JP-520 5.5J 5.50-15 KINGSTAR キングスター SK70 サマータイヤ ホイール4本セット フジコーポレーション, 最高級の肌触り♪【天使のフロアマット】ダイハツ ムーヴ LA110S(H22.12~)4WD/2WDヒーター付用【AWESOME/オーサム】超高密度 贅沢仕様02P05Nov16, 【送料無料】 185/60R15 15インチ MID シュナイダー スタッグ 5.5J 5.50-15 YOKOHAMA ヨコハマ ブルーアース GT AE51 サマータイヤ ホイール4本セット【YOsum19】 【メーカー在庫あり】 (株)タンガロイ タンガロイ 丸物保持具 JBBS254-4-L100C HD

スウェッジライン ブレーキライン [ステンレス] プレサージュ U30   【ブレーキホースの決定版】:【メーカー在庫あり】 フォックス FOX ブーツ コンプ5 オフロード 黒/グレー 12サイズ (28.5cm) 17780-014-12 HD店 Milky White 神風 直巻スプリング ID63 バネレート 28K 自由長:75mm

スウェッジライン ブレーキライン [ステンレス] プレサージュ U30   【ブレーキホースの決定版】.エルグランド用 ブラケットコンプレツサーエルグランド 11910-4W000 日産純正部品 【SSR】 WERFEN GT-04 (ヴェルフェン GT-04) 20インチ 10.0J PCD:114.3 穴数:5 inset:6 サーチライトシルバー [ホイール1本単位] [H]

215/55R17 94V DUNLOP ダンロップ ENASAVE RV504 エナセーブ RV504 G.speed P-04 ジースピード P-04 サマータイヤホイール4本セット スバル WRX STI/インプレッサ(VAB/GRB/GRF/GVB/GVF)用 タイヤ銘柄: ダンロップ WINTER MAXX WM02 タイヤサイズ: 245/40R18 ホイール: オススメアルミホィール スタッドレスタイヤ&ホイール4本セット【18インチ】

、深層学習はハイパーパラメータの数が多い傾向がある上に 【関西、関東限定】取付サービス品S2000 AP1/2 トランク / テールゲート【バリス】S2000 AP1 リアトランク カ-ボン、その調整が性能を大きく左右すると言われています。深層学習を用いる多くの研究者・エンジニアは、ハイパーパラメータの調整を手動で行っており、ハイパーパラメータの調整にかなりの時間が費やされてしまっています。

Optuna とは?

Optuna はハイパーパラメータの最適化を自動化するためのソフトウェアフレームワークです。ハイパーパラメータの値に関する試行錯誤を自動的に行いながら、優れた性能を発揮するハイパーパラメータの値を自動的に発見します。現在は Python で利用できます。

Optuna は次の試行で試すべきハイパーパラメータの値を決めるために、完了している試行の履歴を用いています。そこまでで完了している試行の履歴に基づき エルグランド用 フイニツシヤーリアサイドリアRHエルグランド 76904-1A505 日産純正部品、有望そうな領域を推定し、その領域の値を実際に試すということを繰り返します。そして、新たに得られた結果に基づき、更に有望そうな領域を推定します。具体的には、Tree-structured Parzen Estimator というベイズ最適化アルゴリズムの一種を用いています。

Chainer との関係は?

Optuna は Chainer を含む様々な機械学習ソフトウェアと一緒に使うことができます。

Chainer は深層学習フレームワークであり エスペリア スーパーダウンサス 1台分 シビック EK4 ESH-056 ESPELIR Super DOWNSUS ダウンスプリング バネ ローダウン コイルスプリング【店頭受取対応商品】、Optuna はハイパーパラメータの自動最適化フレームワークです。例えば、Chainer を用いたニューラルネットの学習に関するハイパーパラメータを最適化する場合、Chainer を用いるユーザーコードの一部に Optuna からハイパーパラメータを受け取るコードを書くことになります。それを Optuna に渡すことによって、Optuna が自動的に何度もそのユーザーコードを呼び出し、異なるハイパーパラメータによりニューラルネットの学習が何度も行われ、優れたハイパーパラメータが自動的に発見されます。

社内では Chainer と共に用いられているユースケースがほとんどですが、Optuna と Chainer は密結合しているわけではなく、Chainer の以外の機械学習ソフトウェアとも一緒に使うことができます。サンプルとして、Chainer の他に scikit-learn, XGBoost, LightGBM を用いたものを用意しています。また、実際には機械学習に限らず、高速化など、ハイパーパラメータを受け取って評価値を返すようなインターフェースを用意できる幅広いユースケースで利用可能です。

なぜ Optuna を開発したのか?

ハイパーパラメータの自動最適化フレームワークとして、Hyperopt, Spearmint, SMAC といった有名なソフトウェアが既に存在しています。そんな中でなぜ Optuna を開発したのでしょうか?

複数の理由やきっかけがありますが、一言で言うと、我々の要求を満たすフレームワークが存在せず、そして既存のものよりも優れたものを作るアイディアがあったからです。また、実際には、機能面だけではなく品質面でも、既存のフレームワークにはレガシーなものが多く、不安定であったり環境によって動作しなかったり修正が必要だったりという状況でした。

Optuna の特徴

【ブレーキホースの決定版】 U30 U30 スウェッジライン 【ブレーキホースの決定版】 プレサージュ [ステンレス] ブレーキライン

Optuna は Define-by-Run スタイルの API を提供しており、既存のフレームワークと比較し、対象のユーザーコードが複雑であっても高いモジュール性を保ったまま最適化を行うことを可能とし、またこれまでのフレームワークでは表現出来なかったような複雑な空間の中でハイパーパラメータを最適化することもできます。

深層学習フレームワークには Define-and-Run と Define-by-Run という 2 つのパラダイムが存在します。黎明期は Caffe など Define-and-Run のフレームワークが中心でしたが、PFN の開発した Chainer は Define-by-Run のパラダイムを提唱し先駆けとなり、その後 PyTorch が公開され 、TensorFlow も 2.0 では eager mode がデフォルトになるなど、今では Define-by-Run のパラダイムは非常に高く評価されており weds MAVERICK 709M 8.0J-20 とYOKOHAMA BluEarth RV02 245/40R20の4本セット、標準的にすらなろうとする勢いです。

Define-by-Run のパラダイムの有用性は、深層学習フレームワークの世界に限られたものなのでしょうか?我々は、ハイパーパラメータ自動最適化フレームワークの世界でも同様の考え方を適用できることに気づきました。この考え方の下では、全ての既存のハイパーパラメータ自動最適化フレームワークは Define-and-Run に分類されます。そして Optuna は Define-by-Run の考え方に基づき、既存のフレームワークと大きく異なるスタイルの API をユーザに提供しています。これにより、ユーザプログラムに高いモジュール性を持たせたり複雑なハイパーパラメータ空間を表現したりといったことが可能になりました。

学習曲線を用いた試行の枝刈り

深層学習や勾配ブースティングなど、反復アルゴリズムが学習に用いられる場合、学習曲線から、最終的な結果がどのぐらいうまくいきそうかを大まかに予測することができます。この予測を用いて、良い結果を残すことが見込まれない試行は、最後まで行うことなく早期に終了させてしまうことができます。これが、Optuna のもつ枝刈りの機能になります。

Hyperopt, Spearmint, SMAC 等のレガシーなフレームワークはこの機能を持ちません。学習曲線を用いた枝刈りは、近年の研究で、非常に効果的であることが分かっています。下図はある深層学習タスクでの例です。最適化エンジン自体は Optuna も Hyperopt も TPE を用いており同一であるものの、枝刈りの機能の貢献により、Optuna の方が最適化が効率的になっています。

並列分散最適化

深層学習は計算量が大きく一度の学習に時間がかかるため、実用的なユースケースでのハイパーパラメータの自動最適化のためには、性能が高く安定した並列分散処理を簡単に使えることが必要不可欠です。Optuna は複数ワーカーを用いて複数の試行を同時に行う非同期分散最適化をサポートします。下図のように、並列化を用いることで最適化は更に加速します。下図はワーカー数を 1, 2, 4, 8 と変化させた場合の例ですが、並列化により最適化がさらに高速化されていることが確認できます。

また、Chainer の分散並列化拡張である ChainerMN との連携を容易にする機能も用意されており、最適化対象の学習自体が分散処理を用いるような場合にも Optuna を簡単に使うことができます。これらの組み合わせにより、分散処理が含まれた目的関数を並列に分散実行するようなこともできます。

ダッシュボードによる可視化(実装中)

最適化の過程を見たり、実験結果から有用な知見を得たりするために ブリッツ THROTTLE CONTROLLER ダイハツ タント(TANTO) LA600S, LA610S KF-VET TOYOTA TYPE-1 スロットルコントローラー、ダッシュボードを用意しています。1 コマンドで HTTP サーバが立ち上がり、そこにブラウザで接続することで見ることができます。また、最適化過程を pandas の dataframe 等で export する機能もあり、それらを用いてユーザがシステマチックに解析を行うこともできます。

終わりに

Optuna は既に複数の社内プロジェクトで活用されています。例えば、今夏準優勝を果たした Open Images Challenge 2018 でも用いられました。今後も活発に開発は続けられ、完成度の向上と先進的な機能の試作・実装の両方を精力的に進めていきます。現段階でも他のフレームワークと比較し Optuna を利用する理由は十分存在すると我々は考えています。お試し頂きお気づきの点があれば忌憚のないフィードバックを頂ければ幸いです。

先日開催された第 21 回情報論的学習理論ワークショップ (IBIS’18) では、弊社でのインターンシップにおける成果であるハイパーパラメータ自動最適化に関する研究を 2 件発表しました。これらは Optuna を実際に利用している中で出てきた問題意識に基づいており、成果はいち早く Optuna に組み込むことを目指して取り組んでいます。こういった技術により Optuna を更に優れたものとしていければと考えています。

我々の目標は、深層学習関連の研究開発をできるだけ加速することです。ハイパーパラメータの自動最適化はそのための重要なステップとして取り組んでいますが、他にも既にニューラルアーキテクチャー探索や特徴量の自動抽出といった技術に関しても取り組みを開始しています。PFN では、こういった領域や活動に興味を持ち一緒に取り組んでくれるメンバーをフルタイム・インターンで募集しています

9 Responses to “ハイパーパラメータ自動最適化ツール「Optuna」公開”

  1. Kazuyoshi Yamada Says:
    December 6th, 2018 at 6:34 PM

    サンプルコードを読んでいて気になったのですが
    objective()内で、データセットのロードや分割等の処理を行う理由はあるのでしょうか?
    外で前処理を全て行った上で、objective内で使用するように書いた方が速いのでは無いですか?

  2. 秋葉 拓哉 Says:
    December 6th, 2018 at 6:45 PM

    その通りです。分かりやすさのために、現状では学習に関する処理を全て関数 objective の中に入れるように書いていますが、変更を検討しています。

  3. Masahiro Saito Says:
    December 10th, 2018 at 11:37 PM

    本ツールのTPEにおいて,損失の上位グループと下位グループを分割する閾値はどのように設定しているのでしょうか?
    また,カーネル密度の算出にあたり,カーネル関数およびバンド幅をどのように設定しているのかも同様にお伺いしたいです。

  4. 秋葉 拓哉 Says:
    December 11th, 2018 at 12:10 PM

    TPEに関しては、基本的にHyperoptのTPEを参考にしており、ほぼそれに従った設定になっています。詳しくは以下の論文やHyperopt・Optunaのソースコードを読んでいただければと思います。
    https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf
    http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.704.3494&rep=rep1&type=pdf

  5. Takeshi Kondo Says:
    December 23rd, 2018 at 8:23 AM

    今後、積極的に利用させていただきます。

    study.optimize() の結果を出力させないようにすることは可能でしょうか?以下のようにしても trial ごとの Current best value などが出力されます。

    results = study.optimize(objective, n_trials=5)

    よろしくお願いいたします。

  6. 秋葉 拓哉 Says:
    December 25th, 2018 at 11:49 AM

    ご利用ありがとうございます。こちらをご覧頂ければと思います。 https://optuna.readthedocs.io/en/stable/faq.html#how-to-suppress-log-messages-of-optuna

  7. Takuya Says:
    December 28th, 2018 at 2:20 PM

    乱数シードを固定する機能はありますか??

  8. 秋葉 拓哉 Says:
    January 7th, 2019 at 10:46 AM

    こちらをご覧ください。 https://optuna.readthedocs.io/en/stable/faq.html#how-can-i-obtain-reproducible-optimization-results

  9. 秋葉 拓哉 Says:
    January 7th, 2019 at 10:49 AM

    Optuna に関する質問は、以後、ブログへのコメントではなく以下の場所で頂けると助かります。

    * GitHub Issue (英語) https://github.com/pfnet/optuna/issues
    * Chainer Slack (日本語) https://chainer-jp.slack.com/messages

{yahoojp}jpprem01-zenjp40-wl-zd-18459