Weighted Deductionas an Abstraction Level for AI
Description
The field of AI has become implementation-bound. We have plenty of ideas, but it is increasingly laborious to try them out, as our models become more ambitious and our datasets become larger, noisier, and more heterogeneous. The software engineering burden makes it hard to start new work; hard to reuse and combine existing ideas; and hard to educate our students. In this talk, I'll propose to hide many common implementation details behind a new level of abstraction that we are developing. Dyna is a declarative programming language that combines logic programming with functional programming. It also supports modularity. It may be regarded as a kind of deductive database, theorem prover, truth maintenance system, or equation solver. I will illustrate how Dyna makes it easy to specify the combinatorial structure of typical computations needed in natural language processing, machine learning, and elsewhere in AI. Then I will sketch implementation strategies and program transformations that can help to make these computations fast and memory-efficient. Finally, I will suggest that machine learning should be used to search for the right strategies for a program on a particular workload.
| Slides | |
| 0:00 | The CKY inside algorithm in Dyna - 1 |
| 0:17 | Alphabet soup of formalisms in SRL |
| 1:35 | This problem is not limited to SRL. |
| 2:13 | Natural Language Processing (NLP) |
| 3:25 | NLP systems are big! |
| 4:37 | How to spend one’s life? |
| 4:58 | A few other applied AI systems … |
| 5:45 | Can toolkits help? - 1 |
| 5:58 | Can toolkits help? - 2 |
| 6:29 | Solution |
| 7:30 | The Dyna programming language |
| 8:35 | Warning |
| 9:37 | A Quick Sketch of Dyna |
| 11:31 | Writing equations in Dyna |
| 13:29 | More interesting use of patterns |
| 14:49 | Dyna vs. Prolog |
| 17:18 | Aggregation operators - 1 |
| 18:05 | Aggregation operators - 2 |
| 21:03 | Some connections and intellectual debts … |
| 22:17 | Why is this a good abstraction level? |
| 22:31 | How you build a system ("big picture" slide) - 1 |
| 23:25 | How you build a system ("big picture" slide) - 2 |
| 24:21 | How you build a system ("big picture" slide) - 3 |
| 25:27 | How you build a system ("big picture" slide) - 4 |
| 25:33 | Common threads in NLP, SRL, KR&R, … - 1 |
| 29:29 | Common threads in NLP, SRL, KR&R, … - 2 |
| 31:35 | Common implementation issues |
| 33:42 | Example: CKY and Variations |
| 34:18 | The CKY inside algorithm in Dyna - 1 |
| 35:06 | The CKY inside algorithm in Dyna - 2 |
| 35:45 | The CKY inside algorithm in Dyna - 3 |
| 37:00 | Visual debugger: Browse the proof forest - 1 |
| 37:50 | Visual debugger: Browse the proof forest - 2 |
| 37:52 | Parameterization … |
| 39:25 | Related algorithms in Dyna? - 1 |
| 39:36 | Related algorithms in Dyna? - 2 |
| 39:40 | Related algorithms in Dyna? - 3 |
| 40:02 | Related algorithms in Dyna? - 4 |
| 41:07 | Related algorithms in Dyna? - 5 |
| 41:09 | Related algorithms in Dyna? - 6 |
| 41:39 | Related algorithms in Dyna? - 7 |
| 41:55 | Related algorithms in Dyna? - 8 |
| 42:00 | Rule binarization - 1 |
| 43:29 | Rule binarization - 2 |
| 43:49 | Program transformations |
| 45:06 | Related algorithms in Dyna? - 9 |
| 45:08 | Earley’s algorithm in Dyna |
| 45:38 | Related algorithms in Dyna? - 10 |
| 45:39 | Some examples from my lab |
| 45:58 | A few more language details |
| 47:09 | Terms (generalized from Prolog) |
| 47:27 | Fixpoint semantics - 1 |
| 48:42 | Fixpoint semantics - 2 |
| 48:46 | "Object-oriented" features |
| 50:01 | Creating dynabases - 1 |
| 50:14 | Creating dynabases - 2 |
| 50:15 | Creating dynabases - 3 |
| 50:17 | Functional features: Auto-evaluation - 1 |
| 50:19 | Functional features: Auto-evaluation - 2 |
| 50:20 | Other handy features |
| 50:22 | Frozen variables |
| 50:22 | Other features in the works |
| 50:24 | Some More Examples |
| 51:23 | Neural networks in Dyna |
| 53:55 | Intersection of weighted finite-state automata |
| 55:24 | Arc consistency (= 2-consistency) |
| 58:09 | Edit distance between two strings |
| 58:37 | Iterative update (EM, Gibbs, BP, …) |
| 59:18 | Issues in implementing forward chaining - 1 |
| 59:32 | Issues in implementing forward chaining - 2 |
| 59:44 | More issues in implementing inference |
| 60:08 | Automatic differentiation via the gradient transform |
| 60:34 | Summary |
Lecture rating
| People found this lecture: | ||
| Worth seeing | ||
| because it is: | ||
| Valuable and informative | ||
| Well presented | ||
| Easily understandable | ||
| Acceptably recorded | ||
| You need to login to cast your vote. | ||
Report a problem or upload files
If you have found a problem with this lecture or would like to send us extra material, articles, exercises, etc., please use our ticket system to describe your request and upload the data.Enter your e-mail into the 'Cc' field, and we will keep you updated with your request's status.
Related content
SEE ALSO:
Link this page
Would you like to put a link to this lecture on your homepage?Go ahead! Copy the HTML snippet !



