Ich denke an das folgende Problem: Ich möchte einen regulären Ausdruck finden, der einem bestimmten Satz von Zeichenfolgen entspricht (z. B. gültige E-Mail-Adressen) und nicht mit anderen übereinstimmt (ungültige E-Mail-Adressen).
Nehmen wir an, wir meinen mit regulären Ausdrücken eine wohldefinierte endliche Zustandsmaschine, ich kenne die genaue Terminologie nicht, aber wir stimmen einer Klasse erlaubter Ausdrücke zu.
Anstatt den Ausdruck manuell zu erstellen, möchte ich ihm eine Reihe positiver und eine Reihe negativer Beispiele geben.
Es sollte dann ein Ausdruck erstellt werden, der mit den + übereinstimmt, die - ablehnt und in einem bestimmten Sinne minimal ist (Anzahl der Zustände in den Automaten?).
Meine Fragen sind:
- Wurde dieses Problem berücksichtigt, wie kann es konkreter definiert und effizient gelöst werden? Können wir es in polynomialer Zeit lösen? Ist es NP vollständig, können wir es irgendwie approximieren? Für welche Ausdrucksklassen würde es funktionieren? Ich würde mich über jeden Hinweis auf Lehrbücher, Artikel oder ähnliches freuen, die dieses Thema behandeln.
- Hängt dies in irgendeiner Weise mit der Komplexität von Kolmogorov zusammen?
- Hat dies etwas mit Lernen zu tun? Wenn der reguläre Ausdruck mit meinen Beispielen übereinstimmt, können wir aufgrund seiner Minimalität etwas über seine Verallgemeinerungskraft für noch nicht gesehene Beispiele sagen? Welches Minimalitätskriterium wäre dafür besser geeignet? Welches wäre effizienter? Hat dies irgendeinen Zusammenhang mit maschinellem Lernen? Auch hier wären alle Hinweise hilfreich ...
Entschuldigen Sie die unordentliche Frage ... Zeigen Sie mir in die richtige Richtung, um das herauszufinden. Vielen Dank !
quelle
Antworten:
Zur Lernfrage: Kearns und Valiant haben bewiesen, dass Sie RSA in einen DFA codieren können. Selbst wenn die gekennzeichneten Beispiele aus der gleichmäßigen Verteilung stammen, würde die Verallgemeinerung auf zukünftige Beispiele (auch aus der gleichmäßigen Verteilung) die RSA brechen. Wir sind daher der Meinung, dass es im schlimmsten Fall nicht hilfreich ist, ein DFA (im PAC-Modell) zu erlernen, wenn Beispiele gekennzeichnet sind. Dies ist eines der klassischen kryptografischen Härteergebnisse für das Lernen.
Beide Probleme sind durch das, was wir als Occam's Razor Theorem bezeichnen, miteinander verflochten . Grundsätzlich heißt es, wenn wir eine Prozedur zum Finden der kleinsten Hypothese aus einer bestimmten Klasse haben, die mit einer Stichprobe übereinstimmt, die durch eine Hypothese aus derselben Klasse gekennzeichnet ist, können wir diese Klasse PAC lernen. Angesichts des RSA-Härteergebnisses würden wir erwarten, dass es im Allgemeinen schwierig sein würde, den kleinsten konsistenten DFA zu finden!
Um ein positives Lernergebnis zu erzielen, hat Angluin gezeigt, dass Sie einen DFA lernen können, wenn Sie Ihre eigenen Beispiele erstellen können, aber es erfordert die zusätzliche Kraft, fragen zu können: "Ist meine aktuelle Hypothese korrekt?" Dies war auch eine wegweisende Abhandlung zum Thema Lernen.
Die Beantwortung Ihrer anderen Frage hängt in der Tat mit der Komplexität von Kolmogorov zusammen, da das Lernproblem einfacher wird, wenn die kanonische Darstellung des Ziel-DFA eine geringe Komplexität aufweist.
quelle
Ich beantworte die lernbezogenen Aspekte der Frage.
Dieses Problem scheint in der Literatur als "DFA-Lernen" bezeichnet zu werden.
Gold [Gol78] zeigte, dass es NP-vollständig ist, bei k ∈ℕ und zwei endlichen Mengen P und N von Zeichenketten zu entscheiden, ob es einen deterministischen endlichen Automaten (DFA) mit höchstens k Zuständen gibt, der jede Zeichenkette akzeptiert P und keine der Saiten in N . Der Artikel [PH01] scheint Probleme zu behandeln, die mit dieser Motivation zusammenhängen (möglicherweise gibt es noch viel mehr; dies ist gerade aufgetaucht, als ich versucht habe, relevante Artikel bei Google zu finden).
Verweise
[Gol78] E Mark Gold. Komplexität der Automatenidentifikation aus gegebenen Daten. Information and Control , 37 (3): 302–320, Juni 1978. http://dx.doi.org/10.1016/S0019-9958(78)90562-4
[PH01] Rajesh Parekh und Vasant Honavar. Lernen Sie DFA anhand einfacher Beispiele. Machine Learning , 44 (1–2): 9. – 35. Juli 2001. http://www.springerlink.com/content/kr2501h2442l8mk1/ http://www.cs.iastate.edu/~honavar/Papers/parekh- dfa.pdf
quelle
Während dieser Diskussion wurde angenommen, dass das Finden eines minimalen regulären Ausdrucks das Finden eines minimalen FSM darstellt, der die Sprache erkennt, aber dies sind zwei verschiedene Dinge. Wenn ich mich richtig erinnere, kann ein DFA in der Polynomzeit minimiert werden, während das Finden eines minimalen regulären Ausdrucks, der eine bestimmte reguläre Sprache darstellt, PSPACE-schwierig ist. Letzteres ist eines jener Ergebnisse, die zur Folklore der Automatentheorie gehören, deren Beweis jedoch nirgendwo zu finden ist. Ich denke, es ist eine Übung in Papadimitrous Buch.
quelle
Siehe auch diesen Stapelüberlaufpfosten. Das Buch, nach dem Sie suchen, scheint eine Einführung in die Computertheorie von Michael Sipser zu sein.
Du stellst ein paar verschiedene Fragen, also nimm sie nacheinander:
Nein, ist es nicht. Der Beitrag zum Stapelüberlauf beschreibt einen naiven n ^ 2-Algorithmus zum Reduzieren eines FSM auf seine minimale Größe. (Ausgehend von Stoppzuständen rückwärts arbeiten und Zustände kombinieren, die in einem genauen Sinne "identisch" sind.)
Anscheinend (ich bin dem Link nicht gefolgt) gibt es einen n log n-Algorithmus, um dies zu tun.
Wie Sie es formuliert haben, beschreibt Ihr Trainingssatz eine endliche Sprache. Trivialerweise werden endliche Sprachen einem FSM zugeordnet. Erstellen Sie für jede Zeichenfolge in Ihrer Sprache einen linearen Satz von Status, der mit einem Stoppstatus endet, ohne dass eine Schleife erforderlich ist. Führen Sie dann den FSM-Minimierungsalgorithmus auf dem resultierenden Computer aus.
Das würde ich nicht sagen. Die Minimierung des FSM ändert nichts an seiner Unterscheidungskraft - das ist der springende Punkt. Die minimale FSM akzeptiert genau den Satz von Zeichenfolgen wie jede äquivalente nicht minimale FSM.
Im Allgemeinen eignen sich reguläre Ausdrücke nicht zur Klassifizierung neuartiger Daten. Für jede endliche Trainingsmenge erhalten Sie eine RE / FSM, die nur mit den positiven Beispielen in dieser Menge übereinstimmt, ohne die Möglichkeit, auf neue Daten zu verallgemeinern. Ich habe noch nie einen Ansatz gesehen, der versucht, eine unendliche reguläre Sprache zu finden, die zu einem Trainingskorpus passt.
Für maschinelles Lernen würden Sie nach einem naiven Bayes-Klassifikator, einem Entscheidungsbaum, einem neuronalen Netzwerk oder etwas Exotischerem suchen. Russell und Norvigs künstliche Intelligenz: Ein moderner Ansatz ist so gut wie jeder andere Ort, um einen Überblick über Techniken des maschinellen Lernens (und vieles mehr) zu erhalten.
quelle