18
Data Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Carnegie Mellon University

Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

Data Structures

1

10-607 Computational Foundations for Machine Learning

Matt Gormley

Lecture 9

Nov. 19, 2018

Machine Learning Department

School of Computer Science

Carnegie Mellon University

Page 2: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

Reminders

• Homework B: Complexity & Recursion

– Out: Thu, Nov. 8

– Due: Tue, Nov. 20 at 11:59pm

• Quiz A: Logic & Proofs; Computation

– Mon, Nov. 26, in-class

– Covers Lectures 1 – 6

2

Page 3: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

Q&A

3

Page 4: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

DYNAMIC PROGRAMMING

4

Page 5: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

2m 3m 18m 9m 27m

O S S O C1m

in2m

in3m

in…

O .1 .2 .3

S .01 .02.03

C 0 0 0

Hidden Markov Model

5

A Hidden Markov Model (HMM) provides a joint distribution over the the tunnel states / travel times with an assumption of dependence between

adjacent tunnel states.

p(O, S, S, O, C, 2m, 3m, 18m, 9m, 27m) = (.8 * .08 * .2 * .7 * .03 * …)

O S CO .9 .08.02

S .2 .7 .1

C .9 0 .1

1min

2min

3min

O .1 .2 .3

S .01 .02.03

C 0 0 0

O S CO .9 .08.02

S .2 .7 .1

C .9 0 .1

O .8

S .1

C .1

Page 6: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

Y2 Y3Y1

X3X2X1find preferred tags

Forward-Backward Algorithm: Finds Marginals

6

v

n

a

v

n

a

v

n

a

START END

• So p(v a n) = (1/Z) * product weight of one path

• Marginal probability p(Y2 = a)= (1/Z) * total weight of all paths through a

Page 7: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

Constituency Parsing

• Variables:– Constituent type (or �)

for each of O(n2) substrings

• Interactions:– Constituents must

describe a binary tree

– Tag bigrams

– Nonterminal triples(parent, left-child, right-child)

[these factors not shown]

7

Example Task:

(Naradowsky, Vieira, & Smith, 2012)

n v p d n

time likeflies an arrow

np

vp

pp

s

n

ψ1

ψ2 v

ψ3

ψ4 p

ψ5

ψ6 d

ψ7

ψ8 n

ψ9

time likeflies an arrow

np

ψ10

vp

ψ12

pp

ψ11

s

ψ13

ψ10

ψ10

ψ10

ψ10

ψ10

ψ10

Page 8: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

Dynamic Programming

8

Key Idea: Divide a large problem into

reusable subproblems and solve each

subproblem, storing the result of each for

later reuse

“Let’s take a word that has an absolutely precise meaning, namely dynamic, in theclassical physical sense. It also has a very interesting property as an adjective, andthat is it’s impossible to use the word, dynamic, in a pejorative sense. Try thinking ofsome combination that will possibly give it a pejorative meaning. [. . .] Thus, Ithought dynamic programming was a good name. It was something not even aCongressman could object to. So I used it as an umbrella for my activities.”

Richard Bellman, Autobiography (1984)

Page 9: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

Dynamic Programming

Chalkboard:

– Big Idea: Dynamic Programming

– Example: Fibonacci with and without dynamic programming

• Recursive Fibonacci’s computational complexity

• Dynamic programming Fibonacci’s computational complexity

– Types of Dynamic Programming

• Tabulation (bottom-up)

• Memoization (top-down)

– Example: Matrix Product Parenthesization

9

Page 10: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

DATA STRUCTURES FOR ML

10

Page 11: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

Abstractions vs. Data Structures

Abstractions

• List

• Set

• Map

• Queue (FIFO)

• Stack (LIFO)

• Graph

• Priority Queue

Data Structures• Array (fixed size)

• Array (variable size)

• Linked List

• Doubly-Linked List

• Multidimensional Array

• Tensor

• Hash Map

• Binary Search Tree

• Balanced Tree

• Trie

• Stack

• Heap

• Graph

• Bipartite Graph

• Sparse Vector

• Sparse Matrix

11

Page 12: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

Data Structures for ML

Examples…

• Data:– Dense feature vector (array)

– Sparse feature vector (sparse vector)

– Design matrix (multidimensional array)

• Models:– Decision Trees (tree)

– Bayesian Network (directed acyclic graph)

– Factor Graph (bipartite graph)

• Algorithms:– Greedy Search (weighted graph)

– A* Search (priority queue/heap)

– Forward-backward for HMM (trellis)

12

Page 13: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

Trees

Chalkboard:

– Binary Tree

• Representation

• Depth First Search

– pre-order traversal

– in-order traversal

– post-order traversal

• Breadth First Search

– Decision Tree

• Representation

13

Page 14: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

Tree Traversals

14

Pre-order In-order Post-order

Breadth First Search

Depth First Search

Figures from Wikipedia

Page 15: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

Graphs

Chalkboard:

– Undirected Graphs

• Representation

• Breadth First Search

15

Page 16: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

Decision Tree Learning Example

In-Class Exercise• Suppose we now have an

undirected (possibly cyclic) graph

• You need a breadth-first traversal of the graph from some query node

• Your friend suggests you use the same BFS algorithm we defined for binary trees

1. What goes wrong?2. How can you fix it?

16

Example Undirected Graph:

X1

X3X2

X4 X5

Page 17: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

Sparse Vectors

Chalkboard:

– Sparse Vector

• Representation

• Sparse Dot Product

• Addition of dense vector and sparse vector

17

Page 18: Data StructuresData Structures 1 10-607 Computational Foundations for Machine Learning Matt Gormley Lecture 9 Nov. 19, 2018 Machine Learning Department School of Computer Science Reminders

Data Structures & Algorithms

Chalkboard:

– Weighted Directed Acyclic Graph• Representation

• Greedy Search

• Dijkstra’s Algorithm

• A* Search

– Binary Search Tree• Representation

• Average vs. Worst Case Time Complexity

• Search

• Insertion

• Deletion

18