규칙적인 세트 학습을위한 Dana Angluin의 알고리즘이 개선 되었습니까?


33

그녀의 1987 년 논문 인 Dana Angluin은 멤버십 쿼리와 이론 쿼리 (대표 예에서 제안 된 DFA까지)에서 DFA를 학습하기위한 다항식 시간 알고리즘을 제시합니다.

그녀는 상태 의 최소 ​​DFA를 배우려고 시도하고 가장 큰 countexample의 길이가 m 인 경우 O ( m n 2 ) 멤버쉽 쿼리를 작성하고 최대 n - 1 개를 수행해야 함을 보여줍니다.nmO(mn2)n1 이론 쿼리를 작성해야 함을 보여줍니다.

정규 세트를 배우는 데 필요한 쿼리 수가 크게 개선 되었습니까?


참조 및 관련 질문


@DominikFreydenberger가 미래에 어느 시점에서 하락하기를 바랍니다. 그는 알 것이다.
Raphael

2
@LevReyzin이 답을 알고 있다고 생각합니다 ... 그리고 이것이 원래 cstheory를 요구하는 이유 였지만이 새로운 사이트를 성장시키는 데 도움이되어야한다고 생각합니다.
Artem Kaznatcheev

아니라 질문에 대한 대답,하지만 여전히 도움이 될 수있다 : [ citeulike.org/user/erelsegal-halevi/article/9275508 범용 커널 학습 정규 언어에 대한]
Erel 시걸-Halevi

@Erel 링크에 감사드립니다. 그러나 그것이 어떻게 관련되어 있는지 이해하지 못합니다. Kontorovich의 범용 커널은 효율적으로 계산할 수 없으며 학습 모델에는 반례가 없습니다.
Artem Kaznatcheev

답변:


15

그의 대답 cstheory.SE에, 레프 Reyzin은 저를 감독 로버트 샤 파이어의 논문 받는 바운드 향상 섹션 5.4.5에서 회원 쿼리. 카운터 예제 쿼리 수는 변경되지 않습니다. Schapire가 사용하는 알고리즘은 카운터 예제 쿼리 이후의 기능이 다릅니다.O(n2+nlogm)


개선의 스케치

가장 높은 수준에서, Angluin 알고리즘의 Schapire force 는 닫힌 ( S , E , T ) 및 각 s 1 , s 2S에 대해 s 1s 2 이면 r o w ( s 1 ) r o w ( s 2 ) . 이것은 보장합니다 | S(S,E,T)(S,E,T)s1,s2Ss1s2row(s1)row(s2) 이며Angluin 알고리즘의일관성속성을 사소하게 만듭니다. 이를 보장하기 위해 반례의 결과를 다르게 처리해야합니다.|S|n

반례 주어지면 Angluin은 단순히 z 와 모든 접두사를 S에 추가했습니다 . Schapire는 단일 요소 eE에 추가하여보다 미묘한 작업을 수행합니다 . 이 새로운 e 는 Angluin의 의미에서 ( S , E , T )닫히지 않게하고 모든 행을 구별하면서 S 에 적어도 하나의 새로운 문자열을 도입하여 클로저를 얻는 업데이트를 만듭니다. e 의 조건 은 다음과 같습니다.zzSeEe(S,E,T)Se

s,sS,aΣs.trow(s)=row(sa)ando(δ(q0,se))o(δ(q0,sae))

어디에서 출력 함수, Q 0는 초기 상태이며, δ 진정한 '알 수없는'DFA의 업데이트 규칙입니다. otherwords에서, 전자는 미래 구별하는 증인의 역할을해야한다 에서 ' .oq0δessa

이 알아낼 에서 Z 우리는 하위 문자열에서 그림을 이진 검색을 R 내가 그런 그 Z = P 내가 r에 내가 하고 0 | | = i < | z | 우리의 추측 된 기계의 행동이 하나의 입력 문자에 따라 달라집니다. 보다 구체적으로, 우리가 할 수 상태에 해당하는 문자열에 따라 우리의 추측 된 기계에 도달 난을 . 우리는 이진 검색을 사용 (이 곳입니다 로그 mezriz=piri0|pi|=i<|z|sipilogm발견)에서 유래 되도록 O ( δ ( Q 0 , S k 값 r에 K ) ) O ( δ ( Q 0 , S K + 1 개 (R)의 K + 1 ) . 즉, R의 K + 1 개 구별하는 두 우리의 추측 된 기계가 동등한 것을 발견하고 따라서 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는 알파벳의 각 기호)를 효율적으로 삽입합니다. . 이 알고리즘은 두 가지 버전으로 존재합니다. 분해에서 찾은 접미사가 각 구성 요소에 추가되는지 여부에 따라 OneGlobally 및 OneLocally (알고리즘의 비율은 구성 요소의 모든 접두사가 짧은 접두사와 동일하며 발견 된 접미사에 따라 대상에서 동일한 상태를 나타냅니다. 새로운 반례로 나중에 동일한 구성 요소의 접두사를 두 개 이상 구분하는 새로운 접미사가 발견되어 두 구성 요소에서 해당 구성 요소가 분할됩니다. OneLocally를 사용하면 멤버 자격 쿼리 수가 훨씬 적지 만 대상 DFA가 크면 동등성 쿼리 수가 크게 증가 할 수 있습니다. 오히려 OneGlobally에는 항상 L *보다 낮지 만 (하나의 Locally보다 큰) 다수의 멤버쉽 쿼리가 있고 L *과 비슷한 수의 쿼리가 있습니다. 새로운 반례로 나중에 동일한 구성 요소의 접두사를 두 개 이상 구분하는 새로운 접미사가 발견되었습니다. 이로 인해 해당 구성 요소가 두 구성 요소로 분할됩니다. OneLocally를 사용하면 멤버 자격 쿼리 수가 훨씬 적지 만 대상 DFA가 크면 동등성 쿼리 수가 크게 증가 할 수 있습니다. 오히려 OneGlobally에는 항상 L *보다 낮지 만 (하나의 Locally보다 큰) 다수의 멤버쉽 쿼리가 있고 L *과 비슷한 수의 쿼리가 있습니다. 새로운 반례로 나중에 동일한 구성 요소의 접두사를 두 개 이상 구분하는 새로운 접미사가 발견되었습니다. 이로 인해 해당 구성 요소가 두 구성 요소로 분할됩니다. OneLocally를 사용하면 멤버 자격 쿼리 수가 훨씬 적지 만 대상 DFA가 크면 동등성 쿼리 수가 크게 증가 할 수 있습니다. 오히려 OneGlobally에는 항상 L *보다 낮지 만 (하나의 Locally보다 큰) 다수의 멤버쉽 쿼리가 있고 L *과 비슷한 수의 쿼리가 있습니다.

나는 또 다른 알고리즘이 있다는 것을 알고 있습니다 : Observation Pack보다 나은 TTT 알고리즘이지만 그에 대한 지식이 없습니다 .TTT 알고리즘은 최첨단 기술이어야합니다


이 답변에 감사드립니다! Howar 알고리즘과 TTT에 대한 논문 참고 자료가 있습니까?
Artem Kaznatcheev

Observation Pack 링크 Howar 와 TTT 알고리즘 링크 TTT에 대한 구현 LearLib에서 구현을 찾을 수 있습니다 (Observation Pack은 Discrimination Tree라고 함)
Umbert
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.