Title: Quiz 1
Course: F19 Introduction to Deep Learning

Q: Which of your quiz scores will be dropped?
- Lowest 2 quiz scores
- No scores will be dropped
- Lowest 3 quiz scores
- Lowest 1 quiz score
A: Lowest 2 quiz scores

Q: We sometimes say that neural networks are connectionist machines as opposed to Von Neumann machines. Which of the following describe why we make this distinction? (select all that apply)
- A Von Neumann machine has a general purpose architecture with a processing unit that is distinct from the memory that holds the programs and data. A connectionist machine makes no distinction between processing unit and the program.
- A Von Neumann machine can be used for general-purpose computing by simply providing a different program, without changing the machine itself. A connectionist machine implements a specific program, and changing the program requires changing the machine.
- It is possible to create hardware implementations of Von Neumann machines (e.g. CPU's) as well as software implementations (e.g. virtual machines). However, connectionist machines can only be implemented in software (e.g. neural networks in Python).
- Because of its flexibility, a Von Neumann machine is capable of computing any Boolean function of a given number of Boolean inputs, whereas connectionist machines, no matter how complex, are fundamentally unable to model certain types of Boolean functions.
A: A Von Neumann machine has a general purpose architecture with a processing unit that is distinct from the memory that holds the programs and data. A connectionist machine makes no distinction between processing unit and the program.; A Von Neumann machine can be used for general-purpose computing by simply providing a different program, without changing the machine itself. A connectionist machine implements a specific program, and changing the program requires changing the machine.

Q: Suppose you have a neural network with only two inputs I1 and I2, and two output neurons O1 and O2. There are no hidden units. All neuron outputs are Boolean. The network has been trained to model the following function:

I1 | I2 | O1 | O2
1 | 0 | 1 | 0
1 | 1 | 0 | 1
0 | 0 | Invalid input | Invalid input
0 | 1 | Invalid input | Invalid input

The vast majority of the data set has I1 = 1, I2 = 0. If we apply Hebbian learning with this trained network on our data set, will the behavior of the network eventually change? If so, what will happen first?
- The network will start to map I1 = 1, I2 = 1 to O1 = 1, O2 = 1
- The network will start to map I1 = 1, I2 = 0 to O1 = 0, O2 = 1
- The network's behavior will not change
- The network will start to map I1 = 1, I2 = 1 to O1 = 1, O2 = 0
A: The network will start to map I1 = 1, I2 = 1 to O1 = 1, O2 = 1

Q: Under which conditions will the perceptron graph below fire? (select all that apply).

In the figure the number within the circle is the threshold.  The numbers on the edges are weights.  The perceptron fires if the total incoming signal is at least equal to the threshold.
- \(\bar{x}_1, \bar{x}_2, \bar{x}_3, \bar{x}_4\)
- \(\bar{x}_1, \bar{x}_2, \bar{x}_3, \bar{x}_4, \bar{x}_5, x_6, x_7, x_8\)
- \(x_1, x_2, x_3, x_4\)
- Never fires
A: \(\bar{x}_1, \bar{x}_2, \bar{x}_3, \bar{x}_4\); \(\bar{x}_1, \bar{x}_2, \bar{x}_3, \bar{x}_4, \bar{x}_5, x_6, x_7, x_8\)