This repository contains the complementary material for 项目实践 and 机器学习基础 in 2020 spring. Due to the distributed and asynchronous nature of this study format, we will steer the course through a series of self-contained units around programming, visualization, and simulation, which may be your interest for your future endeavor or not. This course tries to fulfill this arrangement by introducing some tools and demonstrating their capacity.
4 units are planned for the first 4 weeks. Each unit will contain at least 2 parts. The 1st part will discuss general practice and methodology around software engineering and this serves as the general topic across the board. The second part will introduce some tools or library and show how to use them. It’s highly recommended that you should do your research about this tool or library before the classroom and practice with it after the class. The classroom time will be question/answer time and I will stay online to answer your question through Github issues, QQ, and Wechat.
In the introduction to software engneering, we will cover the concept of software, software engineering, and software crisis. We also show the basic workflow of Git, the distributed version control system.
We will have 2 parts in this unit. In the first part, we go through an agile method called Scrum. In this second part, we will talk about Python.
Please form a team with 2~3 members and pick a project from http://www.cse.msu.edu/~cse231/PracticeOfComputingUsingPython/.
Q: Do we have a syllabus for this course? What's the goal of this course?
A: For the situation caused by the Coronavirus, we do have an alternative plan for the course for the first 4 weeks. The topics are listed above. The goal of this course is to introduce several concept and practise around software development.
Q: The videos can be more connected and the title of the video is not clear?
A: We want each video to be self-contained and independent as possible so that referece to these video in the future makes more sense without refering to the context and the background. Acfun.cn and bilibili.com are meant to be used as video host only. Title and description for the video are only available on the site where this readme resides. This makes the material for this course neutral to video hosting site.
Q: There are some parts where complementary slides are not available?
A: The programming parts are mainly screen casting.
Q: Team up may be a better choice?
A: Exercise of some units will be for individual, while other exercises require a teamwork.
Q: What about students with a computer at his/her disposal?
A: We provide reference in each unit and some reading instruction. This is for students without computers.
- Machine learning and related terms.
- Types of problem discussed in machine learning.
- Introduction to neural networks.
video: introduction to machine learning @acfun
video: introduction to machine learning @bilibili
The material is in c1_intro.
- logistic regression
- stochastic gradient descent
- input normalization
- oversampling/undersampling
video for logistic regression, @acfun
video for logistic regression, @bilibili
The task in this exercise is for you to apply logistic regression on ``Breast Cancer Wisconsin (Diagnostic) Data Set''.
- You can set train/test split to 0.7/0.3 or any value you like.
- You can choose your favorite tool besides PyTorch.
- Post your answer in a pull request to this repository.
- Discuss with each other while try to work the code out by yourself.
There is a piece of code demonstrating logistic regression using PyTorch. mlex1/lr.py
The data is available at https://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+(Diagnostic)
The data is also available on Kaggle: https://www.kaggle.com/uciml/breast-cancer-wisconsin-data
Note:
- UC Irvine Machine Learning Repository is the classic goto site to find some machine learning dataset.
- Kaggle is a popular machine learning competition site.
- Ensamble models by bagging/stacking/boosting
- MLP by stacking logistic regression
- Auto difference i.e. back propagation
Videos:
- multiLayer-perceptron @acfun
- multiLayer-perceptron @bilibili
- back propagation @acfun
- back propagation @bilibili
pdfs:
- Perceptron and multiLayer-perceptron
- Back propagation slides from Stanford cs231n
- Back propagation slides from Stanford cs231n (source)
- Convolutional operator in convolutional neural network (CNN)
- Other layers often used in CNN
- Learning tricks
Videos:
pdf:
Videos:
pdf:
Please go through deep learning with PyTorch: a 60 minute blitz by yourself. You can post any question in the QQ chat group if you'd like to discuss.