发布网友 发布时间:2022-04-27 08:59
共2个回答
懂视网 时间:2022-04-18 10:20
深度学习这个词指的是训练神经网络。深代表着非常大的神经网络。那么神经网络到底是什么呢?看了这篇文章后你就会有很直观的认识了。本文主要介绍了简单了解什么是神经网络,具有一定借鉴价值,需要的朋友可以参考下。我们从一个房价预测的例子开始吧。因为现在房价太他妈贵了,早8年前我父母说帮我在北京买个房,我觉得不能靠家里人,所以拒绝了,现在想想,我就是个傻逼,那时候买了,我现在就不用写博客了~~
据说房价都是国人自己炒的,但除了炒作,还是有些真实因素影响着房价的,通过对这些因素进行分析,我们就可以预测房价。假设你有一个数据集(六个房屋的面积和价格)。你想要找到一个方法(即构建一个函数)来通过面积预测出价格。如果你熟悉线性回归(不熟悉也没关系,你就把它看作是一个数学理论),那么可以根据这个理论在实际数据附近画出一条直线,如上图中红色的线,它附近的蓝色的小圆圈代表着六个房子的面积与房价对应的点,即根据这条线(这个函数)来找某一个面积对应的房价,那么除了些误差外,基本上是准的。另外我们知道价格永远不会是负的,除非你是黑社会,占了别人的房子还要让别人给你钱。所以,当面积为零,价格也为零,所以上面的直线要拐个弯。你可以把上面这个根据面积来预测价格的函数看作一个非常简单的神经元网络(这几乎是最简单的神经元网络)。如右边的图,黄色的圈为一个神经元,房子的大小为x,它作为输入进入这个神经元,然后神经元输出房价y。
在神经网络相关文献中,你会经常看到这个函数(上面红色的线)。这个函数在一定时间内为0,然后突然起飞飙升。它被称为线性单元函数(ReLU ,全称为rectified linear unit)。现在不懂没有关系,后面慢慢就懂了!
上面用面积预测房价的例子是一个单神经元的小得不能再小的神经网络,通过将多个这样的神经元堆叠在一起就可以形成更大的神经网络。你可以认为一个神经元就像一个积木块,你可以通过将许多这样的积木块堆叠在一起来获得一个更大的神经网络。就房价的例子来说,如上图,影响房价的因素不仅仅只有面积,还有例如卧室的数量。除了面积,卧室的数量也决定了房屋是否适合你的家庭,例如家里有3个人或5个人。另一个因素是邮政编码。邮政编码在这里代表了地理位置,地理位置繁华,那么生活会方便一些。然后还有一个因素是学校质量等级,在中国素有学区房一说。这些因素,我们也称之为特征。根据面积以及卧室的数量,可以推算是否满足家庭大小。根据邮政编码,可以估算生活便利性,包括去学校的便利性。最后学校等级可以评估教育质量。人们在买房时会考虑这四个因素,即它们决定了房价,还有他妈的炒作,这里我们暂时忽略炒作这个因素吧。所以在这个例子中,x是代表了这4个输入,y是要预测的价格。上面左图是我们人为分析的过程,我们分析出哪些输入会影响家庭大小的匹配度、生活便利性、教育质量,进而得出心中的价格。神经网络之所以神奇的一点是,我们只需要提供输入x(面积,卧室数量…)以及想要得到的结果y(房价),以及用于训练的真实数据(上面六个房子的面积,卧室数量…以及价格),那么中间部分的家庭大小匹配度、生活便利性、教育质量都会由神经网络自己根据实际数据训练而得出,如右图。当你再次输入第7个房子的特征(面积,邮编…)后,这个神经网络会根据之前训练好的中间部分给出你最终的房价。即神经网络的内部过程取代了人类的分析过程。再举一个例子,例如当我们教小孩子认识猫时,我们拿来一些白猫,告诉他这是猫,再拿来一些黑猫,告诉他这也是猫,然后拿来一些狗,告诉他这不是猫,最后拿来一些花猫,问他,他会告诉你这是猫,但是他是怎么知道的?这个中间的判断过程是怎么样的?我们不知道。这就是为什么说神经网络很恐怖的原因——它的工作原理太像人类了——我们都不知道它内部具体是如何运作的,即我们不知道它是怎么想的,就像我们不知道小孩具体是如何分辨猫和狗的。马斯克说人工智能很危险,可能会毁灭人类也不无道理。
上面所说的中间部分的神经元称为隐藏神经元。可能你注意到了,右图的神经网络中,每一个隐藏神经元都获取了所有特征输入。左图中,是我们人的分析过程,我们分析出面积和卧室数这两个特征与家庭大小有关,而在右图中,我们把所有特征都提供给每个隐藏神经元,让神经网络自己来分析哪些特征会从哪些方面影响房价。说不定神经网络的分析比人类更高效更全面,之前看到过一个新闻,Facebook的神经网络自己发明了一种沟通方式,因为它觉得用人类的语言沟通起来效率太低~~
热心网友 时间:2022-04-18 07:28
神经网络由大量的神经元相互连接而成。每个神经元接受线性组合的输入后,最开始只是简单的线性加权,后来给每个神经元加上了非线性的激活函数,从而进行非线性变换后输出。每两个神经元之间的连接代表加权值,称之为权重(weight)。不同的权重和激活函数,则会导致神经网络不同的输出。 举个手写识别的例子,给定一个未知数字,让神经网络识别是什么数字。此时的神经网络的输入由一组被输入图像的像素所激活的输入神经元所定义。在通过非线性激活函数进行非线性变换后,神经元被激活然后被传递到其他神经元。重复这一过程,直到最后一个输出神经元被激活。从而识别当前数字是什么字。 神经网络的每个神经元如下
基本wx + b的形式,其中 x1、x2表示输入向量 w1、w2为权重,几个输入则意味着有几个权重,即每个输入都被赋予一个权重 b为偏置bias g(z) 为激活函数 a 为输出 如果只是上面这样一说,估计以前没接触过的十有*又必定迷糊了。事实上,上述简单模型可以追溯到20世纪50/60年代的感知器,可以把感知器理解为一个根据不同因素、以及各个因素的重要性程度而做决策的模型。 举个例子,这周末北京有一草莓音乐节,那去不去呢?决定你是否去有二个因素,这二个因素可以对应二个输入,分别用x1、x2表示。此外,这二个因素对做决策的影响程度不一样,各自的影响程度用权重w1、w2表示。一般来说,音乐节的演唱嘉宾会非常影响你去不去,唱得好的前提下 即便没人陪同都可忍受,但如果唱得不好还不如你上台唱呢。所以,我们可以如下表示: x1:是否有喜欢的演唱嘉宾。x1 = 1 你喜欢这些嘉宾,x1 = 0 你不喜欢这些嘉宾。嘉宾因素的权重w1 = 7 x2:是否有人陪你同去。x2 = 1 有人陪你同去,x2 = 0 没人陪你同去。是否有人陪同的权重w2 = 3。 这样,咱们的决策模型便建立起来了:g(z) = g(w1x1 + w2x2 + b ),g表示激活函数,这里的b可以理解成 为更好达到目标而做调整的偏置项。 一开始为了简单,人们把激活函数定义成一个线性函数,即对于结果做一个线性变化,比如一个简单的线性激活函数是g(z) = z,输出都是输入的线性变换。后来实际应用中发现,线性激活函数太过局限,于是引入了非线性激活函数。