Taught by Patrick Hebron at ITP, Fall 2016
We will start today's class by answering any questions that arose from your continued explorations of TensorFlow, LaunchBot and Docker.
Convolutional Neural Networks:
- Discussion of Convolutional Neural Network articles.
- Discussion of CNN architecture and practical benefits.
- Implementing and visualizing a CNN with TensorFlow.
From Formalization to Iteration:
Project Development Exercise:
- Students will present their "feature sets" to one another in small groups.
- In presenting your work, give your classmates an overview of:
- The network architectures, datasets and any data-slicing / data-formatting techniques you are using.
- By presenting the technical and conceptual components of your ideas, you will fortify your own understanding of them.
- As you explain your ideas, take note of any gaps in your own understanding of the components.
- In responding to your classmates' work, try to provide feedback that will help the presenter to develop the technical and conceptual components of the project:
- Which features seem most essential to the idea?
- Which seem extraneous, unresolved or confusing?
- Which will be difficult to implement?
- Have you come across any datasets, network architectures, code or conceptual references that might be helpful?
- Can you recommend any techniques that might help to improve the presenter's results?
e.g. Data-slicing techniques, the addition of unsupervised layers to a supervised learning problem, etc.
- Do you see any missed opportunities in the ideas presented?
e.g. "Since you're already doing X, you could easily extend that to Y..."
During this exercise, I will be available to address any technical questions that may arise within the group discussions.
- Go back to your feature sets, reflect upon your earlier work and the comments made by your peers.
- If you had trouble explaining a particular component of your project, go back to the course materials or other online resources and review the relevant concepts.
- From these reflections, create a plan of execution for the remaining components of your project:
- Create a list of priorities:
- Which features are technically indispensable?
- Which features are conceptually indispensable?
- Which features are not completely essential to your idea, but would improve usability, performance, etc?
- Which features should be left for a future iteration of the project?
- Now try to estimate / rank the difficulty or time commitment required to complete each of these features.
- Given the remaining time in the semester, this process may require you to make some difficult decisions about which features to cut from this iteration of the project.
- With this project roadmap in mind, develop the remaining components of your project.
- Don't forget to document your process along the way! In the final presentations, you and your classmates will learn not only from the final product but also from your description of the steps you took to reach that product.