cs501r_f2016:lab2

This shows you the differences between two versions of the page.

Both sides previous revision Previous revision Next revision | Previous revision | ||

cs501r_f2016:lab2 [2016/09/01 21:44] wingated |
cs501r_f2016:lab2 [2016/09/05 10:04] wingated |
||
---|---|---|---|

Line 10: | Line 10: | ||

You should turn in an iPython notebook that implements the perceptron algorithm on two different datasets: the Iris dataset, and the CIFAR-10 dataset. Because the perceptron is a binary classifier, we will preprocess the data and "squash" it to create two classes. | You should turn in an iPython notebook that implements the perceptron algorithm on two different datasets: the Iris dataset, and the CIFAR-10 dataset. Because the perceptron is a binary classifier, we will preprocess the data and "squash" it to create two classes. | ||

- | Your notebook should also generate a visualization that shows classification accuracy at each iteration, along with the log of the l2 norm of the weight vector, for two different values of the perceptron's step size. Examples of both are shown at the right. Since there are two datasets, and there are two visualizations per dataset, your notebook should produce a total of 4 plots. | + | Your notebook should also generate a visualization that shows classification accuracy at each iteration, along with the log of the l2 norm of the weight vector, for two different values of the perceptron's step size. Examples of both are shown at the right (for the CIFAR-10 dataset). Since there are two datasets, and there are two visualizations per dataset, your notebook should produce a total of 4 plots. |

**Please cleanly label your axes!** | **Please cleanly label your axes!** | ||

Line 32: | Line 32: | ||

* 70% Correct implementation of perceptron algorithm | * 70% Correct implementation of perceptron algorithm | ||

- | * 20% Tidy and legible visualization of loss function | + | * 20% Tidy and legible visualization of weight norm |

* 10% Tidy and legible plot of classification accuracy over time | * 10% Tidy and legible plot of classification accuracy over time | ||

Line 93: | Line 93: | ||

In the wikipedia description of the perceptron algorithm, notice the function ''f''. That's the Heaviside step function. What does it do? | In the wikipedia description of the perceptron algorithm, notice the function ''f''. That's the Heaviside step function. What does it do? | ||

- | You should run the perceptron for at least 100 steps. | + | You should run the perceptron for at least 100 steps. Note that your perceptron will probably converge in much fewer on the Iris dataset! |

You should also test different step sizes. Wikipedia doesn't discuss how to do this, but it should be straightforward for you to figure out; the algorithm description in the lecture notes includes the step size. (But try to figure it out: consider the update equation for a weight, and ask yourself: where should I put a stepsize parameter, to be able to adjust the magnitude of the weight update?) | You should also test different step sizes. Wikipedia doesn't discuss how to do this, but it should be straightforward for you to figure out; the algorithm description in the lecture notes includes the step size. (But try to figure it out: consider the update equation for a weight, and ask yourself: where should I put a stepsize parameter, to be able to adjust the magnitude of the weight update?) | ||

Line 121: | Line 121: | ||

Don't forget to label your axes! | Don't forget to label your axes! | ||

+ | |||

+ | You may find [[http://matplotlib.org/users/pyplot_tutorial.html|this tutorial on pyplot]] helpful. | ||

---- | ---- |

cs501r_f2016/lab2.txt ยท Last modified: 2016/09/05 10:04 by wingated