一、人工智能、机器学习和深度学习

  • 人工智能是很宽泛的领域,让机器像人一样思考:机器学习,自动推理;让机器人像人一样听懂:语音识别;让机器像人一样看懂:视觉识别;让机器人像人一样运动:运动控制。
  • 传统机器学习是使用人工智能算法使得计算机有学习能力,模拟或实现人类的学习行为,来获取新的知识或技能并根据自身结构不断完善性能。
  • 深度学习属于机器学习的子类,是利用深度神经网络来解决特征表达的一种学习过程。
    深度神经网络本身并非是一个全新的概念,可理解为包含多个隐含层的神经网络结构。为了提高深层神经网络的训练效果,人们对神经元的连接方法以及激活函数等方面做出了调整。其目的在于建立、模拟人脑进行分析学习的神经网络,模仿人脑的机制来解释数据,如文本、图像、声音。
    三者关系如图1所示:

                                        
                                         图1 人工智能、机器学习与深度学习

二、 为什么现在深度学习这么受欢迎

  • 机器学习能够适应各种数据量,特别是数据量较小的场景。如果数据量迅速增加,那么深度学习的效果将更加突出,这是因为深度学习算法需要大量数据才能完美理解。随着互联网的发展,数据量这一问题被完美解决,深度学习在很多方面效果优于机器学习;
  • 机器学习需要工程师手动提取特征(如图2),耗费大量时间在重复性劳动上,而深度学习可以自动提取特征(如图3),节省时间,降低工作量,提高工作效率,让工程师将更多的精力放在更有价值的研究方向上;
                                
                                                  图2 机器学习步骤
                                
                                                  图3 深度学习步骤
  • 由于数据量的增加,深度学习依赖于高端硬件设备—GPU,并且由于算法中含有很多参数,训练时间大大增加;
    但是由于深度学习的高效率和高性能,受到了广泛应用。

三、深度学习基本理论

3.1 神经网络

 深度学习应用的方法主要是神经网络,最简单的神经网络有以下几个部分:输入层(x),隐藏层,输出层(y)。(图4是最神经网络的基本结构)每个节点都是一个神经元,每层的每个神经元都和下一层的神经元相连接,我们称之为全连接结构(Full connected)。输入层(x)就是神经网络提取的特征,输出层(y)就是想要得到的结果。

                           
                                           图4 神经网络基本结构

 单独取出神经元分析(图5):黄色圆圈代表隐藏层的一个神经元,经过运算:
y=f(W1×X1+W2×X2+W3×X3+b) (1)
,得到输出(f就是激活函数,目的是获得函数的非线性),常用的激活函数有sigmoid函数、ReLu函数等。
                            
                                           图5 神经元结构
  W和b会预先设定值,经(1)公式后得到预测值y ̂(这个计算y ̂的过程成为正向传播),预测的好坏使用损失函数Loss分析:
Loss=(y ̂-y)² (2)
   Loss越小,说明预测效果越好。现在常用的损失函数有mse(均方误差损失函数)、cross entropy(交叉熵损失函数)、ada(指数损失函数)
  利用损失函数优化W和b,这就是神经网络的学习过程,常见的优化算法—梯度下降法(常用)(另外还有sgd、adagrad、adam)。公式(3)(4)是更新W和b的公式。更新参数的过程是从后往前的过程,我们称之为反向传播(计算出y ̂值,反过来根据y ̂值分析权重的过程)
                            
                                          图6 梯度下降法
W = W -η(∂ L/∂ W ) (3)(η是学习率learning rate)
b = b-η(∂ L/∂ b) (4)
  在训练过程中常常会出现的两个问题:
  ①欠拟合根本原因是特征维度过少,模型过于简单,导致拟合的函数无法满足训练集,误差较大。解决方法:增加特征维度,增加训练数据;
  ②过拟合:根本原因是特征维度过多,模型假设过于复杂,参数过多,训练数据过少,噪声过多,导致拟合的函数完美的预测训练集,但对新数据的测试集预测结果差。 过度的拟合了训练数据,而没有考虑到泛化能力。解决方法:(1)减少特征维度;(2)正则化,降低参数值。

3.2卷积神经网络

我们应用深度学习方法分析图像时,由于图像的特殊性质:平移不变性、旋转/视角不变性、尺寸不变性等,处理图像常用的是卷积神经网络。经典卷积神经网络结构如图7:
                            
                                          图7: 卷积神经网络
   与普通神经网络相比,增加的是卷积层和池化层。
   卷积过程(图8):我们通常采用3×3、5×5或7×7卷积核(卷积核中的数字就是权重)在图像做滑动卷积,自动提取图像高维特征(一个卷积核在图像上的滑动卷积,应用了权值共享的思想;由于卷积核指定的是一个区域,应用了局部感知的思想)。

                           

                                         图8 图像卷积
   池化过程:一般采用2×2的窗口,使用最大池化和平均池化。图9使用的2×2窗口,应用最大池化(池化过程使图像数据量大大减少,应用了下采样思想)。
                            
                                          图9 池化
  增加卷积层和池化层目的是减少数据量,并能提取图像的所有特征。

  • kaggle猫狗训练就是应用的卷积神经网络模型AlexNet,具体实验和源代码请参考猫狗训练

