什么是深度学习

机器学习,顾名思义,是机器从数据中总结经验,找出某种规律构建模型,并用它来解决实际问题。而深度学习,是机器学习的一个重要分支和延伸,是包含多隐层的神经网络结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,从而学习到数据本身最关键的特征。

简单来说,深度学习就是更深、更加复杂的神经网络结构。首先,我将通过一个例子来解释什么是神经网络。

例如一个房屋价格预测问题。输入 x 是房屋面积大小,输出 y 是房屋的价格。如果要预测价格与面积的关系,最简单的一种模型就是 y 与 x 近似线性相关。

如上图所示,红色圆圈表示真实样本的价格与面积分布,蓝色虚线表示预测线性模型。这种最简单的线性模型被称为线性感知机模型。线性感知机模型的基本结构如下:

其中,w 为权重系数(Weights),b 为偏移量(Bias)。线性感知机模型表征了房屋价格与单一变量(房屋面积)的线性关系。

单个神经元(Neuron)与线性感知机的基本结构非常类似,只是在线性的基础上增加了非线性单元,目的是为了让模型更加复杂。

这里的非线性单元指的就是激活函数。关于激活函数的概念这里不作介绍,后面章节我将详细介绍。这里,大家把它看成是一个非线性函数即可。这样,线性感知机和非线性单元就构成了单个神经元。

单个神经元描述的是输出与单一变量之间的关系。还是上面的例子,如果房屋价格不仅与房屋面积有关,还和房间数目、地理位置等多个因素有关。这样,输入 x 不再是单一变量,而是由房屋面积、房间数目、地理位置等组成的多维向量。因此,我们就可以使用多个神经元来构建一个更加复杂的模型。

如上图所示, x1、x2、x3 表示输入元素,$\bigcirc$ 表示神经元。h1、h2、h3 是隐藏层神经元,之所以设置隐藏层神经元是为了分别从不同输入中提取特征,再将这些特征经过输出层神经元 out,预测房价 g。每一个隐藏层神经元与每个输入元素都进行连接,这保证了提取信息的完整性。这个模型就是最简单的神经网络模型。

上面隐藏层个数为什么是 3?其实,隐藏层神经元个数不是固定的,可以是 2,也可以是 4,它是个可调参数。更深入地,上面的神经网络模型只有单隐藏层,如果问题比较复杂,训练样本比较多,我们可以使用更多隐藏层,每一隐藏层的神经元个数都可以设置。一般来说,层数越多越深,神经网络模型模型越复杂,学习能力越强。这样的深层神经网络就被称为深度学习模型。

深度学习模型除了标准的神经网络(Neural Network,NN)之外,还包括卷积神经网络(Convolutional Neural Network,CNN)、循环神经网络(Recurrent Neural Network,RNN)。

CNN 多应用于机器视觉、图像处理,RNN 多应用于序列模型、语音处理等。关于 CNN 和 RNN 的详细内容,我将在之后的章节中详细介绍。

为什么要深度学习

传统的机器学习算法,例如线性回归、逻辑回归、支持向量机、决策树、随机森林等能够处理很多问题,实际应用也非常广泛。许多数据挖掘竞赛、机器学习算法大赛、Kaggle 等,传统的机器学习算法都有着很优秀的表现。但是,随着互联网的兴起与蓬勃发展,每天都有海量的数据产生,如何从大数据中寻找规律建立准确的模型,深度学习逐渐发挥其优势,呈现出比传统机器学习更大的能力。下面,我们用一张图来说明。

上图共有 4 条曲线,从下往上分别为传统机器学习算法、规模较小的神经网络、规模中等的神经网络、规模较大的神经网络。从每条曲线的趋势可以看出,当数据量较少的时候,传统机器学习模型的表现是不错的,与神经网络模型差别不大。但随着数据量越来越大,传统机器学习模型的性能表现开始增长缓慢,似乎到达了瓶颈。而神经网络模型的性能仍然表现出较快的上升趋势,且规模越大,性能提升越明显。这主要是因为深度学习模型网络结构更加复杂,更能从大数据中提取有效的特征,准确性较高。所以,近些年来,深度学习在处理大数据和建立复杂准确的学习模型方面,有着非常不错的表现。

