UBC Scientific Software Seminar
The UBC Scientific Software Seminar is inspired by Software Carpentry and its goal is to help students, graduates, fellows and faculty at UBC develop software skills for science.
Winter 2017: Neural Networks and Deep Learning in Python
OUTLINE
- What are the learning goals?
- To learn the basics of neural networks and deep learning
- To master scikit-learn for solving machine learning problems
- To master Python programming for scientific computing
- To meet and collaborate with other students and faculty interested in scientific computing
- What software tools are we going to use?
- scikit-learn: machine learning in Python
- SciPy Stack: scientific computing with NumPy, SciPy, matplotlib and pandas
- Python and Jupyter Notebooks
- What scientific topics will we study?
- Neural networks and deep learning:
- Neural Networks and Deep Learning by Michael Nielsen
- Deep Learning by Ian Goodfellow and Yoshua Bengio and Aaron Courville
- deeplearning.net
- Advanced machine learning topics following scikit-learn tutorials
- Neural networks and deep learning:
- Where do we start? What are the prerequisites?
- UBCS3 Winter 2017 is a continuation of UBCS3 Fall 2016:
- Machine learning fundamentals: regression, classification, clustering, and dimensionality reduction
- Natural language processing
- Calculus, linear algebra, and probability
- UBCS3 Winter 2017 is a continuation of UBCS3 Fall 2016:
- Who is the target audience?
- Everyone is invited!
- If the outline above is at your level, perfect! Get ready to write a lot of code!
- If the outline above seems too intimidating, come anyway! You'll learn things just by being exposed to new tools and ideas, and meeting new people!
- If you have experience with all the topics outlined above, come anyway! You'll become more of an expert by participating as a helper/instructor!
SCHEDULE
Please join the mailing list to receive weekly updates about the seminar.
- Week 1 - Friday January 20 - 1-2pm - UCLL 109 - [Notes]
- Review: Simple machine learning problems and scikit-learn API * Regression, classification, clustering, and dimensionality reduction
- Introduction to neural networks
- Week 2 - Friday January 27 - 1-2pm - UCLL 109 - [Notes]
- What is a neural network?
- Definition, goals and challenges
- Structure of neural networks
- Neurons, layers, activations, weights and biases
- Examples: Neural networks using scikit-learn
- Digits dataset
- What is a neural network?
- Week 3 - Friday February 3 - 1-2pm - UCLL 109 - [Notes]
- How to train an neural network
- Layers, weights and biases
- Training data and a cost function
- Stochastic gradient descent and backpropagation
- L2 regularization
- A bad example of gradient descent
- How to train an neural network
- Week 4 - Friday February 10 - No meeting
- Week 5 - Friday February 17 - No meeting
- Reading Break
- Week 6 - Friday March 3 - 1-2pm - UCLL 109 - [Notes] - (presented by @asberk)
- Jupyter magics
- Pythonic programming
- Running stuff quickly
- Fast computations in Python with Numba and Cython
- Week 7 - Friday March 10 - 1-2pm - UCLL 109 - [Notes] - (presented by @asberk)
- LogisticRegressor class
- Setting alpha
- Coordinate optimization
- Exercises
- Week 8 - Friday March 17 - 1-2pm - UCLL 109 - [Notes] - (presented by @sempwn)
- Introduction to Keras: Deep Learning library for Theano and Tensorflow