目录
What we will learn
-
Neural Networks and Deep Learning
-
Improve Neural Networks and Deep Learning : 超参数调整、正则化、诊断误差和方差、高级优化方法
-
Structuring our Machine Learning project
-
CNN
-
Natural Language Processing: Building sequence models (RNN、LSTM、NLP ) 用于语音识别、音乐编曲等等
一、什么是深度学习、神经网络
深度学习指的是训练神经网络。
1.1 最简单的神经网络
最简单的神经网络就是单元神经网络。
图中的圆圈即神经元(neuron),其功能为:输入房屋面积,完成线性运算并得到一个不为负的的值,最后得到输出的预测价格
如图所示的函数常常被引用,并被称为ReLU函数,即修正线性单元。(修正:得到一个不小于0的数)
1.2 更大的神经网络
复杂的神经网络就是用若干单元神经网络堆叠形成的。
形象的理解是:神经元就是一个简单的乐高积木,我们可以通过搭积木的方式来构建一个更大的神经网络。
如图就组成一个更大的神经网络,图中的这些圆圈通常被称为”隐藏单元“(hidden unit)。
事实上,我们可以发现,无论神经网络多大,我们需要做的就是获得需要输入数据(实际上,在project中通常都称之为特征),并将之输入到神经网络中,从而获得输出。这就是神经网络的作用,即:根据输入的数据,完成对应的计算过程,并得到一个用于输出的值(事实上,输出的值并不一定是真实值,而是我们通过神经网络预测(predict)得到的)
必须要说明的是,只有当我们给到足够的x、y 的值(作为训练样本)的时候,神经网络才能得到从 x 到 y 的精确映射关系。
二、通过神经网络进行监督学习
2.1 什么是监督学习
监督学习是机器学习中的一种训练方式/学习方式
正如我们在第一部分所提到的房价预测额模型一样,监督学习需要有明确的目标,很清楚自己想要什么结果。比如:按照“既定规则”来分类、预测某个具体的值。监督并不是指人站在机器旁边看机器做的对不对,而是下面的流程:
-
选择一个适合目标任务的数学模型
-
先把一部分已知的“问题和答案”(训练集)给机器去学习
-
机器总结出了自己的“方法论”
-
人类把”新的问题”(测试集)给机器,让他去解答
2.2 监督学习的主要任务
-
回归:预测连续的、具体的数值。比如:支付宝里的芝麻信用分数(下面有详细讲解)
-
分类:对各种事物分门别类,用于离散型预测
对于这两种主要任务所举示例的详细解答可以参考:一文看懂监督学习(基本概念+4步流程+9个典型算法)- 产品经理的人工智能学习库 (easyai.tech)
2.3 主流的监督学习算法
2.4 一些常见的深度学习模型
Standard NN、Convolutional NN(CNN,常用于图像数据)、Recurrent NN(RNN,常用一维序列数据,如:音频、语言、文本等等)
Structured Data:数据库/数据集。每个数据特征都有清晰的定义
Unstructured Data:音频、图像、文本...
三、神经网络的兴起
3.1 为什么神经网络在近年来兴起
图中,红线代表机器学习的性能表现,黄色代表微小数据集的深度学习的性能表现,蓝色代表中等数据集的深度学习的性能表现,绿色代表大规模数据集的深度学习的性能表现。达到这样高水平的性能,必须要满足以下两个条件:
-
必须要训练一个足够大的神经网络
-
必须要有一个大规模的数据集
一般来说,我们默认使用小写字母m来表示数据的规模大小。需要注意的是,在上图的左侧,即小规模数据集的时候,各种算法对应的性能的排名实际上并不那么严格,最终的性能取决于手工设计组件的性能。
3.2 是什么推动了神经网络的不断进展
一般来说,如果想要在神经网络上取得更好的表现,要么建立一个更大规模的神经网络,要么投入更多的数据。事实上,这几十年来,我们就是这样做的。尤其是在神经网络发展的初期,数据规模和计算机计算能力的扩展(特指:训练一个特别大规模神经网络的能力)使得我们在深度学习和神经网络领域突飞猛进。
但是,近年来,算法上的极大创新也同样提高了神经网络的性能。有趣的是,许多算法层面的创新都是为了让神经网络运行更快。