在机器视觉、图像处理方面,深度学习可以说是带来了革命性的变化。近些年来,在全球知名的图像识别竞赛 ILSVRC 中,深度学习模型,尤其是各种 CNN 模型在错误率方面,不断刷新纪录,相比之前传统机器学习算法,性能提升有质的飞跃。

图片转载自 cs231n

上图中,从 2010 年开始,开始使用 CNN 模型。转折点是 2012 年, AlexNet 的出现,直接将错误率降低了近 10 个百分点。这是之前所有机器学习模型无法做到的。2015 年,包含 152 层神经元的 ResNet 模型,竟然将错误率降低至 3.57%,这甚至比人类肉眼识别的准确率还高!

除了在图像识别方面,深度学习在机器翻译领域也取得了飞跃式的发展。基于 RNN 的机器翻译最典型的代表就是谷歌翻译,让机器能够在深度学习中不断完善答案,给用户最想要的信息。说白了就是更智慧、更精准了。直接改善了之前逐词直译的效果,而是升级为以整个句子为单位进行翻译。从性能上来说,谷歌翻译整合神经网络,翻译质量已经接近人工笔译。

不止这些,深度学习在诸如自动驾驶、推荐系统、人脸识别等领域都取得了重大进展。

为什么能够深度学习

近些年来,深度学习能够飞速发展的主要原因归结为三点:

第一,数据量指数级增长为深度学习提供了数据基础和先决条件。任何机器学习模型的构建都是基于数据的,足够多数据,更利于模型从中准确地挖掘数据特征,寻找数据规律。基于大数据构建的模型才能更加准确、有效。

第二,计算机硬件更新以及 GPU 的出现为深度学习提供了强大的运算能力。大数据是好事,但是要快速且准确地通过深度学习模型处理并运算这些数据需要强大的计算机硬件作为支撑。近些年来,计算机硬件不断更新换代,运算速度大大提升,最关键的是 GPU 的出现和使用,大大提高了深度学习模型的训练速度,可能原来使用 CPU 需要训练一周、一个月的模型,使用 GPU 只要几个小时就搞定了。这大大提高了效率。现在,很多深度学习框架都支持使用 GPU 来加速模型运算。

第三,模型和算法上的创新和改进让深度学习的性能和速度也大大提升。近些年来,不断有新的深度学习模型和优化算法被提出,例如 AlexNet 模型、ResNet 模型、SGD 算法、Adam 算法等。这些优化模型和算法让深度学习模型本身更加强大,不仅大大提高了运算速度,也提高了训练的精准度,使得模型性能大大提高。

如何进行深度学习

深度学习如此强大,那么我们如何入门并系统地学习呢?下面,我将给大家简要介绍下本达人课的主要内容和章节分布。

深度学习的复杂性和难点主要体现在神经网络模型的数学推导、神经网络模型的优化,以及如何理论联系实战,构建一个优秀的深度学习模型来解决实际问题。为了完整地将深度学习知识点梳理清楚,本课程共包含三大部分。

第一部分(第 01-04 课)主要介绍一些深度学习的预备知识。对深度学习进行简要概述,列举重要的 Python 基础知识,手把手教你搭建本课程需要的开发环境,使用 Anaconda 平台,重点介绍 Jupyter Notebook 的使用以及知名的深度学习框架 PyTorch。

第二部分(第 05-14 课)主要介绍神经网络的基础,以最简单的两层神经网络入手,详细推导正向传播与反向梯度的算法理论。然后,从简单网络推导至深度网络,并重点介绍神经网络优化算法及构建神经网络模型的实用建议。每一部分都会有一个实战演练的例子,方便大家实操。

第三部分(第15-18篇)主要介绍卷积神经网络 CNN 和循环神经网络 RNN,重点剖析两种模型的数学原理和推导过程。最后,利用越来越火的深度学习框架 PyTorch 分别构建 CNN 和 RNN 模型,解决实际问题。

