Applied Machine Learning
Index:
Course Overview:
Machine learning is an area of artificial intelligence that provides systems the ability to
automatically learn. Machine learning allows machines to handle new situations via analysis,
self-training, observation and experience. The wonderful success of machine learning has made
it the default method of choice for artificial intelligence experts. In this course, we review
the fundamentals and algorithms of machine learning.
TextBooks:
Slides and Papers:
Recommended Slides & Papers:
-
Anaconda, Jupyter Lab, Markdown, Git, GitHub, and Google Colab:
Teaching Assitant Class: |
Python continues to take leading positions in solving data science tasks and challenges. Here are three of the most important of libraries. |
Numpy is the fundamental package for scientific computing with Python. |
Pandas is an easy-to-use data structures and data analysis tools |
Matplotlib is a Python 2D plotting library |
Resources: |
Scipy Lecture Notes |
Data Science iPython Notebooks |
-
Introduction
-
Empirical Risk Minimization
-
PAC Learning
-
-
The Bias-Complexity Tradeoff
-
The VC-Dimension
-
-
Linear Predictors
R (Programming Language):
-
Decision Trees
R (Programming Language):
-
Nearest Neighbor
R (Programming Language):
-
Ensemble Methods
R (Programming Language):
-
Model Selection and Validation
R (Programming Language):
-
Neural Networks
R (Programming Language):
-
Convex Learning Problems
-
Regularization and Stability
R (Programming Language):
-
Support Vector Machines
R (Programming Language):
-
Multiclass Classification
-
Additional NoteBooks and Slides:
Class Time and Location:
Saturday, Monday, Wednesday 10:30-12:00 PM
Recitation and Assignments:
Monday and Wednesday 17:00-18:30 PM
Refer to the following link to check the assignments.
Also, I recommend to study link of recitation and assignments of machine learning in 2020.
Projects:
Projects are programming assignments that cover the topic of this course. Any project is written by
Jupyter Notebook. Projects will require the use of Python 3.7, as well as
additional Python libraries as follows.
- Python 3.7: An interactive, object-oriented, extensible programming language.
- NumPy: A Python package for scientific computing.
- Pandas: A Python package for high-performance, easy-to-use data structures and data analysis tools.
- Scikit-Learn: A Python package for machine learning.
- Matplotlib: A Python package for 2D plotting.
- SciPy: A Python package for mathematics, science, and engineering.
- IPython: An architecture for interactive computing with Python.
Practical Guide:
Fascinating Guide to Use Python Libraries (Machine Learning):
Google Colab:
Google Colab is a free cloud service and it supports free GPU!
Latex:
The students can include mathematical notation within markdown cells using LaTeX in their Jupyter Notebooks.
- A Brief Introduction to LaTeX PDF
- Math in LaTeX PDF
- Sample Document PDF
Useful NoteBooks:
Grading:
- Homework – 30%
— Will consist of mathematical problems and/or programming assignments.
- Midterm – 20%
- Endterm – 50%
Three Written Exams:
Midterm Examination: Saturday 1400/09/27, 10:30-12:00
Final Examination: Thursday 1400/11/07, 14:00-16:00
Prerequisites:
General mathematical sophistication; and a solid understanding of Algorithms, Linear Algebra, and
Probability Theory, at the advanced undergraduate or beginning graduate level, or equivalent.
Linear Algebra:
Probability and Statistics:
Discrete Mathematics:
Course (Videos, Lectures, Assignments): MIT OpenCourseWare (Discrete Mathematics)
Topics:
Have a look at some reports of Kaggle or Stanford students (CS224N, CS224D) to get some general inspiration.
Account:
It is necessary to have a GitHub account to share your projects. It offers
plans for both private repositories and free accounts. Github is like the hammer in your toolbox,
therefore, you need to have it!
Academic Honor Code:
Honesty and integrity are vital elements of the academic works. All your submitted assignments must be entirely your own (or your own group’s).
We will follow the standard of Department of Mathematical Sciences approach:
- You can get help, but you MUST acknowledge the help on the work you hand in
- Failure to acknowledge your sources is a violation of the Honor Code
- You can talk to others about the algorithm(s) to be used to solve a homework problem; as long as you then mention their name(s) on the work you submit
- You should not use code of others or be looking at code of others when you write your own: You can talk to people but have to write your own solution/code
Questions?
I will be having office hours for this course on Monday (09:30 AM–12:00 AM). If this is not convenient, email me at hhaji@sbu.ac.ir or talk to me after class.