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.
- 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!
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