Upgrade to Pro — share decks privately, control downloads, hide ads and more …

オートマトン学習しろ / Do automata learning

オートマトン学習しろ / Do automata learning

Kyoto.なんか #6での発表資料です。
https://kyoto-nanka.connpass.com/event/324686/

リンク:

L*について説明してみる - makenowjust-labs/blog
https://makenowjust-labs.github.io/blog/post/2023-07-19-lstar/

makenowjust/lernen - GitHub
https://github.com/makenowjust/lernen

TSUYUSATO Kitsune

August 29, 2024
Tweet

More Decks by TSUYUSATO Kitsune

Other Decks in Programming

Transcript

  1. Formal Method ܗࣜख๏ 『数学的 記述 書 仕様』 用 、 ・

    振舞 正 数学的 証明 。 ・ 絶対 数学的 主張 。
  2. Formal Method ܗࣜख๏ 『数学的 記述 書 仕様』 用 、 ・

    振舞 正 数学的 証明 。 ・ 絶対 数学的 主張 。
  3. Model Checkin 検査 形式 手 法 一 種 (遷移 )

    https://youtu.be/Xkq13ZthmA0 G (Pr(F ∧ N ) ≥ 1 8) 満 欲 性質 (時相論理式)
  4. Model Checkin 検査 形式 手 法 一 種 (遷移 )

    https://youtu.be/Xkq13ZthmA0 G (Pr(F ∧ N ) ≥ 1 8) 満 欲 性質 (時相論理式) 確率分布 極限 取 …… 検査
  5. Model Checkin 検査 形式 手 法 一 種 (遷移 )

    https://youtu.be/Xkq13ZthmA0 G (Pr(F ∧ N ) ≥ 1 8) 満 欲 性質 (時相論理式) 確率分布 極限 取 …… 検査
  6. Type of Automata 型 lstar<T>( system: string => T, equivalence:

    Automaton => true | string, ): Automaton
  7. Type of Automata 型 lstar<T>( system: string => T, equivalence:

    Automaton => true | string, ): Automaton 入力 ( 文 字列) 対 、 何 返 ?
  8. Type of Automata 型 lstar<T>( system: string => T, equivalence:

    Automaton => true | string, ): Automaton 入力 ( 文 字列) 対 、 何 返 ? 学習中 正 ?
  9. Type of Automata 型 lstar<T>( system: string => T, equivalence:

    Automaton => true | string, ): Automaton 入力 ( 文 字列) 対 、 何 返 ? 学習中 正 ? 教師
  10. Type of Automata 型 lstar<T>( system: string => T, equivalence:

    Automaton => true | string, ): Automaton 入力 ( 文 字列) 対 、 何 返 ? 学習中 正 ? 学習結果 教師
  11. Minimally Adequate 教師 現実 学習 正 ? →→ 押 動

    違 ! → 仮説 A 次 現在 equivalence(A)
  12. Try it! 試 require "bundler/inline" gemfile do source "https://rubygems.org" gem

    "lernen" end alphabet = %w[0 1] sul = Lernen::SUL.from_block do |inputs| inputs.count { _1 == "1" } % 4 == 3 end oracle = Lernen::BreadthFirstExplorationOracle.new(alphabet, sul) automaton = Lernen::LStar.learn(alphabet, sul, oracle, automaton_type: :dfa)
  13. Try it! 試 require "bundler/inline" gemfile do source "https://rubygems.org" gem

    "lernen" end alphabet = %w[0 1] sul = Lernen::SUL.from_block do |inputs| inputs.count { _1 == "1" } % 4 == 3 end oracle = Lernen::BreadthFirstExplorationOracle.new(alphabet, sul) automaton = Lernen::LStar.learn(alphabet, sul, oracle, automaton_type: :dfa)
  14. Try it! 試 require "bundler/inline" gemfile do source "https://rubygems.org" gem

    "lernen" end alphabet = %w[0 1] sul = Lernen::SUL.from_block do |inputs| inputs.count { _1 == "1" } % 4 end oracle = Lernen::BreadthFirstExplorationOracle.new(alphabet, sul) automaton = Lernen::LStar.learn(alphabet, sul, oracle, automaton_type: :mealy)
  15. Try it! 試 require "bundler/inline" gemfile do source "https://rubygems.org" gem

    "lernen" end alphabet = %w[0 1] sul = Lernen::SUL.from_block do |inputs| inputs.count { _1 == "1" } % 4 end oracle = Lernen::BreadthFirstExplorationOracle.new(alphabet, sul) automaton = Lernen::LStar.learn(alphabet, sul, oracle, automaton_type: :mealy)
  16. Try it! 試 require "bundler/inline" gemfile do source "https://rubygems.org" gem

    "lernen" end alphabet = %w[0 1] sul = Lernen::SUL.from_block do |inputs| inputs.count { _1 == "1" } == inputs.count { _1 == "0" } end oracle = Lernen::BreadthFirstExplorationOracle.new(alphabet, sul) automaton = Lernen::LStar.learn(alphabet, sul, oracle, automaton_type: :dfa)
  17. Try it! 試 require "bundler/inline" gemfile do source "https://rubygems.org" gem

    "lernen" end alphabet = %w[0 1] sul = Lernen::SUL.from_block do |inputs| inputs.count { _1 == "1" } == inputs.count { _1 == "0" } end oracle = Lernen::BreadthFirstExplorationOracle.new(alphabet, sul) automaton = Lernen::LStar.learn(alphabet, sul, oracle, automaton_type: :dfa) 正規 言 語 助 ……
  18. Who am I? 自 己 紹介 ・藤浪 大 弥 /

    Ph.D student at NII ・ @make_now_just   /  @makenowjust ・Hatena internship 2017 ・Ruby committer