神经网络
简单感受
首先,提起神经网络,我们最为直观的感觉是——像大脑中一个个神经细胞连接起来的网状结构一样,这样的联想,可以说是通俗直观、不错的一个类比。
现在,在我们的大脑中,从一个简单的神经细胞开始说起。(不是重学生物,而是好形容,嘻嘻)
这一个神经元从它的神经突触接收电信号,经过神经元的简单处理,再传给下一个神经元或多个神经元。那么进行对比,我们深度学习中的神经网络,它的一个神经元就相当于一个函数,这个“函数”也需要接受某个输入,再经过一系列的函数关系计算,得到一个结果并输出,对此一个简单的神经元就完成了它的使命。
对于一个神经元是一个函数,那么对于神经网络就是函数网络啦。
形式介绍
前面说到,一个神经元相当于一个函数,那大脑的神经元的电信号处理方式我们不了解也没关系,但对于神经网络的“函数” 总要给你一个“完美的解释”吧。
那么接下来,我就以最为基础的线性神经网络来做个解释:
我们所提到的线性函数,也称之为一次函数:y=w*x+b,其中x是输入变量,y是对应的输出值,w是一次函数的斜率,b为图像上下偏移用的常量。在一个神经元当中正是对输入值进行了一次这样的函数计算,得到一个对应的输出值,而w和b在神经元会有一个初始值。(对于初始值的要求将在后续文章说明)
不不不,如果这样就结束了,神经元还能有什么功能性呢?(直接改叫“神经函数”好了)也无法体现出深度学习的特性呀~(这就要到一个神经元之所以能把一些y的输出识别为特定东西的特点啦)
那就是——激活函数Activation Function
在一次函数二分类中最为常用到的激活函数,有时也称为感知器——sigmoid函数(高数中,爱翻书的同学应该就会跟它见过面!)
通过它的函数图像就能看出,该函数能把所有的输入值进行函数计算后,都统一的得到一个值在 (0,1) 区间内的输出,那这样,对于二分类来说的好处就不言而喻了。我们计算机专业中,常把1/0来类比两种东西的分类,比如,在投骰子的游戏中,1代表超过3的情况,那么0就代表不超过3的情况。
当然,仔细看看就会发现,函数值只能不断的趋近于1或者0,并不能等于,那就以0.5的值为分界,大于的作为1的情况,小于的作位0的情况,就解决啦~(是不是很想一个“感知器”在二分不同的情况)
正是这样的一个一次函数+激活函数就构成了一个神经元内部所进行的计算,也就完成了一个神经元的任务。
那么许多个神经元以并联、串联的形式集合在一起,就构成了所谓的“神经网络”。
神经网络的疑问与设计(摘自:什么是神经网络?)
1.如何建模输入和输出?例如,如果输入是文本,我可以用什么建模?数字?还是向量?
2.每个神经元有哪些功能?(它们是线性?还是指数?…)
3.神经网络的架构是什么?(即哪个函数的输出是哪个函数的输入?)
4.我可以用哪些通俗易懂的词来描述我的网络?
一旦回答了以上这些问题,就可以向网络“展示”大量具有正确输入和输出的例子,神经网络学习后,当再次输入一个新的输入时,神经网络就会有个正确的输出。