怎么快速入门深度学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么快速入门深度学习相关的知识,希望对你有一定的参考价值。

深度学习是一门综合的研究方向,目前大多数研究生都在研究这个,包括我在内,我研究的是图像识别领域,包括图像分类、目标识别、对象定位、风格迁移等等。

说回来,那到底要如何去学习深度学习,首先深度学习属于机器学习的一个分支,机器学习分为监督学习、无监督学习、强化学习、半监督学习和深度学习

要想学习深度学习就必须先学习机器学习,学习机器学习,首先需要储备的知识就是高等数学、线性代数以及统计数学的基础知识,其中统计数学最重要,推荐可以看李沐老师的《统计学习方法》,学习概率分布、大数定律等等。

机器学习,需要学习监督学习,包括线性回归、逻辑回归、梯度下降方法减小代价函数。无监督学习,包括聚类等等,支持向量机、神经网络,这里推荐吴恩达老师的机器学习,通俗易懂,有利于小白学习。

学完上面的内容就可以开始学习深度学习了,学习深度学习,深度学习主要是利用神经网络去解决问题,图像识别用的是卷积神经网络,自然语言处理利用的是循环神经网络。这里推荐看吴恩达老师的深度学习,一定要做课后编程题,使用python需要做。

学习完理论知识,就需要学习一个深度学习的框架:Tensorflow、Pytorch。最近几年pytorch用的人越来越多了。图像识别的话,还需要学习opencv。

参考技术A

    学习深度学习的基础知识:学习深度学习的基本概念,包括神经网络、卷积神经网络、循环神经网络等。

    学习Python编程语言:深度学习经常使用Python语言进行编程,所以需要学习Python的基础知识。

    学习深度学习的常用框架:如TensorFlow,Keras, PyTorch等。

    实践项目:通过实践项目来理解和掌握深度学习模型的设计和实现。

    学习数学知识:深度学习需要掌握一些数学知识,如线性代数,微积分等。

    参加线上课程或培训:参加线上课程或培训,通过课程学习和与教师、同学交流来提高自己的能力。

    多读文献,研究最新技术:研究最新技术,研究最新研究成果,帮助自己了解深度学习的最新发展。

PyTorch深度学习-01概述(快速入门)

目录


Overview

1.Goal of this tutorial

  • Target:understand the basic of neural network/deep learning
  • Requirements:Algebra+Probability and Python

2.Human Intelligence

  • 推理:information->infer 通过综合已获得的信息 进行推理
  • 预测:image->prediction 将真实世界的实体和抽象概念连接起来的过程叫预测(数字也是抽象概念)

3.Machine learning

  • 机器学习 (machine learning):把以前用来做推理的大脑变成算法,用算法进行推理(例如:外卖软件会根据用户的订餐习惯,利用算法推送用户最有可能选择的食物)。

  • 监督学习:拿出一组打过标签的数据集(Labeled Dataset),建立一个模型,用这些数据对模型进行训练,最终得到算法。

  • 算法:1.穷举法 2.贪心法 3.分治法 4.动态规划

  • 机器学习的算法与以上4种算法不同,它不是人工设计出来的,而是首先要有数据集,再从数据集中把想要的算法找出来。

  • AI -> Machine learning -> Representation learning -> Deep learning

4.How to develop learning system:

  1. 基于规则的系统 (Rule-based systems):input -> hand-designed program -> output

  2. 经典机器学习算法 (Classic machine learning):input -> hand-designed features(手工特征提取,将输入变成向量/张量) -> mapping from features (映射) -> output

  3. 表示学习 (Representation learning):input -> features -> mapping from features -> output

  • 维度诅咒:维度越多对数据的需求量越大,但收集数据本身的工作量巨大。
    所以需要把维度降低一些,还希望在把N维空间压缩成n维(n<N)的同时,尽量保持高维空间里的度量信息。这个过程叫做表示学习。
  1. 深度学习(Deep learning):input -> simple features -> additional layers of more abstract features -> mapping from features -> output (表示学习包括深度学习)

5.New change

  1. Limit of hand-designed feature
  2. SVM can’t handle big data set well
  3. More and more application need to handle unstructured data
    ps:SVM(Support Vector Machine)支持向量机

6.neural networks (神经网络)

6.1反向传播(Back Propagation、BP算法)

  • 反向传播是对于神经网络来说最重要的算法
  • 反向传播是求偏导的过程
  • 反向传播的核心是计算图(如下图所示)

a和b:输入量/权重,可经一系列运算得到e=(a+b) ∗ \\ast (b+1)
在计算图中每一步的计算只能进行原子计算(不能被分割的运算)

假设a=1、b=2,从节点a出发,首先计算c=a+b=1+2=3,d=b+1=2+1=3,最后可得节点e= c ∗ c\\ast cd=3x3=9,这个过程叫做前馈。

求节点c时,一共有两条路径,即 ∂ c ∂ a \\frac\\partial c\\partial a ac=1和 ∂ c ∂ b \\frac\\partial c\\partial b bc=1。

求节点d时,只有一条路径,即 ∂ d ∂ b \\frac\\partial d\\partial b bd=1。

求节点e时,一共有两条路径,即 ∂ e ∂ c \\frac\\partial e\\partial c ce=d=3和 ∂ e ∂ d \\frac\\partial e\\partial d de=c=3。

最终目标要求 ∂ e ∂ a \\frac\\partial e\\partial a ae ∂ e ∂ b \\frac\\partial e\\partial b be,可以把a到e的所有路径上的偏导数相乘,就是 ∂ e ∂ a \\frac\\partial e\\partial a ae,即 ∂ e ∂ a \\frac\\partial e\\partial a ae= ∂ e ∂ c \\frac\\partial e\\partial c ce ⋅ \\cdot ∂ c ∂ a \\frac\\partial c\\partial a ac=3x1=3(链式法则),从b到e一共两条路径(b->c->e,b->d->e),将这两条路径上算出来的偏导数相加就是 ∂ e ∂ b \\frac\\partial e\\partial b be,即 ∂ e ∂ b \\frac\\partial e\\partial b be= ∂ e ∂ c \\frac\\partial e\\partial c ce ⋅ \\cdot ∂ c ∂ b \\frac\\partial c\\partial b bc + + + ∂ e ∂ d \\frac\\partial e\\partial d de ⋅ \\cdot ∂ d ∂ b \\frac\\partial d\\partial b bd=3x1+3x1=6。

综上,利用BP算法可以构建复杂的计算图,且算法具有弹性(如果只是计算图发生改变,但原子计算式不变,即各个节点的偏导不变,那么算法仍然可以应用在新计算图上)。BP算法只需要计算每个原子算子的偏导,就可以在图里传播导数来实现最终的计算。

本文参考:《PyTorch深度学习实践》

以上是关于怎么快速入门深度学习的主要内容,如果未能解决你的问题,请参考以下文章

快速入门开源深度学习框架

物体检测快速入门系列-Windows部署Docker GPU深度学习开发环境

PyTorch深度学习-01概述(快速入门)

PyTorch深度学习-03梯度下降(快速入门)

零基础如何快速入门深度学习?

深度学习框架Tensorflow快速入门