如何通俗易懂的理解神经网络?
文章分类:APP开发问答 发布时间:2017-10-27 原文作者:Shi Yongfeng 阅读( )
提到“神经网络”这个词,多数人会联想到人工智能,这个当前互联网行业里最火热的技术。神经网络是一门既深奥又神秘,但也很牛掰,虽然部分人查了相关资料,可是仍然无法理解这门技术的原理和流程,所以,本文就产生了。笔者会以最通俗的说法,用最基础的数学知识给大家讲述一下什么是神经网络。
神经网络是什么
神经网络提及“神经”一词,是因为这门技术的工作原理和数据处理方式,与人的神经元对信号的处理机制比较相似,这里有点生物仿生学的味道。科学家一直在试图了解大自然其中的奥妙,从自然中汲取最有价值的信息,寻找灵感,但却忽略人的本身智慧。其实,人才是最需要了解自己的。
这里提到了“生物仿生学”,它是在初中课本上提到的一门技术,这门技术既古老又年轻,可以这样理解:
通俗的讲,人类通过了解自然界生命或非生命体的结构和功能工作原理,并经过不断的学习这些原理,来改进人类目前的技术,使生物学原理更加适用于人类的各项生产活动和生活
举个简单例子,菲尔普斯在奥运会时穿的鲨鱼皮游泳衣。这种游泳衣结构原理是仿鲨鱼鳞片的构造,鲨鱼的鳞片具有鳞突结构,在长度方向长有凹槽的鳞突,能够改变水在其表面的流动方向。并且,鳞突还可以阻止漩涡或者是湍流旋涡的形成。所以,这种泳衣可以使运动员在比赛过程中,减少更多的阻力以增加游动速度。不过,国际泳联已经明确禁止这类产品参加比赛了,因为这也太bug了。
仿生学何其强大,人类在研究人体结构时,发现神经元结构错综复杂,人类通过神经元的不断学习,可以认知各类事物,控制情绪,完善自我。当然,神经网络也就是仿照神经元的工作原理而创造出的一门技术。
人们在日常生活中情绪,嗅觉,触觉等等,都是通过多个神经元处理,而得到最终信号反馈。信号从左树突进入,经过轴突传到神经末梢,然后在传递给其它神经元。
单一的神经元是无法判断各类情绪,温度的,需要大量的神经元共同配合才能识别。也就是说,证明这个小明性别是男还是女,需要大量的神经元认同,并且通过神经元不断地学习,未来对男女的判断是瞬时完成的。
所以说,人的大脑才是最牛掰的神经网络。
神经元为什么精确度那么高?
人类自打婴儿时,就学会了认知这个世界,通过生活经历不断了解事物,辨识谁是萌猫,谁是小狗。多年的训练后,这种辨别的准确度可以达到100%。萌猫和小狗自身具备很多特点,人类通过不断的训练,记住了它们的特点,可以从视觉上进行区分,可以通过叫声区分,可以通过重量,体积,触感,味道区分。这些特点,强化了人对猫狗的记忆和辨识度,并最终得出准确的答案。所以,以后只要通过几个特点,就可以推导出正确的结论。
机器如何仿照神经元工作?
所以科学家不甘寂寞了,他们做个假设:如果机器也可以像神经元一样进行工作,那岂不是可以创造一个不需要休息的机器大脑?事实证明,这个假设是成立的。
冷启动的神经网络就是个白痴,什么也不懂,IQ基本为0。这个时候,如果你想让机器区分猫和狗,别妄想了!科学家仿照人类学习认知事物的流程来让机器去逐渐区分什么是猫和狗,从2个动物里,我们就告诉机器,哪个是猫,哪个是狗。这个过程就叫做,训练。
但是,当你把一群动物让机器去作区分时,机器懵逼了。不要慌,你要继续告诉机器,猫狗的其他特征,不断学习,不断验证。
机器如何识别特征?
对于机器来说,只能听懂特定的字符。不好意思,他不懂汉语。如果仅仅告诉机器这是猫,这是狗,那是不够的,需要把他们的所有特点转化为机器的语言,特定的数字,也就是经常说到的,特征提取。然后,机器再去存储学习这些数字,加强记忆。从机器的工作流程可以看出,神经网络算法的核心就是:计算、连接、评估、纠错、无限训练。但,问题又来了,当特征输入机器后,如何处理呢?
当然,这离不开数学。如果,把结论用数字1表示,把各个特征看成是x1,x2,x3…xn,这些特征通过某个权值(,所谓的激励函数,这个权值可以是多个,暂且用a,b,c,d表示)的加成,成为了1,最终训练出结论。如果,有新的特征进入,加入公式即可。
列个表达式(图来源网络),初始时,最简单的模型是这样,x+y=1
当有多个特征时,就会出现更为复杂的计算过程,
道理很简单,通过输入数据,调整激励函数,训练数据,得出结论。
图中(来源网络)圆圈代表神经元,箭头代表信号流转方向
输入层为特征,输出层为结论,2者的神经元是固定的,而隐藏层可以不断调整。
计算流程重要的不是神经元,而是数据流向,不同方向的数据会训练得到不同的权重,进而输出不同的结论。
当然,最终正确的结论只有一个。
结语
当然,本文仅是浅讲神经网络的原理,让大家更通俗易懂。其实,神经网络还分为人工神经网络和生物神经网络,而人工神经网络还能细分为前馈神经和反馈神经网络,这些概念,你都不需要了解。作为产品经理,关键点是在有预期目标的情况下,如何找到数据源,用哪些关键数据能实现我们想要的结论。剩余的,就放心的交给研发哥哥吧!