Reading:
Programming skills. We will be using Python which is easier than any other language you know. If you can use matlab that will be enough. Concurrent enrollment in DSCI 6001 will work well.
Vector geometry & calculus.
Undergraduate Linear Algebra. Some exposure to prob and stat will also help.
If you are weak in an area you will need to devote extra time to keeping up. The university has plenty of resources for tutoring in the undergraduate subjects listed above.
Exams will only knowledge and skills you were told in class, but may require knowledge from prerequisites.
Example: perhaps in class you were shown a method that involves derivatievs, and the in-class examples using single variables, but the homework or test requires you to be able to take the derivative of a multivariable function.
This is not a course in the following topics, which you are nonetheless expected to learn as needed
(sometimes you will need to look them up on your own, where all it often takes is reading the manual).
“Deep Learning with Python”, François Chollet, Manning 2017.
“Deep Learning”, Aaron C. Courville, Ian Goodfellow, and Yoshua Bengio, MIT 2016. https://www.deeplearningbook.org/
“Hands-On Machine Learning with Scikit-Learn and TensorFlow, Concepts, Tools, and Techniques to Build Intelligent Systems”, Géron, O'Reilly 2017. (New edition to be released soon).
Tries to be very practical, non-mathematical (uses code to explain concepts).
By the end the code is probably moving too fast unless you are also studying Keras programming.
Slides are a prop to help discussions and lectures, not a replacement for notes.
Math does not work well via slides. Derivations and problems will be often be given only on the board, requiring note-taking.
If you have a computer science background this is a skill you may need to re-learn.
When you ask "what will be on the exam", I will say "the topics I emphasized in class".
"The instructor has the right to dismiss from class any student who has been absent more than two weeks (pro-rated for terms different from that of the semester). A dismissed student will receive a withdrawal (W) from the course if they are still eligible for a withdrawal per the University “Withdrawal from a Course” policy, or a failure (F) if not." - Student Handbook
If you don't attend class you are responsible for learning the material on your own.
If you are becoming a burden on the class due to absences I will have you removed.
Active-learning techniques will be used regularly in class, requiring students to work individually and/or with other students.
Refusal to participate (or consistent failure to pay attention) will be treated as absence from class and ultimately lead to dismissal from the class.
This is not typical projects, where you pick something you know how to do.
It means challenging projects you don't know how to solve yet. Then you may either be led to figure it out, or you may be given the solution now that you are better prepared to understand the difficulties it solves.
You may find it frustrating at times.
“Deep Learning with Python”, Chollet 2018
Then we can assume a “function” exists which we can approximate with a sufficiently-complex network. The more complex the network, the more:
are required to “fit” the approximation.
With the backpropagation algorithm, implementing simple gradient descent (batchwise)
From another perspective, Deep Learning brought a huge leap forward because the hardest part of machine learning was able to be mostly automated, by using lots of data
deep network as a shallow machine learning model (logistic regression typically) plus a bunch of preceding layers for representation learning
We still can’t really exploit enough data to do truly “data driven” training (i.e. devoid of expertise)
= Jobs for data scientists
We still have no good idea how to choose the network architecture – various ideas are tried with little theory behind them
= more jobs
State of the art models aren’t nearly as smart as they think they are
= yet more jobs
Algorithms or programs that can learn from data - clasify, predict, cluster
Goal: Application of result to new data - Generalization
Step 1: use some algorithm to train a model with the data
Step 2: Use morel for something...
The most important class of methods, includes classification and regression
Here we will focus on using supervised learning for Classification
Given a training set consisting of :
Given a training set consisting of :
Consider how this may be applied (what is $\mathbf x$, $y$, $f$, and what is "learned"?) in fields like:
"Structured Data" - Important features are used
"Unstructured Data" - raw info: signals, images, text
A universal function approximator $f(\mathbf x) \approx y$
The strength of Deep Learning is in methods to adapt this function using data.
The #1 reason deep neural nets have been so successful is... what?
Able to exploit massively parallel processing
Able to exploit big data
A tool to create isolated Python environments
cd $ML_PATH # Your ML working directory (e.g., $HOME/ml)
$ source env/bin/activate
Can create in Anaconda Navigator
Ideally using Anaconda: https://www.anaconda.com/download/
Or via command line:
conda create -n tensorflow_py36 python=3.6
conda activate tensorflow_py36
conda install jupyter matplotlib numpy scipy scikit-learn pandas ...
conda install tensorflow
conda install keras
Or from within Anaconda-Navigator using GUI.
python3 -c 'import tensorflow; print(tensorflow.__version__)'
Google CoLab: https://colab.research.google.com/notebooks/welcome.ipynb
Kaggle Kernel: https://www.kaggle.com/kernels
A single document containing a series of "cells". Each containing code which can be run, or images and other documentation.
[shift] + [Enter]
or "play" button in the menu.Will execute code and display result below, or render markup etc.
import datetime
print("This code is run right now (" + str(datetime.datetime.now()) + ")")
'hi'
This code is run right now (2019-01-06 17:18:52.917748)
'hi'
x=1+2+2
print(x)
5
[shift] + [tab]
after the opening parenthesis function(
function?