深度学习概论

  • 1.什么是神经网络?
  • 2.用神经网络来监督学习
  • 3.为什么神经网络会火起来?

1.什么是神经网络?

深度学习指的是训练神经网络。通俗的话,就是通过对数据的分析与计算发现自变量与因变量的映射关系(神经网络模型),这个映射关系可以是单层(一个神经元),也可以是网络(多个神经元),此过程可称为训练过程;其后根据此神经网络模型来对事物进行预测或分类。

通过一个例子来说明何为神经网络。房价的预测,影响房价的因素有很多,现在仅考虑房间大小,即只有一维特征。下图的红叉代表已知价格的房子大小,通过红叉,我们可以拟合出一条直线来“代表”房子大小与房价的关系。其实这也就是线性回归算法了,这里先不细说。而且由于房价没有负的,因此,直线与x轴交叉处到原点恒为0。此关系可称为ReLu函数(修正单元函数)。

绿色是新的房子大小,通过上面训练出来的模型,就可以预测出此房子大小对应的房价。这也就是神经网络在实际中的应用。

基于上面的讨论,其实是一个最简单的神经网络,因为一个输入x,经过模型,输出y。其模型可用下图表示:

圈圈就是一个神经元,它接受输入,经过自身内部的算法计算,得出输出y。每个神经元就是一个算法模型,此模型虽简单但也通过一个简单的算法模型来解决实际问题。

但是这是一个特征输入的,如果有n多维特征,模型是如何的呢?比如上面预测房价例子,影响房价的因素不仅只是房子大小,还有房子地段、基础设施、家庭人口等。在这里就引出了神经网络。神经网络是由n多个神经元堆叠而成的,接受的参数多了,输入经过神经网络得出的输出就更接近真实。房价预测的神经网络模型增加输入特征后可优化为下图,其实就是把多个神经元组成一个网络,模拟“人”的神经解决问题。

2.用神经网络来监督学习

现在的神经网络都基于其中一种机器学习,也可以成为“监督学习”。

  • 监督学习就是用已知的数据来训练神经网络得出映射关系,然后使用这个映射关系来解决问题。
  • 无监督学习中使用的数据是没有标记过的,即不知道输入数据对应的输出结果是什么,自己寻找数据的模型和规律。

监督学习(现实中创造价值),就是输入特征经过训练后的神经网络模型得出输出。下图很好的说明这点,输入x,经过神经网络,输出y。(在我看来也是信息转换的过程)

在实际中,有结构化数据和非结构化数据(注意,这个非是指不是完全只是结构体,就是说包括结构化和半结构化和非结构化)。结构化数据是行存储的,在数据库中一行数据是一个记录;但在非结构化数据中,是列存储的,而且在大数据时代,非结构化数据实质是稀疏的。所以结构化数据转换为矩阵计算时可以直接转换或者压缩维度。但是非结构化数据是稀疏矩阵,所以要做特殊处理,比如预测填补等。通过下图,可以清晰的看到一般情况下电商数据、广告数据等(很多的商业数据)是结构化的,但是对于图像,语音,文本等是非结构化的。因此,在实际应用神经网络时要做特殊处理。

神经网络可分为标准神经网络、卷积神经网络、循环神经网络。(此知识点等到后面学完再补充)如下图: 

3.为什么神经网络会火起来?

神经网络的概念很早就开始有了,记得上本科的时候,上自动控制原理课程时,老师就提起过神经网络,只是当时对这方面的知识没什么关注。为什么现在突然火起来?在这里,先引出吴恩达老师“最喜欢”的图来解释。

横坐标是数据规模,纵坐标是算法性能。红线是一般传统的算法在数据规模逐渐增大的时候,性能的变化趋势,很明显可以看出来,传统算法在面对数据规模较大时表现为性能达到瓶颈。然而神经网络却不受数据规模的影响,神经网络的规模越大,在数据规模越大时效果越好。

以前为什么不流行?因为现在制造的数据是过去的n多倍,有句话说现在一个n产生的数据是19世纪一个人一年产生的数据规模。就单说现在的电商数据,其规模就远超以前。因此,以前传统的算法,在面对大数据表现为瓶颈,所以神经网络NN算法才会兴起。

4.小结

神经网络是由神经元组成的,单个神经元就是一个算法模型,由多个神经元组成的神经网络能够解决更复杂的问题。最后,说一句不是废话的废话:神经网络是很有用的。在面对大数据规模的情况下,可以利用它来达到业务应用的创新或优化。

未完,待续...

