APP下载

机器学习速成 神经网络简介

消息来源:baojiabao.com 作者: 发布时间:2024-05-18

报价宝综合消息机器学习速成 神经网络简介

大家好,今天我们学习【机器学习速成】之 神经网络简介。

话题引出: 我们 马上学三点 ,

非线性分类问题神经网络启用函式大家可以点选下面的“ 了解更多 ”,或搜寻“ 马上学123 ”,线上观看PPT讲义。

简单非线性分类问题--特征交叉乘积

我们先看下面的资料集, 这是一个简单的非线性问题

非线性问题

通过之前特征组合那一节教程, 我们了解了对非线性问题进行建模的一种可行方法, 我们可以通过特征交叉乘积轻松解决这个问题。

更难的非线性分类问题--神经网络

但如果遇到稍微复杂点的问题, 我们该怎么办呢? 比如像这样的问题。

更难的非线性分类问题

从某种程度上讲, 我们得到的可能是一种互相交错的螺旋组合

很显然,我们的资料集可能会越来越复杂。 最终我们还是希望通过某种方式, 让模型自行学习非线性规律, 而不用我们手动为它们指定引数

这一愿景可以通过深度神经网络来实现, 深度神经网络可以非常出色地处理复杂资料, 例如图片资料、音讯资料以及视讯资料等等。

我们将在这一部分详细了解神经网络, 我们希望模型能够自行学习非线性规律, 而不用我们手动为它们指定引数。 那么我们该怎么做呢?

我们可能需要给模型新增一些额外结构,

线性模型

现在来看看我们的线性模型。 该模型中有一些输入, 每个输入都具有一个权重, 这些权重以线性方式结合到一起产生输出。

线性模型

增加复杂性:会是非线性?NO

非线性

如果我们想获得非线性规律, 则可能需要向该模型再新增一个层。 这样,我们可以通过良好的线性组合, 将这些输入新增到第二层。 第二层再以线性方式相结合, 但我们尚未实现任何非线性规律。 因为线性函式的线性组合依然是线性。 这还不够。 很明显, 我们还需要再新增一层,对吧?

我们在模型中再新增一层后, 该模型依旧是线性模型。 因为即便我们新增任意多的分层, 所有线性函式的组合依然是线性函式。

那么,我们就要从其他方面着手。

新增非线性函式(启用函式)

要对非线性问题进行建模, 我们需要新增非线性函式。 这种非线性函式可位于任何小的隐藏式节点的输出中。

启用函式

如图所示的模型中, 在隐藏层 1 中的各个节点的值传递到 下一层进行加权求和之前, 我们采用一个非线性函式对其进行了转换。 这种非线性函式称为启用函式, 其中一种常用的非线性启用函式叫做 修正线性单元启用函式(简称为 ReLU)。

我们喜爱的非线性函式

修正线性单元启用函式

ReLU会接受线性函式, 并在零值处将其截断。 如果返回值在零值以上, 则为线性函式。 如果函式返回值小于零,则输出为零。 这是一种最简单的非线性函式, 我们可以使用该函式来建立非线性模型。

实际上,所有数学函式均可作为启用函式。 TensorFlow 为各种启用函式提供开箱即用型支援。 但建议从 ReLU 着手。

神经网络的复杂性变化莫测

然后,我们可以将这些层级堆叠起来, 并建立任意复杂程度的神经网络。

神经网络的复杂性变化莫测

现在,当我们训练这些神经网络时, 很显然,我们面临的是非凸优化问题, 因此可能需要初始化。 我们训练这些神经网络时使用的方法叫做反向传播, 它是梯度下降法的变形。 而通过反向传播,我们能够以合理高效的方式, 对非凸优化问题执行梯度下降。

人们通常所说的“神经网络”的所有标准组件

一组节点,类似于神经元,位于层中。一组权重,表示每个神经网络层与其下方的层之间的关系。 下方的层可能是另一个神经网络层,也可能是其他型别的层。一组偏差,每个节点一个偏差。一个启用函式,对层中每个节点的输出进行转换。 不同的层可能拥有不同的启用函式。注意,神经网络不一定始终比特征组合好, 但它确实可以提供适用于很多情形的灵活替代方案。

总结:

神经网络是更复杂版本的特征组合。 实质上,神经网络会学习适合您的相应特征组合。要对非线性问题进行建模, 我们需要新增非线性函式。“神经网络”的标准组件,节点、权重、偏差、启用函式这里讲了三点,关键词有哪几个?

提问!神经网络一定比特征组合好吗?

欢迎回复评论

2019-10-20 14:57:00

相关文章