《Andrew Ng深度学习》笔记1
深度学习概论
- 1.什么是神经网络?
- 2.用神经网络来监督学习
- 3.为什么神经网络会火起来?
1.什么是神经网络?
深度学习指的是训练神经网络。通俗的话,就是通过对数据的分析与计算发现自变量与因变量的映射关系(神经网络模型),这个映射关系可以是单层(一个神经元),也可以是网络(多个神经元),此过程可称为训练过程;其后根据此神经网络模型来对事物进行预测或分类。
通过一个例子来说明何为神经网络。房价的预测,影响房价的因素有很多,现在仅考虑房间大小,即只有一维特征。下图的红叉代表已知价格的房子大小,通过红叉,我们可以拟合出一条直线来“代表”房子大小与房价的关系。其实这也就是线性回归算法了,这里先不细说。而且由于房价没有负的,因此,直线与x轴交叉处到原点恒为0。此关系可称为ReLu函数(修正单元函数)。
绿色是新的房子大小,通过上面训练出来的模型,就可以预测出此房子大小对应的房价。这也就是神经网络在实际中的应用。

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

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

2.用神经网络来监督学习
现在的神经网络都基于其中一种机器学习,也可以成为“监督学习”。
- 监督学习就是用已知的数据来训练神经网络得出映射关系,然后使用这个映射关系来解决问题。
- 无监督学习中使用的数据是没有标记过的,即不知道输入数据对应的输出结果是什么,自己寻找数据的模型和规律。
监督学习(现实中创造价值),就是输入特征经过训练后的神经网络模型得出输出。下图很好的说明这点,输入x,经过神经网络,输出y。(在我看来也是信息转换的过程)

在实际中,有结构化数据和非结构化数据(注意,这个非是指不是完全只是结构体,就是说包括结构化和半结构化和非结构化)。结构化数据是行存储的,在数据库中一行数据是一个记录;但在非结构化数据中,是列存储的,而且在大数据时代,非结构化数据实质是稀疏的。所以结构化数据转换为矩阵计算时可以直接转换或者压缩维度。但是非结构化数据是稀疏矩阵,所以要做特殊处理,比如预测填补等。通过下图,可以清晰的看到一般情况下电商数据、广告数据等(很多的商业数据)是结构化的,但是对于图像,语音,文本等是非结构化的。因此,在实际应用神经网络时要做特殊处理。
神经网络可分为标准神经网络、卷积神经网络、循环神经网络。(此知识点等到后面学完再补充)如下图: 
3.为什么神经网络会火起来?
神经网络的概念很早就开始有了,记得上本科的时候,上自动控制原理课程时,老师就提起过神经网络,只是当时对这方面的知识没什么关注。为什么现在突然火起来?在这里,先引出吴恩达老师“最喜欢”的图来解释。

