课程简介
学习本课程的预备知识
- Proficiency in Python, high-level familiarity in C/C++(语言:熟练使用Python,以及高级水平的C/C++)
所有的课程任务将会以Python的形式(而且要使用numpy)(我们会提供一个教程供不熟悉Python的人学习),但是后面某些课程的深度学习类库是以C++的形式写成的。所以,如果你有很多的编程经验但是是其他语言的(如C/C++/Matlab/Javascript)你可能也可以胜任这些任务。 - College Calculus, Linear Algebra (e.g. MATH 19 or 41, MATH 51) 大学微积分,线性代数
你应该对求导很熟悉,并且理解矩阵向量操作和符号。 - Basic Probability and Statistics (e.g. CS 109 or other stats course)基本的概率统计方面的知识
你应该知道基本的概率、高斯分布、平均值和标准差。 - Equivalent knowledge of CS229 (Machine Learning)对CS229(机器学习)有相当的了解
We will be formulating cost functions, taking derivatives and performing optimization with gradient descent. 我们将会使用梯度下降法建立成本函数,求标准差以及进行最优化。
http://cs231n.stanford.edu/syllabus.html
课程Notes:2017年
代码:链接
Lecture 1:Introduction to Convolutional Neural Networks for Visual Recognition(用于视觉识别的卷积神经网络简介)
80%的网络流量都是图像,但是图像又是网络中的暗物质。如何能够理解图像是一件很重要的事情,YouTube上每秒钟上传的视频多达分钟,就算YouTube有很多员工那也很难一个一个看完整个视频。
Lecture 2: Image Classification(图像分类)
Lecture 3:Loss Functions and Optimization(损失函数和最优化)
Lecture 4:Introduction to Neural Networks(神经网络简介)
Lecture 5:Convolutional Neural Networks(卷积神经网络)
Lecture 6:Training Neural Networks I(训练神经网络I)
#assume some unit gaussian 10-D input data假设一些单位的高斯10-维输入数据 D = np.random.randn(1000, 500) #1000*500的随机初始化矩阵 hidden_layer_sizes = [500]*10 #隐藏图层尺寸 10个图层 每个图层有500个神经元 nonlinearities = ['tanh']*len(hidden_layer_sizes) #非线性=['tanh']*len([500]*10) act = {'relu':lambda x:np.maximum(0,x), 'tanh':lambda x:np.tanh(x)} #行动{'relu':lambda x=max(0,x), 'tanh':lambda x=tanh(x)} Hs = {} for i in xrange(len(hidden_layer_sizes)): X = D if i == 0 else Hs[i-1] #input at this layer 输入该图层的数据(当i=0时X=D,否则更新为X=Hs[i-1]) fan_in = X.shape[l] #输入_fan fan_out = hidden_layer_sizes[i] #输出_fan W = np.random.randn(fan_in, fan_out)*0.01 #layer initialization H = np.dot(X, W) #matrix multiply H = act[nonlinearities[i]](H) #nonlinearity Hs[i] = H #cache result on this layer #look at distributions at each layer print 'input layer had mean %f and std %f' % (np.mean(D), np.std(D)) layer_means = [np.mean(H) for i,H in Hs.iteritems()] layer_stds = [np.std(H) for i,H in Hs.iteritems()] for i,H in Hs.iteritems(): print 'hidden layer %d had mean %f and std %f' % (i+l, layer_means[i], layer_stds[i]) #plot the means and standard deviations plt.figure() plt.subplot(121) plt.plot(Hs.keys(), layer_means, 'ob.') plt.title('layer mean') plt.subplot(122) plt.plot(Hs.keys), layer_stds, 'or-') plt.title('layer std') #plot the raw distributions plt.figure() for i,H in Hs.iteritems(): plt.subplot(l, len(Hs), i+l) plt.(H.ravel(), 30, range(-1,1))
Lecture 7:Training Neural Networks II(训练神经网络II)
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:斯坦福大学公开课 视觉识别卷积神经网络 - Python技术站