通常のセットを学習するためのDana Angluinのアルゴリズムに改善はありますか


33

1987年の独創的な論文で、Dana Angluinは、メンバーシップクエリと理論クエリ(提案されたDFAの反例)からDFAを学習するための多項式時間アルゴリズムを提示しています。

彼女は、n状態を持つ最小DFAを学習しようとしており、最大のカウント例の長さがmである場合、O(mn2)メンバーシップクエリと最大理論クエリを作成する必要があることを示しています。n−1

通常のセットを学習するために必要なクエリの数が大幅に改善されましたか?


参考資料と関連質問


うまくいけば、@ DominikFreydenbergerが将来のある時点で立ち寄ることを願っています。彼は知っているだろう。
— ラファエル

2
@LevReyzinも答えを知っているのではないかと疑っています...それが私が最初にcstheoryを要求することを考えた理由でしたが、この新しいサイトの成長を手伝うべきだと思います。
— アルテムKaznatcheev

質問への答えではありませんが、まだ役に立つかもしれません:[ citeulike.org/user/erelsegal-halevi/article/9275508通常の言語を学習するための普遍的なカーネル]
— Erel Segal-Halevi

リンク@Erelに感謝しますが、それがどのように関連するのか理解できません。Kontorovichのユニバーサルカーネルは効率的に計算できず、学習のモデルには反例がありません。
— アルテムKaznatcheev

回答:


15

で彼の答え cstheory.SEに、レフReyzinは私を監督ロバート・シャパイアの論文にバインド向上セクション5.4.5のメンバーシップクエリ。反例クエリの数は変わりません。Schapireが使用するアルゴリズムは、反例のクエリの後の処理が異なります。O(n2+nlog⁡m)


改善のスケッチ

最高レベルでは、Schapire力閉鎖のためにそのAngluinのアルゴリズムから余分な条件を持っている(S 、E 、T )及び各sは1、sは2 ∈ Sの場合、S 1 ≠ S 2、次いでR o w (s 1)≠ r o w (s 2)。この保証こと| S |(S,E,T)(S,E,T)s1,s2∈Ss1≠s2row(s1)≠row(s2)ともなり、整合性を満たすためにAngluinのアルゴリズムの特性は、些細な。これを保証するために、彼は反例の結果を異なる方法で処理しなければなりません。|S|≤n

反例与えられると、Angluinは単にzとそのすべての接頭辞をSに追加しました。Schapireは、代わりに単一の要素eをEに追加することにより、より微妙な処理を行います。この新しいeは、(S 、E 、T )をAngluinの意味で閉じないようにし、すべての行を区別しながら少なくとも1つの新しい文字列をSに導入して閉じを取得する更新を行います。eの条件は次のとおりです。zzSeEe(S、E、T)Se

∃s、s′∈S、a∈Σ聖row(s)=row(s′a)そしてo(δ(q0、se))≠o(δ(q0、s′ae))

ここで、は出力関数、q 0は初期状態、δは真の「不明な」DFAの更新規則です。言い換えれば、eは、将来の区別するために証人として機能しなければならない秒から秒"。oq0δess′a

この把握するからZ我々は、サブストリングを把握するバイナリ検索を行うR iのように、Z = P iのrはIと0を≤ | p i | = i < | z | このように、推測されたマシンの動作は、1つの入力文字に基づいて異なります。より詳細には、s iを、推測されたマシンでp iをたどって到達した状態に対応する文字列とします。バイナリ検索を使用します(これは、ログmezr私z=p私r私0≤|p私|=私<|z|s私p私ログ⁡m見つけること)に由来するようにO (δ (Q 0、S k個のR K))≠ O (δ (Q 0、S K + 1個のR K + 1)。すなわち、RのK + 1つの区別2は、推測されたマシンが同等であると判断し、eの条件を満たすため、Eに追加すると述べています。ko(δ(q0、skrk))≠o(δ(q0、sk+1rk+1)rk+1eE


5

私の答えがまだ関連しているかどうかはわかりません。最近、Observation Packと呼ばれる新しいアルゴリズムの実装、または状況によってはFalk HowarによるDiscrimination Treeの実装が説明されました。このアルゴリズムはL *と似ていますが、反例分解を処理するためにRivest-Shapireまたは他の方法(SteffenとIsbernerを参照)を使用します。そして、データ構造、識別ツリー(二分木)を使用して、効率的に「ふるい」をかけます。つまり、閉ざされないまで見つかった新しい状態のA遷移(Aはアルファベットの各シンボル)の挿入。このアルゴリズムには2つのバージョンがあります。分解で見つかったサフィックスが各コンポーネントに追加されるかどうかに応じてOneGloballyおよびOneLocally(アルゴリズムの背後にある比率は、コンポーネント内のすべてのプレフィックスが短いプレフィックスと同等であり、見つかったサフィックスに従ってターゲットの同じ状態を表すことです後に新しい反例で、同じコンポーネントの少なくとも2つのプレフィックスを識別する新しいサフィックスが見つかります。これにより、そのコンポーネントが2つのコンポーネントに分割されます)。OneLocallyでは、メンバーシップクエリがはるかに少なくなりますが、ターゲットDFAが大きい場合、同等クエリの数が大幅に増加する可能性があります。むしろ、OneGloballyには、常にL *より低い(ただしOneLocallyより多い)メンバーシップクエリの数と、L *よりも同等の数のクエリがあります。後に新しい反例で、同じコンポーネントの少なくとも2つのプレフィックスを識別する新しいサフィックスが見つかりました。これにより、そのコンポーネントが2つのコンポーネントに分割されます)。OneLocallyでは、メンバーシップクエリがはるかに少なくなりますが、ターゲットDFAが大きい場合、同等クエリの数が大幅に増加する可能性があります。むしろ、OneGloballyには、常にL *より低い(ただしOneLocallyより多い)メンバーシップクエリの数と、L *よりも同等の数のクエリがあります。後に新しい反例で、同じコンポーネントの少なくとも2つのプレフィックスを識別する新しいサフィックスが見つかりました。これにより、そのコンポーネントが2つのコンポーネントに分割されます)。OneLocallyでは、メンバーシップクエリがはるかに少なくなりますが、ターゲットDFAが大きい場合、同等クエリの数が大幅に増加する可能性があります。むしろ、OneGloballyには、常にL *より低い(ただしOneLocallyより多い)メンバーシップクエリの数と、L *よりも同等の数のクエリがあります。

別のアルゴリズムも存在することは知っています:観測パックよりも優れたTTTアルゴリズムですが、それについての十分な知識はありません。TTTアルゴリズムは最先端のものでなければなりません。


この答えをありがとう!HowarアルゴリズムとTTTのペーパーリファレンスはありますか?
— アルテムKaznatcheev

この観察パック用のリンクHowar このTTTアルゴリズムのためのリンクTTT あなたがLearLibで実装を見つけることができる(観察パックがそこに差別ツリーと呼ばれている)
— Umbert
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.