【DLND 机器学习算法全栈工程师】干货!小白也能看懂的神经网络入门

导语: 干货来了,Udacity Machine Learning 课程导师 Walker 亲自出马,教你简单形象有趣地掌握神经网络!

神经网络是什么?神经网络就是一系列简单的节点,在简单的组合下,表达一个复杂的函数。下面我们来一个个解释。

线性节点

节点是一个简单的函数模型,有输入,有输出。

1、最简单的线性节点: x+y

我能想到的最简单的线性节点当然就是 x + y

2、参数化线形节点:ax+by

x + y 是一个特殊的线形组合,我们可以一般化所有x, y的线性组合, 即 ax + by。这 a, b 就是这个节点的参数。不同的参数可以让节点表示不同的函数,但节点的结构是一样的。

3、多输入线性节点: a1x1 + a2x2 + a3x3+...+anxn

我们进一步把 2 个输入一般化成任意多个输入。这里 a1,a2,a3,...an 是这个节点的参数。同样,不同的参数可以让节点表示不同的函数,但节点的结构是一样的。注意 n 并非是这个节点的参数,输入个数不同的节点结构是不一样的。

4、 线性节点的向量表达:aTx

上面的式子太过冗长,我们用向量 x 表示输入向量 (x1, x2, . . . , xn), 用向量 a 表示参数向量 (a1,a2,...,an),不难证明aTx=a1x1 +a2x2 +a3x3+...+anxn。这里向量 a 就是这个节点的参数,这个参数的维度与输入向量的维度相同。

5、带常量的线性节点:aTx+b

有时, 我们希望即使输入全部为 0 的时候,线形节点依然可以有输出,因此引入一个新的参数 b 作为偏差项,以此来增加模型的表达性。有时,为了简化,我们会把表达式写作 aT x此时,x = (x1,x2,...,xn,1),a = (a1,a2,...,an,b)

6、带激活函数的线性节点: 1(aT x + b > 0)

对于二项分类问题,函数的输出只是真或假,即 0 或 1。函数 1 : R → {1, 0} 将真命题映射到 1, 将假命题映射到 0。

线性节点实例

1、线性节点表达 x y (或函数) ,或函数的真值表如下:

定义节点 1(x + y − 0.5 > 0), 不难验证,它与 x y 是等价的。

2、线性节点表达 x ∧ y (与函数) ,与函数的真值表如下:

定义节点 1(x + y − 1.5 > 0), 不难验证,它与 x y 是等价的。

线性节点的表达力

单个线性节点可以表达所有线性函数(函数值域为实数集)、以及所有线性可分的分类 (函数值域为{0, 1})。概念定义和命题的证明我们这里不再阐述。虽然单个线性节点已经很强 ,但依然有图的局限性。对于线性不可分的函数,它无能为力, 例如异或函数 x y

线性节点的组合

1、多个线性节点同层组合:WTx

上述的线性节点输入是多维的,但输出只是一维,即一个实数。如果我们想要多维的输出,那么就可以并列放置多个节点。a1 ,a2 ,...,am 分别是 m 个节点的参数,那么输出则分别为 a1Tx,a2Tx,...,amT x. 最终的输出结果为

其中 W = [a1,a2,...,am] 是一个 n 行m 列的参数矩阵。

2、多层线性节点:

多层线性节点中,某一层带激活函数的线性节点,输出作为下一层的输入 。通常中间层(或者隐藏层,图中的蓝色节点)会带有一个激活函数,来增加模型的表达力 。(思考: 如果隐藏层没有激活函数,为什么两层线性节点和一层等价?)

多层线性节点实例

1. 多层表达异或函数 x y,异或函数的真值表为:

这是一个不可线性分隔的函数,不可以一个线性节点表达。但我们可以使用多层的线性节点来完成这个任务。

多层线性节点的表达力

可以证明,多层神经元可以表达所有连续函数。证明比较复杂,有兴趣的粉丝可以去看下: A visual proof that neural nets can compute any function

总结

其实在本篇文章中,我们还有很多常见的节点没有讲到, 如 ReLu, sigmoid, dropout 等。神经网络不仅有正向计算,还有反向传导,这些节点的出现和反向传导息息相关……

原文发布于微信公众号 - 机器学习算法全栈工程师(Jeemy110)

原文发表时间:2018-01-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杂七杂八

信息增益matlab实现

一般地,一个决策树包含一个根节点,若干个内部节点和若干个叶节点,叶结点对应决策结果,其他每个节点对应于一个属性测试,每个结点包含的样本集合根据属性测试的结果被划...

40480
来自专栏null的专栏

简单易学的机器学习算法——Logistic回归

一、Logistic回归的概述     Logistic回归是一种简单的分类算法,提到“回归”,很多人可能觉得与分类没什么关系,Logistic回归通过对数据分...

35850
来自专栏YoungGy

记忆网络RNN、LSTM与GRU

RNN 结构 训练 应用 RNN Variants LSTM 结构 梯度消失及梯度爆炸 GRU 结构 ? 一般的神经网络输入和输出的维度大小都是固定的,针对序列...

401100
来自专栏量化投资与机器学习

深度学习理论系列之——模型方法

深度学习的模型方法及应用 上一次我发了关于深度学习基本理论与方法的文章,大家反响还不错,今天继续 上次的知识,对深度学习再做一些基础性的理论介绍,希望大家多多指...

26860
来自专栏自学笔记

Neural Network

重新回顾一下一开始学的PLA,preceptron learning Algorithm。PLA适用于二维及高维的线性可分的情况,如果是非线性可分的数据,如果使...

24620
来自专栏null的专栏

深度学习算法原理——栈式自编码神经网络

注:最近打算将UFLDL教程重新看一遍,其实里面有很多关于神经网络以及深度学习的知识点很有用,但是只是学习深度学习的话有一些内容就有点多余,所以想整理一个笔记,...

40650
来自专栏专知

【干货】走进神经网络:直观地了解神经网络工作机制

【导读】1月4日,Mateusz Dziubek发布了一篇基础的介绍神经网络的博文,作者用一种直观的方法来解释神经网络以及其学习过程,作者首先探讨了导致神经网络...

388130
来自专栏智能算法

三个臭皮匠顶个诸葛亮的随机森林算法!

随机森林一个已被证明了的成功的集成分类器,特别是用在多维分类问题上更是体现出其强大之处。一个随机森林是一个决策树的集合,可以看作是一个分类器包括很多不同的决策...

441120
来自专栏企鹅号快讯

DL笔记:Activation Function 激活函数

:阿特,今天我们来了解一下深度学习中的激活函数 (Activation functions)。 :又是函数……为什么要了解这个哦…… :在机器学习中,我们经常需...

241100
来自专栏机器学习算法与Python学习

机器学习(15)之支持向量机原理(一)线性支持向量机

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 前言 支持向量机(Support V...

39860

扫码关注云+社区

领取腾讯云代金券