导语: 干货来了,Udacity课程经理亲自出马,教你简单形象有趣地掌握神经网络!
文/ 优达学城 Machine Learning 课程导师 Walker
编辑/ Walker的迷妹
最近,有网友在 Quora 上提问:对于那些非计算机科学行业的人,你会如何向他们解释机器学习和数据挖掘?
其实,斯坦福大学的印度学生、机器学习爱好者 PararthShah 在 2012年 12 月 22 日的使用买芒果的例子,非常经典易懂:
“你需要挑选芒果,你不知道什么样的芒果最好吃,所以你就尝遍了所有的芒果,然后自己总结出个大深黄色的比较好吃,以后再去买的时候,就可以直接挑选这种。那什么是机器学习呢,就是你让机器“尝”一遍所有芒果,当然,也假设它知道哪些好吃,让机器去总结一套规律(个大深黄色),这就是机器学习。具体操作,就是你描述给机器每一个芒果的特征(颜色,大小,软硬……),描述给机器其输出(味道如何,是否好吃),剩下的就等机器去学习出一套规则。“(此段引用知乎网友Begin Again的翻译)
那,如何用类似的方法,来简单、形象、有趣地解释神经网络呢?
今天优达菌请到了 Udacity 明星导师Walker来为大家现身说法,小白也能看得懂的神经网络入门,请大家收好了!
接到这个问题时,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
有时,我们希望即使输入全部为的时候,线形节点依然可以有输出,因此引入一个新的参数b作为偏差项,以此来增加模型的表达性。有时,为了简化,我们会把表达式写作aTx。此时,x= (x1,x2,...,xn,1),a= (a1,a2,...,an,b)
6、带激活函数的线性节点:
领取专属 10元无门槛券
私享最新 技术干货