機械学習のハイパーパラメーターを自動最適化、Preferred Networksがライブラリを公開:機械学習の開発負荷を低減
Preferred Networksは、機械学習アルゴリズムの動作を制御する「ハイパーパラメーター」向けの自動最適化フレームワーク「Optuna」のβ版をオープンソースソフトウェアとして公開した。機械学習ライブラリとして「Chainer」だけでなく、「scikit-learn」や「XGBoost」「LightGBM」などを利用した場合でも、ハイパーパラメーターの自動最適化が可能。
Preferred Networksは2018年12月3日、ハイパーパラメーター自動最適化フレームワーク「Optuna(オプチュナ)」のβ版をオープンソースソフトウェアとして公開した。
Optunaは、ニューラルネットワークを実装する際に必要な、隠れ層の数やノード数、学習の際の繰り返し回数といったハイパーパラメーターの最適値を自動的に発見する。ハイパーパラメーターを開発者が手作業で調整すると、試行錯誤を含むため、かなりの時間を費やす必要がある。
Optunaは、Python 2.7または3.4以降向けのライブラリとして実装されている。Optunaからハイパーパラメーターを受け取るコードを記述し、その関数をOptunaに渡すと、Optunaがハイパーパラメーターを変化させて自動的に何度もそのコードを呼び出し、最適なハイパーパラメーターを発見する。
% pip install optuna
import optuna def objective(trial): x = trial.suggest_uniform('x', -10, 10) return (x - 2) ** 2 study = optuna.create_study() study.optimize(objective, n_trials=100) print(study.best_params)
Preferred Networksが開発する機械学習ライブラリ「Chainer」だけでなく、「scikit-learn」や「XGBoost」「LightGBM」といったPython向けの機械学習ライブラリを利用した場合でも、ハイパーパラメーターの自動最適化が可能だ。
「Hyperopt」や「Spearmint」「SMAC」など、ハイパーパラメーターの自動最適化ライブラリは他にもあるが、Optunaはこれらと比べて最適化対象のユーザーコードが複雑であっても高いモジュール性を保ったまま最適化できるという。
さらに、反復アルゴリズムを用いて学習する場合、学習曲線から学習結果を予測し、良い結果が見込まれないときは試行を早期に終了して最適化を効率化する。複数の試行を同時に実施する非同期分散最適化にも対応する。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- インテルとPFN、ディープラーニング向けOSSフレームワーク「Chainer」の開発で協業
米インテルとPreferred Networksは、ニューラルネットワーク向けフレームワーク「Chainer」の開発で協業する。インテルアーキテクチャ向けにChainerを最適化する。 - TensorFlowやChainerに興味があるけど、Python未経験の技術者が最低限知っておいた方がいい基礎文法まとめ
Python 3の基本となる構文要素や、データ型の使い方、関数とクラスの定義方法を構文やサンプルコード多めでギュッと濃縮。 - 機械学習のモデルそのものを自動的に最適化する技術を開発――リクルートテクノロジーズ
リクルートテクノロジーズが、機械学習モデルの精度を自動的に向上させる仕組みを構築。手間の掛かるパラメーターチューニングを自動化した。