《Andrew Ng深度学习》笔记1的更多相关文章

  1. Java内存区域与内存溢出异常——深入理解Java虚拟机 笔记一

    Java内存区域 对比与C和C++,Java程序员不需要时时刻刻在意对象的创建和删除过程造成的内存溢出.内存泄露等问题,Java虚拟机很好地帮助我们解决了内存管理的问题,但深入理解Java内存区域,有 ...

  2. 深入理解java虚拟机笔记Chapter12

    (本节笔记的线程收录在线程/并发相关的笔记中,未在此处提及) Java内存模型 Java 内存模型主要由以下三部分构成:1 个主内存.n 个线程.n 个工作内存(与线程一一对应) 主内存与工作内存 J ...

  3. 深入理解Java虚拟机笔记

    1. Java虚拟机所管理的内存 2. 对象创建过程 3. GC收集 4. HotSpot算法的实现 5. 垃圾收集器 6. 对象分配内存与回收细节 7. 类文件结构 8. 虚拟机类加载机制 9.类加 ...

  4. 深入理解java虚拟机笔记Chapter7

    虚拟机类的加载机制 概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类的加载机制. 类加载的时机 J ...

  5. 深入理解java虚拟机笔记之一

    Java的技术体系主要有支撑java程序运行的虚拟机,提供各开发领域接口支持Java API,java编程语言及许多第三方java框架( 如Spring,Structs等)构成. 可以把Java程序设 ...

  6. 深入理解Java虚拟机笔记——虚拟机类加载机制

    目录 概述 动态加载和动态连接 类加载的时机 类的生命周期 被动引用 例子一(调用子类继承父类的字段) 例子二(数组) 例子三(静态常量) 类加载的过程 加载 验证 准备 解析 符号引用 直接引用 初 ...

  7. 【转载】深入理解Java虚拟机笔记---运行时栈帧结构

    栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(Virtual Machine Stack)的栈元素.栈帧存储了方法的局部变量表,操作 ...

  8. 深入理解java虚拟机笔记Chapter8

    运行时栈帧结构 栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素.栈帧存储了方法 ...

  9. 深入理解java虚拟机笔记Chapter2

    java虚拟机运行时数据区 首先获取一个直观的认识: 程序计数器 线程私有.各条线程之间计数器互不影响,独立存储. 当前线程所执行的字节码行号指示器.字节码解释器工作时通过改变这个计数器值选取下一条需 ...

  10. 类文件结构——深入理解Java虚拟机 笔记三

    在之前的笔记中记录过,Java程序变成可执行文件的步骤是:源代码-->经过编译变成class文件-->经过JVM虚拟机变成可执行的二进制文件.因此,为了对JVM执行程序的过程有一个好的了解 ...

随机推荐

  1. alsa-lib及alsa-utils成功移植(原…

    准备工作 alsa-lib版本:alsa-lib-1.0.23.tar.bz2 alsa-util版本:alsa-utils-1.0.23.tar.bz2 其他版本的alsa-lib和alsa-uti ...

  2. 2-2+CPU多级缓存-乱序执行优化

  3. Tensorflow学习(练习)—使用inception做图像识别

    import osimport tensorflow as tfimport numpy as npimport re from PIL import Imageimport matplotlib.p ...

  4. 怎样使用Mock Server

    转载自:http://www.cnblogs.com/111testing/p/6091460.html 怎样使用Mock Server   一,去这里https://github.com/dream ...

  5. Linux文件系统操作命令

    Linux文件系统操作命令 文件系统操作命令: 1. cat:可以显示文件的内容(经常和more搭配使用),或将多个文件合并成一个文件. 2. chgrp:用来改变文件或目录所属的用户组,命令的参数以 ...

  6. c语言学习笔记 if语句执行流程和关系运算符

    回想现实生活中,我们会遇到这样的情况,如果下雨了就带伞上班,如果没下雨就不带伞上班,这是很正常的逻辑.程序是解决生活中的问题的,那么自然在程序中也需要这样的判断,当满足某个条件的时候做一件事情,这种东 ...

  7. 数据库 MySQL 之 基本概念

    数据库 MySQL 之 基本概念 浏览目录 概述 数据库的特点 数据库的分类 选择MySQL的理由 & MariaDB 介绍 下载及安装 SQL介绍 一.概述 1.数据(data) 存储在表中 ...

  8. React官方网站学习

    React官方网站  英文版 https://reactjs.org/tutorial/tutorial.html React官方网站  中文版 https://react.docschina.org ...

  9. ASP.NET MVC 3 and the @helper syntax within Razor

    Friday, May 13, 2011 ASP.NET MVC 3 supports a new view-engine option called “Razor” (in addition to ...

  10. Redesign Your App for iOS 7 之 页面布局【转】

    前言 iOS7是目前iOS史上最颠覆的一次改版. 它的出现令人兴奋,因为它将会带我们进入一个全新的时代: 它的到来也让我们忧心,因为它颠覆了一切,包括我们过去做过的很多努力. 但是,相信大家乐意为这个 ...