Lecture 6:如何训练神经网络 I
介绍了各类激活函数,数据预处理,权重初始化,分批归一化(batch normalization)以及超参优化(hyper-parameter optimization)。
CS231n: Convolutional Neural Networks for Visual Recognition
更多
Spring 2017
Course Description
Computer Vision has become ubiquitous in our society, with applications in search, image understanding, apps, mapping, medicine, drones, and self-driving cars. Core to many of these applications are visual recognition tasks such as image classification, localization and detection. Recent developments in neural network (aka “deep learning”) approaches have greatly advanced the performance of these state-of-the-art visual recognition systems. This course is a deep dive into details of the deep learning architectures with a focus on learning end-to-end models for these tasks, particularly image classification. During the 10-week course, students will learn to implement, train and debug their own neural networks and gain a detailed understanding of cutting-edge research in computer vision. The final assignment will involve training a multi-million parameter convolutional neural network and applying it on the largest image classification dataset (ImageNet). We will focus on teaching how to set up the problem of image recognition, the learning algorithms (e.g. backpropagation), practical engineering tricks for training and fine-tuning the networks and guide the students through hands-on assignments and a final course project. Much of the background and materials of this course will be drawn from the ImageNet Challenge.
Prerequisites
Proficiency in Python, high-level familiarity in C/C++
All class assignments will be in Python (and use numpy) (we provide a tutorial here for those who aren't as familiar with Python), but some of the deep learning libraries we may look at later in the class are written in C++. If you have a lot of programming experience but in a different language (e.g. C/C++/Matlab/Javascript) you will probably be fine.
College Calculus, Linear Algebra (e.g. MATH 19 or 41, MATH 51)
You should be comfortable taking derivatives and understanding matrix vector operations and notation.
Basic Probability and Statistics (e.g. CS 109 or other stats course)
You should know basics of probabilities, gaussian distributions, mean, standard deviation, etc.
Equivalent knowledge of CS229 (Machine Learning)
We will be formulating cost functions, taking derivatives and performing optimization with gradient descent.
FAQ
Is this the first time this class is offered?
This course was previously taught in Winter 2015 and Winter 2016. This year's version of the course has been tweaked and updated to include new material where appropriate. The class is designed to introduce students to deep learning in context of Computer Vision. We will place a particular emphasis on Convolutional Neural Networks, which are a class of deep learning models that have recently given dramatic improvements in various visual recognition tasks. You can read more about it in this recent New York Times article.
Can I take this course on credit/no cred basis?
Yes. Credit will be given to those who would have otherwise earned a C- or above.
Can I audit or sit in?
In general we are very open to sitting-in guests if you are a member of the Stanford community (registered student, staff, and/or faculty). Out of courtesy, we would appreciate that you first email us or talk to the instructor after the first class you attend. If the class is too full and we're running out of space, we would ask that you please allow registered students to attend.
Can I work in groups for the Final Project?
Yes, in groups of up to three people.
I have a question about the class. What is the best way to reach the course staff?
Stanford students please use an internal class forum on Piazza so that other students may benefit from your questions and our answers. If you have a personal matter, email us at the class mailing list cs231n-spring1617-staff@lists.stanford.edu.
Can I combine the Final Project with another course?
Yes, you may. There are a couple of courses concurrently offered with CS231n that are natural choices, such as CS231a (Computer Vision, by Prof. Silvio Savarese). Speak to the instructors if you want to combine your final project with another course.
收起