其他

小白都能看懂的神经网络入门,快收下吧~

2018-01-04 优达学城 码农翻身

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


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




线性节点 



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

1、最简单的线性节点: 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


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




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


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


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


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




线性节点实例



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

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



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


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




线性节点的表达力



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




线性节点的组合




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


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




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



2、多层线性节点:


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

多层线性节点实例


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


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





多层线性节点的表达力



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




总结


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


如果你也想加入人工智能浪潮,在职场中挖掘新的机会、成为顶尖技术人才,让来自硅谷的 Udacity 帮助你零基础成为机器学习高手!


硅谷前沿科技教育平台 Udacity 联合 Google、Kaggle、滴滴出行等行业顶尖企业,打造了“机器学习工程师”纳米学位项目,带你从零开始,全面掌握机器学习领域的核心知识,你会在入门课程中学习到数学基础和编程基础,在进阶课程中全面掌握机器学习领域核心知识,最终将预测模型实际应用于金融、医疗、大数据等领域,成为抢手机器学习工程师!



毕业时,你将做好准备,在人工智能、无人驾驶等应用方向上大展拳脚。你还将获得 Udacity 的就业推荐服务获得更多加入IBM、腾讯、滴滴出行等领先科技企业的机会!


Udacity 顶尖合作名企


在学习过程中,你不仅可以获得硅谷顶级讲师的指导,还将挑战超酷实战项目,并享受 Udacity 导师指导、逐行代码审核、同步学习小组等学习服务。每周投入10个小时,你就可以 零基础 成为 硅谷认证 的机器学习高手!



机器学习(入门)课程


一站式搞定入门机器学习所需要的编程和数学基础


Get 知识点:

掌握 Python、微积分、线性代数和统计基础知识,为成为机器学习工程师打好基础。




挑战硅谷实战项目:

你将挑战一系列有趣的实战项目,通过 learning by doing 的方式,快速成长为最前沿领域的优秀人才。





 如何加入这么酷的课程? 



扫描下方二维码,了解 机器学习基石纳米学位 详情:



课程将于 1月24日 正式开放报名!本期限定 200 席长按扫描上方二维码,加入开课通知群。


* 免费获得独家《机器学习终极职业指南》

* 体验硅谷式仿真课堂;

* 同行交流和课程答疑。


点击 [阅读原文] ,给自己一个成为硅谷认证机器学习工程师的机会!



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存