深度学习—神经网络和卷积神经网络简单介绍相关推荐

  1. 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-04-基于Python的LeNet之MLP

    原文地址可以查看更多信息 本文主要参考于:Multilayer Perceptron  python源代码(github下载 CSDN免费下载) 本文主要介绍含有单隐层的MLP的建模及实现.建议在阅读 ...

  2. 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-03-基于Python的LeNet之LR

    原地址可以查看更多信息 本文主要参考于:Classifying MNIST digits using Logistic Regression  python源代码(GitHub下载 CSDN免费下载) ...

  3. 深度学习21天——卷积神经网络(CNN):实现mnist手写数字识别(第1天)

    目录 一.前期准备 1.1 环境配置 1.2 CPU和GPU 1.2.1 CPU 1.2.2 GPU 1.2.3 CPU和GPU的区别 第一步:设置GPU 1.3 MNIST 手写数字数据集 第二步: ...

  4. 深度学习教程(10) | 卷积神经网络解读(吴恩达·完整版)

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/35 本文地址:http://www.showmeai.tech/article-det ...

  5. 深度学习笔记:卷积神经网络的可视化--卷积核本征模式

    目录 1. 前言 2. 代码实验 2.1 加载模型 2.2 构造返回中间层激活输出的模型 2.3 目标函数 2.4 通过随机梯度上升最大化损失 2.5 生成滤波器模式可视化图像 2.6 将多维数组变换 ...

  6. 吴恩达.深度学习系列-C4卷积神经网络-W2深度卷积模型案例

    吴恩达.深度学习系列-C4卷积神经网络-W2深度卷积模型案例 (本笔记部分内容直接引用redstone的笔记http://redstonewill.com/1240/.原文整理的非常好,引入并添加我自 ...

  7. Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类)

    Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类) 1.卷积神经网络 1.1卷积神经网络简介 1.2卷积运算 1.3 深度学习与小数据问题的相关性 2.下载数据 2.1下载原始数据 ...

  8. 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理(1)

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  9. [人工智能-深度学习-33]:卷积神经网络CNN - 常见分类网络- LeNet网络结构分析与详解

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  10. 深度学习的数学-卷积神经网络的误差反向传播

    文章目录 前言 正文 卷积神经网络中的关系式 卷积层 池化层 输出层 平方误差(损失函数) 梯度下降法 卷积层和输出层的神经单元误差(重点) 输出层的神经单元误差计算 输出层的神经单元与其权重偏置的关 ...

最新文章

  1. C#学习笔记:多态与隐藏,覆盖
  2. vs中使用def导出函数
  3. JZOJ 3786. 【NOI2015模拟8.19】图
  4. 英文连词_连词我们…讨厌
  5. 软件工程实践2017结对第二次作业
  6. 三星S10+真机上手视频流出:屏下指纹让强迫症不忍直视
  7. php默认语法,PHP基本语法总结
  8. ospf多区域路由实验
  9. Java高级开发面试,Java面试没有项目经验
  10. iPhone 真机调试应用程序
  11. 树莓派与阿里云服务器进行socket通信
  12. 微信小程序选项卡页面切换
  13. (九)练习:美萍酒店管理系统-系统设置-删除类型、删除房间
  14. 随笔--你该如何利用自己的“暗时间”?
  15. java永久区_方法区、永久代和元空间Metaspace
  16. Bert源代码(二)模型
  17. 能源物联网及其关键技术
  18. 来自腾讯的高性能服务器架构思路
  19. 名帖14 吴让之 篆书《吴均帖》
  20. 单身公寓app开发,年轻人的租房首选

热门文章

  1. PyQt5 给QLabel添加点击事件
  2. java 2的n次方_Java程序练习-计算2的N次方 | 学步园
  3. CPU、核心数、线程数、运行内存、超线程理解
  4. 使用jQuery Easyui 制作的后台界面
  5. STC15W201S串口蓝牙通信PWM控制RGB彩灯
  6. 软件项目风险控制-公益讲座视频,供大家学习参考。
  7. CESM mpirun noticed that process rank 1 with PID 0 on node ubuntu exited on signal 11
  8. 什么是概率?对我有什么用?
  9. 百度指数批量查询获取工具
  10. 锁定计算机后qq能远程吗,如何通过QQ进行远程控制(利用QQ远程协助在不同网络下远程控制电脑)...