横坐标是数据规模,纵坐标是算法性能。红线是一般传统的算法在数据规模逐渐增大的时候,性能的变化趋势,很明显可以看出来,传统算法在面对数据规模较大时表现为性能达到瓶颈。然而神经网络却不受数据规模的影响,神经网络的规模越大,在数据规模越大时效果越好。
以前为什么不流行?因为现在制造的数据是过去的n多倍,有句话说现在一个n产生的数据是19世纪一个人一年产生的数据规模。就单说现在的电商数据,其规模就远超以前。因此,以前传统的算法,在面对大数据表现为瓶颈,所以神经网络NN算法才会兴起。
4.小结
神经网络是由神经元组成的,单个神经元就是一个算法模型,由多个神经元组成的神经网络能够解决更复杂的问题。最后,说一句不是废话的废话:神经网络是很有用的。在面对大数据规模的情况下,可以利用它来达到业务应用的创新或优化。
未完,待续...
《Andrew Ng深度学习》笔记1的更多相关文章
- Java内存区域与内存溢出异常——深入理解Java虚拟机 笔记一
Java内存区域 对比与C和C++,Java程序员不需要时时刻刻在意对象的创建和删除过程造成的内存溢出.内存泄露等问题,Java虚拟机很好地帮助我们解决了内存管理的问题,但深入理解Java内存区域,有 ...
- 深入理解java虚拟机笔记Chapter12
(本节笔记的线程收录在线程/并发相关的笔记中,未在此处提及) Java内存模型 Java 内存模型主要由以下三部分构成:1 个主内存.n 个线程.n 个工作内存(与线程一一对应) 主内存与工作内存 J ...
- 深入理解Java虚拟机笔记
1. Java虚拟机所管理的内存 2. 对象创建过程 3. GC收集 4. HotSpot算法的实现 5. 垃圾收集器 6. 对象分配内存与回收细节 7. 类文件结构 8. 虚拟机类加载机制 9.类加 ...
- 深入理解java虚拟机笔记Chapter7
虚拟机类的加载机制 概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类的加载机制. 类加载的时机 J ...
- 深入理解java虚拟机笔记之一
Java的技术体系主要有支撑java程序运行的虚拟机,提供各开发领域接口支持Java API,java编程语言及许多第三方java框架( 如Spring,Structs等)构成. 可以把Java程序设 ...
- 深入理解Java虚拟机笔记——虚拟机类加载机制
目录 概述 动态加载和动态连接 类加载的时机 类的生命周期 被动引用 例子一(调用子类继承父类的字段) 例子二(数组) 例子三(静态常量) 类加载的过程 加载 验证 准备 解析 符号引用 直接引用 初 ...
- 【转载】深入理解Java虚拟机笔记---运行时栈帧结构
栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(Virtual Machine Stack)的栈元素.栈帧存储了方法的局部变量表,操作 ...
- 深入理解java虚拟机笔记Chapter8
运行时栈帧结构 栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素.栈帧存储了方法 ...
- 深入理解java虚拟机笔记Chapter2
java虚拟机运行时数据区 首先获取一个直观的认识: 程序计数器 线程私有.各条线程之间计数器互不影响,独立存储. 当前线程所执行的字节码行号指示器.字节码解释器工作时通过改变这个计数器值选取下一条需 ...
- 类文件结构——深入理解Java虚拟机 笔记三
在之前的笔记中记录过,Java程序变成可执行文件的步骤是:源代码-->经过编译变成class文件-->经过JVM虚拟机变成可执行的二进制文件.因此,为了对JVM执行程序的过程有一个好的了解 ...
随机推荐
- wpa_supplicant移植与使用(转)
下载wpa_supplicant最新版和openssl(编译wpa_supplicant需要openssl的库) 我这里使用的是wpa_supplicant-0.7.3.tar.gz和openssl- ...
- Timer定时函数的用法
- Using native JSON
文介绍了兼容ECMAScript 5 标准的原生JSON对象. 在不支持原生JSON对象的旧版本Firefox中,该如何处理JSON数据.请查看 JSON. 原生JSON对象包含有两个关键方法.JSO ...
- 2014蓝桥杯B组初赛试题《切面条》
题目描述: 一根高筋拉面,中间切一刀,可以得到2根面条. 如果先对折1次,中间切一刀,可以得到3根面条. 如果连续对折2次,中间切一刀,可以得到5根面条. 那么,连续对折10次 ...
- os.chdir("/deepmatching") OSError: [Errno 2] No such file or directory: '/deepmatching'
#os.chdir("/deepmatching")os.chdir(os.path.dirname(os.path.abspath("deepmatching1&quo ...
- 125. Valid Palindrome判断有效的有符号的回文串
[抄题]: Given a string, determine if it is a palindrome, considering only alphanumeric characters and ...
- 61-结点选择(树形dp)
http://lx.lanqiao.cn/problem.page?gpid=T14 算法训练 结点选择 时间限制:1.0s 内存限制:256.0MB 问题描述 有一棵 n 个 ...
- SqlServer——用户定义函数
根据用户定义函数返回值的类型,可将用户定义函数分为如下三个类别: (1) 返回值为可更新表的函数 若用户定义函数包含单个 SELECT 语句且该语句可更新,则该函数返回的表也可更新,这样的函数称为内嵌 ...
- 【Android学习】实现卡片式ListView
效果: 主要是设置xml文件 两种状态下的item card_background.xml <?xml version="1.0" encoding="utf-8& ...
- DELPHI XE5 UP2 无真机输出 APP并转换为IPA(实践整理)
1.在Mac上配置开发环境(具体步骤请百度) XCODE5.1+IOS7.1SDK+COMMAND LINE TOOLS 安装PlatformAssistant 买一个真机调试账号(实际测 ...