大数据人工智能/模式识别/机器学习精华专题机器学习和人工智能入门

神经网络(一):神经元模型与逻辑回归

2018-09-28  本文已影响5人  tgbaggio

一、仿生学

在经典的机器学习领域,有很多不同类型的模型,它们大致可以分为两类:一类是比较注重模型可解释性的传统统计模型,比如线性回归和逻辑回归;另一类是侧重于从结构上“模仿”数据的机器学习模型,比如监督式学习SVM和非监督式学习KMeans。

这些模型虽然在结构和形态上千差万别,但它们有一个共同的建模理念,就是首先对数据做假设,然后根据这些假设进行数学推导,并最终得到模型的公式。其中最核心的部分就是模型的假设,它直接决定了模型的适用范围,也是模型效果的保障。这些模型不但能对未知数据做预测,还能帮助我们去理解数据之间的相关关系。

但神经网络或者深度学习是一种全新的建模理念,它并不关心模型的假设以及相应的数学推导,也就是说它并不关心模型的可解释性。这个理念的目的是借鉴仿生学[1]的思路,利用计算机和数学模型去模拟人的大脑,因此,其中最核心的内容就是工程实现。从模型角度来讲,这种理念的建模起点是最终的模型公式,而模型效果的保障是,这样的模型能在一定程度上模仿大脑,而大脑是人类智能的基础。

这种理念下设计出来的模型有很多酷炫的名字,比如神经网络、人工智能以及深度学习等。这类模型虽然难以理解或者更准确地说,到目前为止人类还无法理解,但在某些特定应用场景里的预测效果却出奇得好,因此也常常引起争论。一部分人认为,目前的人工智能热只是一个泡沫,整个学科并没有实质性的突破;另一部分人认为人工智能已经在突破的前夜,在不远的未来,它将给人类带来巨大的便利;还有一部分人认为人工智能是极其危险的东西,我们正在创造一种新的具有智能的“生命”,也许在不远的未来,这种人造的智能会统治地球并最终毁灭人类,就像很多科幻电影里的情节那样。

以上这3种观点都有其道理[2],本系列文章并不打算加入这种宏观议题争论,而是采取中立立场讨论相关的技术细节和发展趋势。相信读者通过这个系列的文章了解了人工智能的基础知识后,会对上面的话题有自己的观点。

二、神经元

由于神经网络的模拟对象是人的大脑,那么在讨论具体的模型之前,我们有必要先从生物学的角度来看看人的大脑有哪些特性。

根据生物学的研究,人脑的计算单元是神经元(neuron)。它能根据环境变化做出反应,再将信息给其他的神经元。在人脑中,大约有860亿个神经元,它们相互联结构成了极其复杂的神经系统,而后者正是人类智慧的物质基础。因此遵循人脑的生物结构,我们首先需要搭建模型来模拟人的神经元。

如图1所示,一个典型的神经元由4个部分组成。

图1

将上述的神经元结构抽象成数学概念,可以得到如图1所示的神经元模型。

在神经元模型中,非线性的激活函数f是整个模型的核心。在最初的神经元模型中[4],的定义是非常直观的,当函数的自变量大于某个阈值时,则等于1,否则等于0。具体的公式如下:

f = \begin{cases} 1, x > 0\\0, x <= 0 \end{cases} \tag{1}

这个模型在学术上被称为感知器(perceptron),它可被用来解决二元分类问题(因为模型的输出是0或1)。感知器虽然在某种程度上模拟了神经元里轴突的行为,但处理方式有些太过粗糙了,因为在生物学上,神经元输出的是一个连续值而非离散值。这导致感知器的模型效果很一般。为了改进这一点,通常使用sigmoid函数(sigmoid function,也称为S函数)来作为神经元的激活函数[5],这样的模型被称为sigmoid神经元(sigmoid neuron)。

三、Sigmoid神经元与二元逻辑回归

Sigmoid函数在数据科学领域是一个非常重要的函数。特别是在神经网络和深度学习领域,我们会经常见到它。sigmoid的函数图像呈S形状,因此也常被称为S函数,具体的公式如下:

S(z) = \frac{1}{1 + e^{-z}}\tag{2}

使用sigmoid函数作为神经元里的激活函数有两大好处。从实用的角度来讲,sigmoid函数能将任意的实数值映射到(0, 1)区间,当公式(2)中的变量z是很大的负数时,函数值接近0;当变量z是很大的正数时,函数值接近1。这个特性在神经元上也能找到很好的解释:函数值接近0表示神经元没被激活,而函数值接近1表示神经元完全被激活。

从理论的角度来讲,sigmoid函数模拟了两种效应的相互竞争:假设正效应和负效应都和自变量X = (x_1, x_2, ..., x_k)是近似线性关系。具体的公式如下,其中,Y^*表示正效应,Y^{\sim}表示负效应,W_i = (w_{i, 1}, w_{i, 2}, ..., w_{i, k})b_i是模型参数,\theta\tau是服从正态分布的随机干扰项。

Y^* = XW_1^T + b_1 + \theta \\ Y^\sim = XW_2^T + b_2 + \tau \tag{3}

数学上可以证明,正效应大于负效应的概率可由一个sigmoid函数来近似,如公式(4)所示。

P(Y^* - Y^\sim) = S(XW^T + b) \tag{4}

因此在神经元模型里使用sigmoid函数,就相当于给神经元的输出赋予了概率意义,这使得模型的理论基础更加扎实,也使得模型能被用于解决二元分类问题,比如当sigmoid神经元的输出大于0.5时,则预测类别为1,否则预测类别为0。值得注意的是,在这种情况下,sigmoid神经元其实就是二元逻辑回归模型,如图2所示。

图2

四、广告时间

这篇文章的大部分内容参考自我的新书《精通数据科学:从线性回归到深度学习》

李国杰院士和韩家炜教授在读过此书后,亲自为其作序,欢迎大家购买。


  1. 仿生学(bionics)是模仿生物的特殊本领的一门科学,它在了解生物结构和功能原理的基础上,来研制新的机械和新的技术。以上简介参考自维基百科

  2. 这3种观点的论据和逻辑超出了本书的讨论范围,在此就不做展开,仅列举它们背后的权威支持者。
    机器学习领域重要的学者迈克尔·I.乔丹(Michael I. Jordan)教授就持第一种观点,他认为我们离接近人类水平的人工智能还很远。虽然在某些领域,可以用神经网络来“伪造”智能,但理智来说,这并不是智能。
    另一位很知名的学者吴恩达(Andrew Ng,他是迈克尔·I.乔丹的学生)以及企业家扎克伯格(Mark Zuckerberg)持第二种观点。他们对人工智能的发展表示乐观,主张人工智能是一场新的工业革命,将会像电力一样改变工业以及人类的生活。
    来自业界的比尔·盖茨(Bill Gates)和伊隆·马斯克(Elon Musk)则持第三种观点,他们认为虽然现阶段人工智能并没有表现出直接的危害,但按照现在的发展速度,在不远的将来(5年或者10年之内),我们将直接面对人工智能带来的威胁

  3. 在神经网络中,线性模型里的截距项是有特殊生物含义的,它通常对应着神经元的激活阈值,因此需要单独处理它

  4. Frank Rosenblatt于1957年在Cornell航空实验室(Cornell Aeronautical Laboratory)设计了第一款人工神经网络。这个最初版的神经网络其实是一台机器:由于当时的计算机还处在比较初级的阶段,因此专门设计了一台机器来实现这个模型

  5. 事实上基于工程实现上面的考虑,目前在实际应用中很少会使用sigmoid函数作为激活函数

上一篇下一篇

猜你喜欢

热点阅读