第01课:深度学习概述相关推荐

  1. 深度学习 01 探索深度学习

    目录 01 深度学习概述 人工智能划时代事件 深度学习的巨大影响 深度学习的定义 深度学习与机器学习的体系 深度学习的特点 深度学习与传统机器学习对比 为什么要学习深度学习 深度学习的应用领域 02 ...

  2. Datawhale2021年11月组队学习——绪论与深度学习概述数学基础

    以下内容为对Datawhale2021年11月组队学习中"水很深的深度学习"课程的绪论与深度学习概述以及数学基础的简要总结,其中小部分内容参考了网上一些资料. 原文链接: http ...

  3. Coursera吴恩达《神经网络与深度学习》课程笔记(1)-- 深度学习概述

    红色石头的个人网站:redstonewill.com 吴恩达(Andrew Ng)相信大家都不陌生了.8 月 8 日,吴恩达在他自己创办的在线教育平台 Coursera 上线了他的人工智能专项课程(D ...

  4. 深度学习概述_深度感测框架概述

    深度学习概述 I have found the DeepSense framework as one of the promising deep learning architectures for ...

  5. 水很深的深度学习-Task01深度学习概述与数学基础

    目录          1.人工智能.机器学习与深度学习 1.1 人工智能.机器学习与深度学习 1.2 起源与发展 1.3 深度学习定义与分类 1.4 主要应用 2 数学基础 2.1 矩阵论 2.2 ...

  6. 【深度学习概述学习小结】

    深度学习概述学习小结 人工智能.机器学习与深度学习关系 深度学习 深度学习历史 深度学习基础知识 神经元 参数更新与误差反向传播 Pytorch代码学习 螺旋分类整体思考 实验对比 继续实验 人工智能 ...

  7. 深度学习概述-从神经计算角度

    深度学习概述-从神经计算角度 什么是神经计算 计算与计算工具 新的工具导致新的计算概念,新的计算概念导致新的工具 计算模型或者计算系统可以是具体的也可以是抽象的,如电子计算机和Turing机 神经计算 ...

  8. 水很深的深度学习--深度学习概述

    深度学习概述 人工智能 人工智能可以分成以下三类: 人工智能的三次浪潮 机器学习 机器学习的定义 机器学习的分类 深度学习 深度学习的定义 深度学习的分类 深度学习的起源与发展 深度学习的主要应用 人 ...

  9. 1.5 关于这门课-深度学习-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 1.4 为什么深度学习会兴起 回到目录 1.6 课程资源 关于这门课 你的学习进度已经快接近这个专项课程的第一门课的第一周结尾了,首先,快速地介绍一下下周的学习内容: 在第一 ...

最新文章

  1. mysql数据库oem_Oracle 11gR2学习之二(创建数据库及OEM管理篇)
  2. Uva1627 Team them up!
  3. vue的指令绑定、事件、冒泡
  4. 【Android 应用开发】多点触控 ( 多点触控事件 | PointerId | PointerIndex | 坐标获取 | 触摸点个数 )
  5. 再给大家发 200 个红包!
  6. 单例模式中的属性实现
  7. Java笔记-使用CXF开发WebService服务器
  8. 操作系统之进程管理:19、死锁的处理策略:避免死锁(银行家算法)
  9. nio java是什么_Java NIO 的前生今世 之一 简介
  10. ios wifi 定位_iOS 中的三种定位方式
  11. String引起的OutOfMemory异常 + 如何计算C#对象所占内存的大小
  12. 最新Axure激活码
  13. 聚是一团火散作满天星,前端Vue.js+elementUI结合后端FastAPI实现大文件分片上传
  14. js-----词法分析过程
  15. 疲惫的 618,很难再激起年轻人的多巴胺?
  16. STI解读A:STI测量方法
  17. 关于 Appium 环境搭建
  18. 并行接口电路8255A的基本使用——三种工作方式的时序图的具体讲解
  19. Markdown语法(常用语法,快速掌握)
  20. kNN(k-Nearest Neighbours)原理详解

热门文章

  1. Vysor_v1.6.9
  2. 互联网思维之求职信,百战百胜
  3. CentOs下php连mssql并配置unixODBC
  4. nyoj 133 子序列(尺取法+离散化)
  5. nyoj1306海拔
  6. NYOJ 460 项链
  7. Linux 网络 IO 模型
  8. C# 网站静态页面生成器 for 多线程版
  9. python numpy中astype使用不当导致图像出现artifact
  10. 双目立体匹配经典算法之Semi-Global Matching(SGM)概述:匹配代价计算之互信息(Mutual Information,MI)...