AI人工智能互联网科技每天写1000字

机器学习笔记015 | 神经网络算法介绍

2017-09-20  本文已影响176人  止一量化养家

这一次的笔记是关于神经网络(Neural Networks)算法的。

1 为什么要学习神经网络算法

在有了线性回归和逻辑回归算法之后,我们已经能够解决绝大部分的问题了。

那为什么还需要学习神经网络算法呢?

例如有这样的数据:

如果需要拟合这样的数据,那就需要构造一些多项式,如:

然后得到这样的拟合结果:

但实际的情况是,特征数量很可能不仅仅只有两个,也许几百上千个,那么这样的情况下,构造的多项式有多少呢?

例如特征数量 n = 100,如果只是计算二次项的话,最终也有大约为 n2 / 2 也就是 5000 个。

三阶、四阶、五阶那就更不用说了。

随着特征数量n的增大,高阶多项式的项数,会以几何级数递增。

举个例子,对于汽车的观察,我们看到的和计算机看到的,是不一样的东西:

对于计算机而言,它看到的是这些像素的亮度数据所形成的矩阵。

一个像素100×100的照片,也才几KB,其特征数量就有 n = 104 , 光是二阶多项式的项数就有 5 × 107 如果通过构建高阶多项式的方式进行拟合,那运算量就太大了。

而对于神经网络算法,即使特征数量n很大,也可以轻松搞定。

2 神经网络算法

2.1 神经网络算法是什么

神经网络算法其实是尝试模拟人脑运作方式的算法。

对于人脑而言,不同的信息来源对应着不同的信息处理系统,而这些系统组合起来,就构成了我们的神经网络。

例如眼睛看到“神经网络”这几个字的形状,然后将它会转换成对应的电信号,再往下传递。

大脑皮层的某个处理的部位,将这些电信号转换成我们能够理解的语言信息,我们就“看见”了“神经网络”这几个字。

这里眼睛是信号的输入端,如果更换成舌头呢?

上面这个图片,就是通过一个BrainPort的系统,利用舌头来“看”世界,让失明的人也能看见事物。

2.2 神经网络算法模型

为了更好地理解,我们首先看一下这个神经元细胞的图片:

这里树突是信号的接收端,可以接收来自其他神经元细胞的信号;细胞体是信号的处理端;轴突是信号的输出端,可以转递到其他的神经元细胞。

神经网络算法,就是要模拟一个个神经元细胞,通过输入和输出的联接,构成神经网络。

例如我们之前的逻辑回归模型,可以看作一个神经元细胞:

那么多个这样的神经元细胞组合起来,就构成了复杂神经网络:

这样复杂的结合,就能够实现类似于高阶多项式想要实现的效果。

文章转载自公众号:止一之路

上一篇 下一篇

猜你喜欢

热点阅读