2019年6月28日の明治大学での講義資料です。 できるだけ数式を使わずに『機械学習のおさらい』『自動ハイパーパラメタ最適化』『Optuna の使い方』『ベイズ最適化の応用事例』について説明しています。 ●Optuna : https://github.com/pfnet/optunaRead less
AI Lab AutoMLチームの芝田です (GitHub: @c-bata)。 ハイパーパラメーター最適化は、機械学習モデルがその性能を発揮するために重要なプロセスの1つです。Pythonのハイパーパラメーター最適化ライブラリとして有名な Optuna [1] は、様々な最適化アルゴリズムに対応しつつも、使いやすく設計的にも優れたソフトウェアです。本記事ではOptunaの内部実装についてソフトウェア的な側面を中心に解説します。 Optunaの内部実装を理解するためには、主要コンポーネントの役割と全体の動作の流れを押さえる必要があります。しかしOptunaの開発は活発で、コード量も多くなり、全体の流れをコードから読み取ることは難しくなってきました。そこで今回Minitunaという小さなプログラムを用意しました。Minitunaには全部で3つのversionがあり、それぞれ100行、200行
事業開発部の @himkt です.好きなニューラルネットは BiLSTM-CRF です. 普段はクックパッドアプリのつくれぽ検索機能の開発チームで自然言語処理をしています. 本稿では,レシピテキストからの料理用語抽出システム nerman について紹介します. nerman の由来は ner (固有表現抽出 = Named Entity Recognition) + man (する太郎) です. クックパッドに投稿されたレシピから料理に関する用語を自動抽出するシステムであり,AllenNLP と Optuna を組み合わせて作られています. (コードについてすべてを説明するのは難しいため,実際のコードを簡略化している箇所があります) 料理用語の自動抽出 料理レシピには様々な料理用語が出現します. 食材や調理器具はもちろん,調理動作や食材の分量なども料理用語とみなせます. 「切る」という調理
Optuna 開発メンバの小嵜 (@smly) です。この記事では Optuna の拡張機能として開発している LightGBM Tuner について紹介します。 LightGBM Tuner は LightGBM に特化したハイパーパラメータ自動最適化のためのモジュールです。Pyhton コードの import 文を 1 行変更するだけで簡単に利用できます。LightGBM Tuner はエキスパートの経験則を自動化しコードに落とし込むことで、従来より短い時間で最適なハイパーパラメータを探索できます。また記事の後半では従来手法と比較したベンチマーク結果についても紹介します。ベンチマークをとることで、従来の方法と比較して効率的に探索できることを確認しました。 ナイーブな LightGBM のハイパーパラメータチューニング LightGBM は勾配ブースティング法の高速な実装を提供する人気の
こんにちは。機械学習エンジニアをしている古賀です。 最近は愉快な上司@tereka114 のもと、精度の上がらないモデルに四苦八苦しています。 そんな私が普段データ分析をする際に難しいことの一つとして、特徴量エンジニアリングがあります。 特徴量エンジニアリングとは、元のデータに新たな特徴量を追加することでモデルの精度を向上させるプロセスのことです。 この結果によってモデルの精度が大きく変わりますが、正しく実行するにはデータへの深い理解やデータ分析力が必要になります。 私もあまり得意ではないのですが、これを簡単にする xfeat という便利なライブラリがあると上司が教えてくれたので、実際に使ってみて便利だったことをまとめました。 ※本記事は、Pythonその3 Advent Calendar 2020 の15日目の内容になります。 目次は以下です。 xfeat とは 準備 実行環境 xfea
相関係数が0.63の散布図が話題になっているようなので、相関係数が0.63の散布図を作成するPythonスクリプトを作ってみました。 以下のコードは Google Colaboratory 上での動作を確認しています。 乱数の散布図 まずは乱数を使った散布図の描きかたと、相関係数の計算の仕方です。 import numpy as np n_data = 20 X = np.random.rand(n_data) Y = np.random.rand(n_data) import matplotlib.pyplot as plt coeff = np.corrcoef(X, Y)[0, 1] plt.figure(figsize=(5,5)) plt.title("correlation coefficient = {0:.3f}".format(coeff)) plt.scatter(X,
We are pleased to announce the second major version of Optuna, a hyperparameter optimization (HPO) framework in Python, is now available on PyPI and conda-forge. See the release notes on GitHub for the list of changes. Starting from January this year when the first major version was released, we have seen tremendous effort from the community in terms of pull requests, issues, use cases beyond the
はじめに 年末年始の休みに入ってすでに4日目。休みでやろうと思ったことが一通り終わってしまいました。今日からいつも行っているカフェが休みだし、暇すぎ・・・ということで、勢いに任せてOptunaでコーヒーの淹れ方の最適化始めました。 はじめようと思い立ったのが今日なので、全然データがないですが、Google Colabで作ったサンプルコードもあげておきます。 https://github.com/shu65/coffee-tuning/blob/main/coffee_tuning_blog%E7%94%A8.ipynb Optunaとは? Optunaは機械学習などで必要になるハイパーパラメータの最適化を自動で行ってくれるオープンソースのフレームワークです。個人的に気に入っている特徴としては、従来からハイパーパラメータ最適化を自動でやってくれるものはいくつかありますが、OptunaはDef
この記事は、電気情報通信学会会誌に寄稿した解説記事「Optunaで始めるハイパパラメータ最適化」の転載です。この記事のパワーアップ版ともいえる書籍「Optunaによるブラックボックス最適化」が2月21日に出版されます。Optuna開発チームのメンバーが、Optunaについてより詳しく、よりわかりやすく説明し、より豊富な事例を紹介していますので、ぜひ予約して発売日からお読みください! 出典 柳瀬利彦, Optunaで始めるハイパパラメータ最適化, 電子情報通信学会誌 Vol.104 No.7 pp.728-733 2021年7月 ©電子情報通信学会2021 Abstract 機械学習アルゴリズムの性能を引き出すためには,ハイパパラメータをデータやタスクに応じて適切に調整する必要がある.本稿では,その自動的な調整のためのツールとして,オープンソースのハイパパラメータ最適化フレームワークであるO
機械学習で用いるハイパーパラメータ管理には,主に二つの方法が考えられる. argparseを用いてコマンドラインからハイパーパラメータを設定 設定ファイルを用いた管理ありがちなハイパーパラメータ管理の例argparseを用いてハイパーパラメータを管理する場合,コマンドラインから直接変更できるのが便利だが,往々にして設定するハイパーパラメータが膨大になる.また,設定ファイルに記述することでハイパーパラメータを管理する場合,ハイパーパラメータの変更の度に設定ファイルを修正しなければならない. 効果的なハイパーパラメータの値を決定したい場合,複数のハイパーパラメータの試行錯誤が面倒であるだけでなく,候補となるハイパーパラメータ数に応じて設定ファイルの修正が生じ,膨大な結果の保存 & 比較が困難になる. こうした問題点は,Hydra+MLflow(tm)+Optunaにより解決できる. Hydra
AI Labの芝田です (GitHub: @c-bata)。 以前、Optunaによる最適化結果を手軽に確認できるWebダッシュボードを開発・公開しました。公開からすでに半年以上が経過し、現在は公式に利用を推奨されるようになりました。Google Summer of Codeなどを通してcontributorやcommitterも増えつつある一方で、設計や実装に関しては資料を残してきませんでした(※1)。本記事ではダッシュボードの紹介をするとともに、開発に興味がある方向けに開発に役立つ情報をまとめておきます。 GitHub: https://github.com/optuna/optuna-dashboard optuna-dashboardとは? optuna-dashboardはOptunaによるハイパーパラメータの最適化結果をWebブラウザ上で簡単に確認できるツールです(※2)。
ハイパーパラメータの自動最適化フレームワークである Optuna は目的関数を書くと自動で最適なハイパーパラメータを探索してくれます. 基本的にはアルゴリズムに任せるのが良いですが,ユーザー側でパラメータをいじるなど変なことをしようとすると少々面倒なのでまとめておきます. 使用環境は Python 3.9.16 Optuna 3.1.0 例:LightGBM モデルのハイパーパラメータ調整(探索のターゲットや数値は適当です) import optuna import lightgbm as lgb from sklearn.model_selection import train_test_split # データ読み込み train_X = pd.read_pickle("../data/train_X.pkl").values train_y = pd.read_pickle("../d
パラメータの探索範囲の例 また、目的関数とは、指定されたパラメータで学習した結果の精度を返す関数となります。 では、コーヒーの淹れ方の場合はパラメータに対応するものと、目的関数をどうすればよいでしょうか? 後ほど詳しく紹介しますが、今回はパラメータとして豆の量やお湯の温度など、コーヒーの淹れ方で重要なものをパラメータとして扱います。探索範囲は各パラメータ毎に基準とした値を中心にして現実的な範囲で広げたものを利用します。 また、目的関数ですが、実際に提案されたパラメータに基づいて自分でいれて、おいしかったかどうかを自分で1-10点で評価して返すという人力のものを利用します。 現在のコーヒーの入れる環境 使う道具によってパラメータとして扱えるものが変化するので、使う道具についても紹介します。 今回は以下の道具で淹れるとして紹介しています。 ミル: ポーレックス コーヒーミル・Ⅱ (調節ねじのク
This post uses pytorch-lightning v0.6.0 (PyTorch v1.3.1)and optuna v1.1.0. PyTorch Lightning + Optuna!Optuna is a hyperparameter optimization framework applicable to machine learning frameworks and black-box optimization solvers. PyTorch Lightning provides a lightweight PyTorch wrapper for better scaling with less code. Combining the two of them allows for automatic tuning of hyperparameters to fi
機械学習において、モデルのハイパーパラメータの調整は非常に大事です。 大事なんですが、手動で行うと、時間も手間もすごくかかりますよね。 ここでは、ハイパーパラメータを効率的に調整するOptunaについてご紹介するとともに、Pythonでの具体的な実装方法をご説明します。 Optunaとは 日本のPrefferdNetworks社が開発した、ハイパーパラメータの自動最適化フレームワークです。 Optunaは、ベイズ最適化を実装することで、パラメータの探索を効率的に行うことができます。 ベイズ最適化は、確率統計の理論の一つです。 具体的には、目的関数の値を評価するために、パラメータの値をサンプリングして目的関数の値を取得し、その値を元にパラメータの推定値を更新するというプロセスを繰り返します。このプロセスによって、より良いパラメータの候補が見つけていきます。 簡単に言うと、試行錯誤をしながら、
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く