記事
最新のオートマトン学習アルゴリズムL#について
というオートマトン学習のアルゴリズムがあります。
2022年にVaandragerらによって提案された、最新のオートマトン学習のアルゴリズムです。 apartness relationという概念を用いて、よく知られているAngluinの とは少し違ったアイディアでオートマトンの学習を実現します。 学習に用いるデータ構造として、従来のobservation tableやdiscrimination treeではなく、observation treeというmembership query (output query) のキャッシュのようなものを利用するのも特徴です。
この記事では の詳細や実装について、論文 [Vaandrager et al., 2022] を参考に解説します。
想定読者: オートマトン理論やオートマトン学習について理解・関心がある。
L*やその派生アルゴリズムたち (Rivest-Schapire、Kearns-Vazirani)
Angluinの はオートマトン学習 (automata learning) のアルゴリズムとして最も有名なものです。 以前、このブログでもAngluinの について説明しました。
は歴史のあるアルゴリズムのため、派生アルゴリズムがいくつか存在します。 この記事ではAngluinの について簡単に説明した上で、派生アルゴリズムとしてRivest-SchapireとKearns-Vaziraniを紹介します。
- Rivest-Schapireは の反例 (counterexample) の解析手法の提案で、二分探索を用いて反例の中のobservation tableに追加すべき接頭辞を探すことで、計算量を改善します。
- Kearns-Vaziraniはobservation tableを置き換えるデータ構造としてdiscrimination treeというデータ構造を提案するものです。
これらの手法により の様々な効率が改善できます。
想定読者: オートマトン理論やオートマトン学習について理解・関心がある。
L*について説明してみる
Automata Learning とは、未知の (ブラックボックス) システムに対する入力とその出力から、システムの振舞いを有限状態オートマトンとして再現する手法です。 これは、仕様が形式化されていないシステムに対して形式的な手法を適用するための足掛りになるなど、近年重要な技術となっています。
Angluin によるは Automata Learning のアルゴリズムの中でも最も代表的な存在です。 は未知の正規言語を教師を使って学習するアルゴリズムで、多くの Automata Learning の基礎となっています。
この記事ではの、その原理やアルゴリズムの詳細について解説します。