深度学习概论
- 1.什么是神经网络?
- 2.用神经网络来监督学习
- 3.为什么神经网络会火起来?
1.什么是神经网络?
深度学习指的是训练神经网络。通俗的话,就是通过对数据的分析与计算发现自变量与因变量的映射关系(神经网络模型),这个映射关系可以是单层(一个神经元),也可以是网络(多个神经元),此过程可称为训练过程;其后根据此神经网络模型来对事物进行预测或分类。
通过一个例子来说明何为神经网络。房价的预测,影响房价的因素有很多,现在仅考虑房间大小,即只有一维特征。下图的红叉代表已知价格的房子大小,通过红叉,我们可以拟合出一条直线来“代表”房子大小与房价的关系。其实这也就是线性回归算法了,这里先不细说。而且由于房价没有负的,因此,直线与x轴交叉处到原点恒为0。此关系可称为ReLu函数(修正单元函数)。
绿色是新的房子大小,通过上面训练出来的模型,就可以预测出此房子大小对应的房价。这也就是神经网络在实际中的应用。
基于上面的讨论,其实是一个最简单的神经网络,因为一个输入x,经过模型,输出y。其模型可用下图表示:
圈圈就是一个神经元,它接受输入,经过自身内部的算法计算,得出输出y。每个神经元就是一个算法模型,此模型虽简单但也通过一个简单的算法模型来解决实际问题。
但是这是一个特征输入的,如果有n多维特征,模型是如何的呢?比如上面预测房价例子,影响房价的因素不仅只是房子大小,还有房子地段、基础设施、家庭人口等。在这里就引出了神经网络。神经网络是由n多个神经元堆叠而成的,接受的参数多了,输入经过神经网络得出的输出就更接近真实。房价预测的神经网络模型增加输入特征后可优化为下图,其实就是把多个神经元组成一个网络,模拟“人”的神经解决问题。
2.用神经网络来监督学习
现在的神经网络都基于其中一种机器学习,也可以成为“监督学习”。
- 监督学习就是用已知的数据来训练神经网络得出映射关系,然后使用这个映射关系来解决问题。
- 无监督学习中使用的数据是没有标记过的,即不知道输入数据对应的输出结果是什么,自己寻找数据的模型和规律。
监督学习(现实中创造价值),就是输入特征经过训练后的神经网络模型得出输出。下图很好的说明这点,输入x,经过神经网络,输出y。(在我看来也是信息转换的过程)
在实际中,有结构化数据和非结构化数据(注意,这个非是指不是完全只是结构体,就是说包括结构化和半结构化和非结构化)。结构化数据是行存储的,在数据库中一行数据是一个记录;但在非结构化数据中,是列存储的,而且在大数据时代,非结构化数据实质是稀疏的。所以结构化数据转换为矩阵计算时可以直接转换或者压缩维度。但是非结构化数据是稀疏矩阵,所以要做特殊处理,比如预测填补等。通过下图,可以清晰的看到一般情况下电商数据、广告数据等(很多的商业数据)是结构化的,但是对于图像,语音,文本等是非结构化的。因此,在实际应用神经网络时要做特殊处理。
神经网络可分为标准神经网络、卷积神经网络、循环神经网络。(此知识点等到后面学完再补充)如下图:
3.为什么神经网络会火起来?
神经网络的概念很早就开始有了,记得上本科的时候,上自动控制原理课程时,老师就提起过神经网络,只是当时对这方面的知识没什么关注。为什么现在突然火起来?在这里,先引出吴恩达老师“最喜欢”的图来解释。
横坐标是数据规模,纵坐标是算法性能。红线是一般传统的算法在数据规模逐渐增大的时候,性能的变化趋势,很明显可以看出来,传统算法在面对数据规模较大时表现为性能达到瓶颈。然而神经网络却不受数据规模的影响,神经网络的规模越大,在数据规模越大时效果越好。
以前为什么不流行?因为现在制造的数据是过去的n多倍,有句话说现在一个n产生的数据是19世纪一个人一年产生的数据规模。就单说现在的电商数据,其规模就远超以前。因此,以前传统的算法,在面对大数据表现为瓶颈,所以神经网络NN算法才会兴起。
4.小结
神经网络是由神经元组成的,单个神经元就是一个算法模型,由多个神经元组成的神经网络能够解决更复杂的问题。最后,说一句不是废话的废话:神经网络是很有用的。在面对大数据规模的情况下,可以利用它来达到业务应用的创新或优化。
未完,待续...