zoukankan      html  css  js  c++  java
  • 斯坦福大学公开课 视觉识别卷积神经网络

    课程简介

    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.
    计算机视觉已经变得普适了,在我们的社会中应用,如搜索、图像理解、APP、地图、医疗、无人机和自动驾驶。这些应用中的很多核心都是视觉识别方面的任务,例如图像分类、定位和识别。
     

    学习本课程的预备知识

    • 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

    视频教程链接:Youtube  B站

    课程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)

  • 相关阅读:
    Linux Shell的18条常用命令整理
    git branch 命令查看分支、删除远程分支、本地分支
    比Xshel更好用的 FinalShell
    Centos7的目录结构
    准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure
    代码托管仓库之码云
    包管理工具之Pipenv
    Python的垃圾回收机制
    Django之Models操作
    Python操作数据库实战
  • 原文地址:https://www.cnblogs.com/2008nmj/p/8215562.html
Copyright © 2011-2022 走看看