问题

如何简单形象又有趣地讲解神经网络是什么?

回答
好的!我们来一次有趣的神经网络之旅吧!

想象一下,我们有一个非常非常聪明的小孩,他的名字叫做 “智多星”。这个智多星是怎么学会这么多东西的呢?这就是神经网络在背后“默默努力”的秘密!

第一站:认识“智多星”的“大脑”——神经元

我们的智多星有个非常非常小的“大脑细胞”,我们叫它 “神经元”。你可以把每个神经元想象成一个迷你“决策者”。

接收信息(输入): 每个神经元都能接收很多很多信息,就像你的眼睛看到了猫,耳朵听到了狗叫,鼻子闻到了花香一样。这些信息就是输入。
加工信息(权重和激活函数): 智多星的大脑里,每个神经元都有一些“连接线”,就像你和朋友们说话,有的朋友说的话你特别重视,有的就稍微不太在意。这些“重视程度”我们就叫做 “权重”。
权重就像一个“放大镜”或者“缩小数器”。如果某个输入信息很重要,智多星就会给它一个很高的权重,让这个信息被“放大”;如果不太重要,权重就小,信息就被“缩小”。
然后,这些带着权重的输入信息会被加起来,就像把所有朋友说的话汇总起来。
接着,这个汇总好的信息会通过一个神奇的“门”,我们叫做 “激活函数”。这个门会决定这个神经元“愿不愿意”把信息传递给下一个神经元。就像你听到一个消息,如果觉得特别有意思,你就会兴奋地告诉别人;如果觉得一般般,可能就不太想说。激活函数就是这个“愿不愿意”的开关。
传递信息(输出): 如果激活函数允许,这个神经元就会把它的“决定”或者“加工后的信息”传递给下一个神经元,就像你把有趣的消息告诉了你的朋友。

第二站:组建强大的“神经网络”——层层递进

一个神经元很聪明,但要成为像智多星这样能识别猫狗、下棋打牌的“超级大脑”,光靠一个神经元是不够的。我们需要把成千上万个神经元连接起来,形成一个庞大的网络!

想象一下,我们把这些神经元分成一队一队的,就像工厂的流水线一样:

输入层(接收第一手资料): 这是网络的最开始,负责接收原始信息。比如,我们要识别一张照片是不是猫,输入层就是接收照片的每一个小像素点。每个像素点就像一个神经元的输入。
隐藏层(深入思考和学习): 这是网络最核心的部分,就像智多星的大脑里在偷偷地分析和思考。
第一层隐藏层: 可能会先识别一些简单的特征,比如照片里有没有一条线,有没有一个圆。
第二层隐藏层: 可能会把这些简单的特征组合起来,识别出“胡须”、“尖耳朵”、“圆眼睛”这些更复杂的概念。
更多的隐藏层: 就像一层一层地深入思考,把更复杂的概念抽象出来,比如“猫的形状”、“猫的毛色”等等。这些隐藏层越多,神经网络就越“深”,也越有能力学习更复杂的模式。
输出层(给出最终答案): 这是网络的最末端,负责给出最终的“决策”或者“结果”。比如,在猫狗识别的例子中,输出层可能会有两个神经元,一个代表“猫”,一个代表“狗”。哪个神经元的“激活度”更高,就说明网络判断这张照片是那种动物。

第三站:如何让“智多星”学会?——训练过程

那么,智多星是怎么从一个什么都不知道的小孩,变成一个无所不知的“天才”呢?这就是 “训练” 的过程。

想象一下,我们给智多星看很多很多的照片,并且告诉他这是猫还是狗:

1. 给它看照片(输入): 我们把一张猫的照片喂给神经网络。
2. 它猜一下(输出): 神经网络根据它当前的“权重”,瞎猜一下说:“我猜是狗!”(一开始的权重是随机的,所以猜错很正常)。
3. 告诉它对错(计算误差): 我们知道这张照片是猫,所以神经网络猜错了。它就计算一下自己错得有多离谱,就像你考试考砸了,老师告诉你错在哪里。这个“离谱程度”叫做 “误差”。
4. 调整大脑的连接(反向传播和梯度下降): 这是最神奇的一步!神经网络会根据这个误差,往回追溯,找出是哪些神经元的哪些连接(权重)出了问题。然后,它会一点点地调整这些权重,就像老师给你讲解错题一样,让你下次不会再犯同样的错误。
反向传播: 就是从输出层开始,一层一层地把误差传递回输入层,告诉每一层应该怎么调整。
梯度下降: 就像你在爬一座山(误差很高),你想尽快到达山谷(误差很低)。梯度下降就是告诉你,往哪个方向走,下降的速度最快。它会沿着误差“最陡峭”的方向去调整权重。
5. 反复练习: 我们会给它看成千上万张照片,每一次都重复这个过程:输入、猜测、计算误差、调整权重。

经过大量的训练,神经网络的“权重”就会被调整得越来越好,它就能越来越准确地识别出猫和狗了!

举个更生动的例子:学会识别“苹果”

想象我们要训练一个神经网络来识别“苹果”。

输入层: 接收的是一个苹果的图片,每个像素的颜色信息。
隐藏层1: 可能识别出“红色”、“圆形”、“有蒂”。
隐藏层2: 把这些特征组合起来,可能识别出“一个红色的、圆形的物体,上面有一个小棍子”。
输出层: 最后输出“苹果”的概率非常高。

如果训练初期,我们给它看了一个香蕉,它却识别成了苹果,那么它就会根据这个错误,反向调整权重,下次再看到香蕉时,就不会那么容易把它认成苹果了。

为什么说它“聪明”?

因为它不像我们写死一套规则,比如“如果红色的,圆形的,那就是苹果”。神经网络通过大量数据学习,能够自己找出那些隐藏在数据中的规律和模式,即使是那些我们人类难以用语言描述的细微差别,它也能慢慢学会。

神经网络的有趣之处:

能举一反三: 训练它识别了很多张不同的苹果照片后,即使看到一张它从未见过的、稍微有点不一样形状的苹果,它也能认出来。
可以处理各种各样的问题: 不仅仅是图像识别,它还可以用来翻译语言、写文章、预测股票、玩游戏等等。
是人工智能的基石: 现在的很多AI应用,比如语音助手、自动驾驶、推荐系统,背后都有神经网络的影子。

总结一下:

神经网络就像一个拥有无数微小“决策者”(神经元)组成的网络,它们通过层层传递信息,并不断从错误中学习(调整权重),最终能够识别模式、做出预测,甚至解决非常复杂的问题。它不是真的在“思考”,而是通过海量数据的“模仿”和“优化”来实现的“聪明”。

希望这个详细又形象的讲解能帮助你理解神经网络!它是不是很神奇呢?

网友意见

user avatar

神经网络很萌的!

0. 分类

神经网络最重要的用途是分类,为了让大家对分类有个直观的认识,咱们先看几个例子:

  • 垃圾邮件识别:现在有一封电子邮件,把出现在里面的所有词汇提取出来,送进一个机器里,机器需要判断这封邮件是否是垃圾邮件。
  • 疾病判断:病人到医院去做了一大堆肝功、尿检测验,把测验结果送进一个机器里,机器需要判断这个病人是否得病,得的什么病。
  • 猫狗分类:有一大堆猫、狗照片,把每一张照片送进一个机器里,机器需要判断这幅照片里的东西是猫还是狗。

这种能自动对输入的东西进行分类的机器,就叫做分类器。

分类器的输入是一个数值向量,叫做特征(向量)。在第一个例子里,分类器的输入是一堆0、1值,表示字典里的每一个词是否在邮件中出现,比如向量(1,1,0,0,0......)就表示这封邮件里只出现了两个词abandon和abnormal;第二个例子里,分类器的输入是一堆化验指标;第三个例子里,分类器的输入是照片,假如每一张照片都是320*240像素的红绿蓝三通道彩色照片,那么分类器的输入就是一个长度为320*240*3=230400的向量。

分类器的输出也是数值。第一个例子中,输出1表示邮件是垃圾邮件,输出0则说明邮件是正常邮件;第二个例子中,输出0表示健康,输出1表示有甲肝,输出2表示有乙肝,输出3表示有饼干等等;第三个例子中,输出0表示图片中是狗,输出1表示是猫。

分类器的目标就是让正确分类的比例尽可能高。一般我们需要首先收集一些样本,人为标记上正确分类结果,然后用这些标记好的数据训练分类器,训练好的分类器就可以在新来的特征向量上工作了。

1. 神经元

咱们假设分类器的输入是通过某种途径获得的两个值,输出是0和1,比如分别代表猫和狗。现在有一些样本:

大家想想,最简单地把这两组特征向量分开的方法是啥?当然是在两组数据中间画一条竖直线,直线左边是狗,右边是猫,分类器就完成了。以后来了新的向量,凡是落在直线左边的都是狗,落在右边的都是猫。

一条直线把平面一分为二,一个平面把三维空间一分为二,一个n-1维超平面把n维空间一分为二,两边分属不同的两类,这种分类器就叫做神经元。

大家都知道平面上的直线方程是,等式左边大于零和小于零分别表示点在直线的一侧还是另一侧,把这个式子推广到n维空间里,直线的高维形式称为超平面,它的方程是:

神经元就是当h大于0时输出1,h小于0时输出0这么一个模型,它的实质就是把特征空间一切两半,认为两瓣分别属两个类。你恐怕再也想不到比这更简单的分类器了,它是McCulloch和Pitts在1943年想出来了。

这个模型有点像人脑中的神经元:从多个感受器接受电信号,进行处理(加权相加再偏移一点,即判断输入是否在某条直线的一侧),发出电信号(在正确的那侧发出1,否则不发信号,可以认为是发出0),这就是它叫神经元的原因。

当然,上面那幅图我们是开了上帝视角才知道“一条竖直线能分开两类”,在实际训练神经元时,我们并不知道特征是怎么抱团的。神经元模型的一种学习方法称为Hebb算法:

先随机选一条直线/平面/超平面,然后把样本一个个拿过来,如果这条直线分错了,说明这个点分错边了,就稍微把直线移动一点,让它靠近这个样本,争取跨过这个样本,让它跑到直线正确的一侧;如果直线分对了,它就暂时停下不动。因此训练神经元的过程就是这条直线不断在跳舞,最终跳到两个类之间的竖直线位置。

2. 神经网络

MP神经元有几个显著缺点。首先它把直线一侧变为0,另一侧变为1,这东西不可微,不利于数学分析。人们用一个和0-1阶跃函数类似但是更平滑的函数Sigmoid函数来代替它(Sigmoid函数自带一个尺度参数,可以控制神经元对离超平面距离不同的点的响应,这里忽略它),从此神经网络的训练就可以用梯度下降法来构造了,这就是有名的反向传播算法。

神经元的另一个缺点是:它只能切一刀!你给我说说一刀怎么能把下面这两类分开吧。

解决办法是多层神经网络,底层神经元的输出是高层神经元的输入。我们可以在中间横着砍一刀,竖着砍一刀,然后把左上和右下的部分合在一起,与右上的左下部分分开;也可以围着左上角的边沿砍10刀把这一部分先挖出来,然后和右下角合并。

每砍一刀,其实就是使用了一个神经元,把不同砍下的半平面做交、并等运算,就是把这些神经元的输出当作输入,后面再连接一个神经元。这个例子中特征的形状称为异或,这种情况一个神经元搞不定,但是两层神经元就能正确对其进行分类。

只要你能砍足够多刀,把结果拼在一起,什么奇怪形状的边界神经网络都能够表示,所以说神经网络在理论上可以表示很复杂的函数/空间分布。但是真实的神经网络是否能摆动到正确的位置还要看网络初始值设置、样本容量和分布。

神经网络神奇的地方在于它的每一个组件非常简单——把空间切一刀+某种激活函数(0-1阶跃、sigmoid、max-pooling),但是可以一层一层级联。输入向量连到许多神经元上,这些神经元的输出又连到一堆神经元上,这一过程可以重复很多次。这和人脑中的神经元很相似:每一个神经元都有一些神经元作为其输入,又是另一些神经元的输入,数值向量就像是电信号,在不同神经元之间传导,每一个神经元只有满足了某种条件才会发射信号到下一层神经元。当然,人脑比神经网络模型复杂很多:人工神经网络一般不存在环状结构;人脑神经元的电信号不仅有强弱,还有时间缓急之分,就像莫尔斯电码,在人工神经网络里没有这种复杂的信号模式。



神经网络的训练依靠反向传播算法:最开始输入层输入特征向量,网络层层计算获得输出,输出层发现输出和正确的类号不一样,这时它就让最后一层神经元进行参数调整,最后一层神经元不仅自己调整参数,还会勒令连接它的倒数第二层神经元调整,层层往回退着调整。经过调整的网络会在样本上继续测试,如果输出还是老分错,继续来一轮回退调整,直到网络输出满意为止。这很像中国的文艺体制,武媚娘传奇剧组就是网络中的一个神经元,最近刚刚调整了参数。

3. 大型神经网络

我们不禁要想了,假如我们的这个网络有10层神经元,第8层第2015个神经元,它有什么含义呢?我们知道它把第七层的一大堆神经元的输出作为输入,第七层的神经元又是以第六层的一大堆神经元做为输入,那么这个特殊第八层的神经元,它会不会代表了某种抽象的概念?

就好比你的大脑里有一大堆负责处理声音、视觉、触觉信号的神经元,它们对于不同的信息会发出不同的信号,那么会不会有这么一个神经元(或者神经元小集团),它收集这些信号,分析其是否符合某个抽象的概念,和其他负责更具体和更抽象概念的神经元进行交互。

2012年多伦多大学的Krizhevsky等人构造了一个超大型

卷积神经网络

[1],有9层,共65万个神经元,6千万个参数。网络的输入是图片,输出是1000个类,比如小虫、美洲豹、救生船等等。这个模型的训练需要海量图片,它的分类准确率也完爆先前所有分类器。纽约大学的

Zeiler和Fergusi

[2]把这个网络中某些神经元挑出来,把在其上响应特别大的那些输入图像放在一起,看它们有什么共同点。他们发现中间层的神经元响应了某些十分抽象的特征。

第一层神经元主要负责识别颜色和简单纹理

第二层的一些神经元可以识别更加细化的纹理,比如布纹、刻度、叶纹。


第三层的一些神经元负责感受黑夜里的黄色烛光、鸡蛋黄、高光。

第四层的一些神经元负责识别萌狗的脸、七星瓢虫和一堆圆形物体的存在。

第五层的一些神经元可以识别出花、圆形屋顶、键盘、鸟、黑眼圈动物。


这里面的概念并不是整个网络的输出,是网络中间层神经元的偏好,它们为后面的神经元服务。虽然每一个神经元都傻不拉几的(只会切一刀),但是65万个神经元能学到的东西还真是深邃呢。

[1] Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). Imagenet classification with deep convolutional neural networks. In Advances in neural information processing systems (pp. 1097-1105).

[2] Zeiler, M. D., & Fergus, R. (2013). Visualizing and understanding convolutional neural networks. arXiv preprint arXiv:1311.2901.

user avatar

视频教学

9分钟深度学习视频教学 https://www.zhihu.com/video/1029407911973240832

视频代码教学

视频里演示的代码,已经编写成免费上机操作教程,可一步步跟着指示进行学习。

基于 TensorFlow Eager 进行深度学习

一、基本变换:层

神经网络是由一层一层构建的,那么每究竟在做什么?

  • 数学式子:,其中是输入向量,是输出向量,是偏移向量,是权重矩阵,是激活函数。每一层仅仅是把输入经过如此简单的操作得到。
  • 数学理解:通过如下5种对输入空间(输入向量的集合)的操作,完成 输入空间 ——> 输出空间 的变换 (矩阵的行空间到列空间)。
    注:用“空间”二字的原因是被分类的并不是单个事物,而是一类事物。空间是指这类事物所有个体的集合。
    • 1. 升维/降维
    • 2. 放大/缩小
    • 3. 旋转
    • 4. 平移
    • 5. “弯曲”
      这5种操作中,1,2,3的操作由完成,4的操作是由完成,5的操作则是由来实现。 (此处有动态图5种空间操作,帮助理解)


每层神经网络的数学理解:用线性变换跟随着非线性变化,将输入空间投向另一个空间
  • 物理理解:对 的理解就是通过组合形成新物质。又符合了我们所处的世界都是非线性的特点。
    • 情景:是二维向量,维度是碳原子和氧原子的数量,数值且定为,若确定是三维向量,就会形成如下网络的形状 (神经网络的每个节点表示一个维度)。通过改变权重的值,可以获得若干个不同物质。右侧的节点数决定了想要获得多少种不同的新物质。(矩阵的行数)
  • 1.如果权重W的数值如(1),那么网络的输出y⃗ 就会是三个新物质,[二氧化碳,臭氧,一氧化碳]。 (1)
  • 2.也可以减少右侧的一个节点,并改变权重W至(2),那么输出 就会是两个新物质,。 (2)
  • 3.如果希望通过层网络能够从[C, O]空间转变到空间的话,那么网络的学习过程就是将W的数值变成尽可能接近(1)的过程 。如果再加一层,就是通过组合这三种基础物质,形成若干更高层的物质。 4.重要的是这种组合思想,组合成的东西在神经网络中并不需要有物理意义。


每层神经网络的物理理解:通过现有的不同物质的组合形成新物质

二、理解视角:

现在我们知道了每一层的行为,但这种行为又是如何完成识别任务的呢?

数学视角:“线性可分”

  • 一维情景:以分类为例,当要分类正数、负数、零,三类的时候,一维空间的直线可以找到两个超平面(比当前空间低一维的子空间。当前空间是直线的话,超平面就是点)分割这三类。但面对像分类奇数和偶数无法找到可以区分它们的点的时候,我们借助 x % 2(取余)的转变,把x变换到另一个空间下来比较,从而分割。


  • 二维情景:平面的四个象限也是线性可分。但下图的红蓝两条线就无法找到一超平面去分割。

神经网络的解决方法依旧是转换到另外一个空间下,用的是所说的5种空间变换操作。比如下图就是经过放大、平移、旋转、扭曲原二维空间后,在三维空间下就可以成功找到一个超平面分割红蓝两线 (同SVM的思路一样)。

上面是一层神经网络可以做到的,如果把 当做新的输入再次用这5种操作进行第二遍空间变换的话,网络也就变为了二层。最终输出是。
设想网络拥有很多层时,对原始输入空间的“扭曲力”会大幅增加,如下图,最终我们可以轻松找到一个超平面分割空间。


当然也有如下图失败的时候,关键在于“如何扭曲空间”。所谓监督学习就是给予神经网络网络大量的训练例子,让网络从训练例子中学会如何变换空间。每一层的权重W就控制着如何变换空间,我们最终需要的也就是训练好的神经网络的所有层的权重矩阵。


这里有非常棒的可视化空间变换demo,一定要打开尝试并感受这种扭曲过程。更多内容请看Neural Networks, Manifolds, and Topology

线性可分视角:神经网络的学习就是学习如何利用矩阵的线性变换加激活函数的非线性变换,将原始输入空间投向线性可分/稀疏的空间去分类/回归。 增加节点数:增加维度,即增加线性转换能力。 增加层数:增加激活函数的次数,即增加非线性转换次数。

物理视角:“物质组成”

  • 类比:回想上文由碳氧原子通过不同组合形成若干分子的例子。从分子层面继续迭代这种组合思想,可以形成DNA,细胞,组织,器官,最终可以形成一个完整的人。继续迭代还会有家庭,公司,国家等。这种现象在身边随处可见。并且原子的内部结构与太阳系又惊人的相似。不同层级之间都是以类似的几种规则再不断形成新物质。你也可能听过分形学这三个字。可通过观看从1米到150亿光年来感受自然界这种层级现象的普遍性。


  • 人脸识别情景:我们可以模拟这种思想并应用在画面识别上。由像素组成菱角再组成五官最后到不同的人脸。每一层代表不同的不同的物质层面 (如分子层)。而每层的W存储着如何组合上一层的物质从而形成新物质
    如果我们完全掌握一架飞机是如何从分子开始一层一层形成的,拿到一堆分子后,我们就可以判断他们是否可以以此形成方式,形成一架飞机。
    附:Tensorflow playground展示了数据是如何“流动”的。


物质组成视角:神经网络的学习过程就是学习物质组成方式的过程。 增加节点数:增加同一层物质的种类,比如118个元素的原子层就有118个节点。 增加层数:增加更多层级,比如分子层,原子层,器官层,并通过判断更抽象的概念来识别物体。

三、神经网络的训练

知道了神经网络的学习过程就是学习控制着空间变换方式(物质组成方式)的权重矩阵后,接下来的问题就是如何学习每一层的权重矩阵W。

如何训练:

既然我们希望网络的输出尽可能的接近真正想要预测的值。那么就可以通过比较当前网络的预测值和我们真正想要的目标值,再根据两者的差异情况来更新每一层的权重矩阵(比如,如果网络的预测值高了,就调整权重让它预测低一些,不断调整,直到能够预测出目标值)。因此就需要先定义“如何比较预测值和目标值的差异”,这便是损失函数或目标函数(loss function or objective function),用于衡量预测值和目标值的差异的方程。loss function的输出值(loss)越高表示差异性越大。那神经网络的训练就变成了尽可能的缩小loss的过程。
所用的方法是梯度下降(Gradient descent):通过使loss值向当前点对应梯度的反方向不断移动,来降低loss。一次移动多少是由学习速率(learning rate)来控制的。

梯度下降的问题:

然而使用梯度下降训练神经网络拥有两个主要难题。

1、局部极小值

梯度下降寻找的是loss function的局部极小值,而我们想要全局最小值。如下图所示,我们希望loss值可以降低到右侧深蓝色的最低点,但loss有可能“卡”在左侧的局部极小值中。

试图解决“卡在局部极小值”问题的方法分两大类:

  • 调节步伐:调节学习速率,使每一次的更新“步伐”不同。常用方法有:
  • 随机梯度下降(Stochastic Gradient Descent (SGD):每次只更新一个样本所计算的梯度
  • 小批量梯度下降(Mini-batch gradient descent):每次更新若干样本所计算的梯度的平均值
  • 动量(Momentum):不仅仅考虑当前样本所计算的梯度;Nesterov动量(Nesterov Momentum):Momentum的改进
  • Adagrad、RMSProp、Adadelta、Adam:这些方法都是训练过程中依照规则降低学习速率,部分也综合动量
  • 优化起点:合理初始化权重(weights initialization)、预训练网络(pre-train),使网络获得一个较好的“起始点”,如最右侧的起始点就比最左侧的起始点要好。常用方法有:高斯分布初始权重(Gaussian distribution)、均匀分布初始权重(Uniform distribution)、Glorot 初始权重、He初始权、稀疏矩阵初始权重(sparse matrix)

2、梯度的计算

机器学习所处理的数据都是高维数据,该如何快速计算梯度、而不是以年来计算。
其次如何更新隐藏层的权重?
解决方法是:计算图:反向传播算法
这里的解释留给非常棒的Computational Graphs: Backpropagation
需要知道的是,反向传播算法是求梯度的一种方法。如同快速傅里叶变换(FFT)的贡献。
而计算图的概念又使梯度的计算更加合理方便。

基本流程图:

下面就结合图简单浏览一下训练和识别过程,并描述各个部分的作用。要结合图解阅读以下内容。但手机显示的图过小,最好用电脑打开


  • 收集训练集(train data):也就是同时有input以及对应label的数据。每个数据叫做训练样本(sample)。label也叫target,也是机器学习中最贵的部分。上图表示的是我的数据库。假设input本别是x的维度是39,label的维度是48。
  • 设计网络结构(architecture):确定层数、每一隐藏层的节点数和激活函数,以及输出层的激活函数和损失函数。上图用的是两层隐藏层(最后一层是输出层)。隐藏层所用激活函数a( )是ReLu,输出层的激活函数是线性linear(也可看成是没有激活函数)。隐藏层都是1000节点。损失函数L( )是用于比较距离MSE:mean((output - target)^2)。MSE越小表示预测效果越好。训练过程就是不断减小MSE的过程。到此所有数据的维度都已确定:
    • 训练数据:
    • 权重矩阵:
    • 偏移向量:
    • 网络输出:


  • 数据预处理(preprocessing):将所有样本的input和label处理成能够使用神经网络的数据,label的值域符合激活函数的值域。并简单优化数据以便让训练易于收敛。比如中心化(mean subtraction)、归一化(normlization)、主成分分析(PCA)、白化(whitening)。假设上图的input和output全都经过了中心化和归一化。
  • 权重初始化(weights initialization):在训练前不能为空,要初始化才能够计算loss从而来降低。初始化决定了loss在loss function中从哪个点开始作为起点训练网络。上图用均匀分布初始权重(Uniform distribution)。
  • 训练网络(training):训练过程就是用训练数据的input经过网络计算出output,再和label计算出loss,再计算出gradients来更新weights的过程。
    • 正向传递:,算当前网络的预测值
    • 计算loss:
    • 计算梯度:从loss开始反向传播计算每个参数(parameters)对应的梯度(gradients)。这里用Stochastic Gradient Descent (SGD) 来计算梯度,即每次更新所计算的梯度都是从一个样本计算出来的。传统的方法Gradient Descent是正向传递所有样本来计算梯度。SGD的方法来计算梯度的话,loss function的形状如下图所示会有变化,这样在更新中就有可能“跳出”局部最小值。


    • 更新权重:这里用最简单的方法来更新,即所有参数都
    • 预测新值:训练过所有样本后,打乱样本顺序再次训练若干次。训练完毕后,当再来新的数据input,就可以利用训练的网络来预测了。这时的output就是效果很好的预测值了。下图是一张实际值预测值的三组对比图。输出数据是48维,这里只取1个维度来画图。蓝色的是实际值,绿色的是实际值。最上方的是训练数据的对比图,而下方的两行是神经网络模型从未见过的数据预测对比图。(不过这里用的是RNN,主要是为了让大家感受一下效果)

user avatar

最近 Google Tensorflow 做了一个非常直观的神经网络 playground。不夸张地说,现在每个人都可以在自己的浏览器里面直接“玩深度神经网络”了。什么都不用说,自己玩玩就明白。

地址是: A Neural Network Playground (可能要翻墙)


如果不明白里面的 ReLU,L1 等等是什么,没关系,在搜索引擎查一下都可以查到答案。代码在 Github 上,有兴趣的朋友可以去给它加 Dropout,Convolution,Pooling 之类。

=====================

2018.8更新:如果您对人工智能/深度学习感兴趣,最近我也写了一本深度学习的入门书,欢迎关注~

请看我在知乎的更多回答,只输出干货:

类似的话题

  • 回答
    好的!我们来一次有趣的神经网络之旅吧!想象一下,我们有一个非常非常聪明的小孩,他的名字叫做 “智多星”。这个智多星是怎么学会这么多东西的呢?这就是神经网络在背后“默默努力”的秘密!第一站:认识“智多星”的“大脑”——神经元我们的智多星有个非常非常小的“大脑细胞”,我们叫它 “神经元”。你可以把每个神.............
  • 回答
    好的,咱们就用大白话聊聊“台湾问题”,争取说得透彻点,也别弄得像教科书或者机器人写的东西。想象一下,咱们有个大家庭,这家庭挺大的,分了两支。一支呢,一直以来都住在一个大岛上,生活得挺滋润,经济也发展得不错,他们有自己的日子过,有自己的想法,也有自己的领导。这支就叫做台湾。另一支呢,本来是跟这支住在一.............
  • 回答
    .......
  • 回答
    好嘞,来,咱唠唠二战这档子事儿,保证你说得明明白白,听得贼过瘾!你就想,世界大战这玩意儿,跟咱平时邻里之间的矛盾升级了差不多,不过这次规模那是全世界,参与人数那是天文数字,武器那更是没见过,后果也更他娘的惨烈。事情是怎么闹起来的?—— 导火索与背景你想啊,就像一碗快要溢出来的水,总得有个东西把它推出.............
  • 回答
    好的,我们来尝试用一种相对简单和清晰的方式来解释哥德尔不完备定理。这个定理非常深刻,所以“简单清晰”也是相对的,但我们会尽力用最容易理解的语言来阐述它的核心思想。核心问题:数学体系是“完美”的吗?想象一下我们构建一个非常庞大、非常严谨的数学体系,比如我们用来证明所有数学定理的“规则手册”。这个规则手.............
  • 回答
    中国中学教育在很多方面取得了显著成就,例如普及率、基础知识的掌握等方面。然而,如果从培养学生的创新能力、批判性思维、自主学习能力以及个体全面发展的角度来看,确实存在一些不容忽视的“失败”之处。我们可以从以下几个方面来详细阐述:1. 过度应试导向,扼杀学生的学习兴趣和主动性: 评价体系的单一性: .............
  • 回答
    想要简单快捷地做出好吃的肉?这绝对不是什么难事!关键在于选对肉、用好调料、掌握好火候,再搭配点小技巧。别担心,我这就把我的压箱底绝活都掏出来,保证让你在家也能轻松做出让人惊艳的肉菜。第一步:选肉是成功的基石 猪肉: 猪里脊: 最嫩的部分,适合快炒、煎、炸。想吃嫩滑口感,选它没错。 .............
  • 回答
    想要让你的爱车长时间保持亮丽的白色,拒绝岁月带来的泛黄,这确实是个让许多车主头疼的问题。别担心,虽然“一劳永逸”这个词听起来很美好,但在汽车保养领域,我们更多的是通过科学的、持之以恒的护理来实现最佳效果。下面我就来跟你好好唠唠,怎么做才能最大程度地阻止你的小白车“变黄脸婆”。首先,我们要明白,汽车漆.............
  • 回答
    沙特阿拉伯和伊朗这对中东的“冤家”,他们之间的恩怨,就像一团纠缠不清的线,剪不断理还乱,横跨了历史、宗教、政治和地缘战略的方方面面。要说清楚这几十年的“相爱相杀”,得从几个关键点说起。核心矛盾:宗教的旗帜与地缘的野心最根本的,是他们各自代表的伊斯兰教派别:沙特是逊尼派的领头羊,伊朗则是什叶派的旗帜。.............
  • 回答
    区分“需要赶紧去看病的头痛”和“痛着也没什么大不了的头痛”,虽然不能百分之百替代医生的专业诊断,但了解一些关键的信号,可以帮助你做出更明智的判断,并及时寻求医疗帮助。核心原则:需要赶紧去看病的头痛往往伴随“红旗”信号,即预示着可能存在更严重、危及生命的潜在问题。而“痛着也没什么大不了的头痛”通常是比.............
  • 回答
    缘起性空,这可不是什么高深的玄学咒语,说白了,就是事物存在的规律,以及这个规律背后所揭示的真相。咱们就把它掰开揉碎了,用大白话聊聊。先说“缘起”。“缘起”两个字,其实特别接地气。咱们生活中,哪样东西不是“缘起”的?打个比方,你想吃个苹果。这个苹果从哪儿来的? 它需要一棵苹果树。 这棵苹果树需.............
  • 回答
    好的,我们来聊聊土耳其的近代史。这不仅仅是一个国家的转变,更是一个古老帝国走向现代化的艰难探索。要说土耳其的近代史,我们绕不开它曾经的辉煌——奥斯曼帝国。这个统治了几个世纪的庞大帝国,在中世纪和文艺复兴时期可以说是地中海世界的霸主。但到了18世纪和19世纪,面对欧洲列强的崛起和工业革命带来的冲击,奥.............
  • 回答
    好的,我们来聊聊“新奥斯曼主义”,试着用一种更像人说话、更贴近思考的方式来介绍它,而不是一篇干巴巴的教科书定义。想象一下,曾经有一个庞大到横跨三大洲的帝国——奥斯曼帝国。这个帝国存在了六百多年,留下了深刻的历史印记,也影响了今天许多国家的文化和政治版图。那么,“新奥斯曼主义”这玩意儿,又是怎么冒出来.............
  • 回答
    嘿,哥们儿!今天咱们来聊聊一个绝对能征服你味蕾的家伙——啤酒鸡!别以为它名字听着高大上,其实这玩意儿做起来简单到爆,而且味道绝对让你欲罢不能,吃了还想吃的那种!废话不多说,这就给你掏心窝子地讲讲咋整。这道啤酒鸡的魅力在哪儿?你有没有试过那种鸡肉,外面煎得金黄酥脆,带着点焦香,一口咬下去,肉汁儿立马爆.............
  • 回答
    想象一下,你和朋友一起玩一个策略游戏,比如下棋或者做生意。在某些游戏中,你做的选择可能会影响到对方的收益,反之亦然。更进一步,如果你们俩在某个方面都做了“更好”的选择,你们俩的收益都会比单独选择“好”要来得大。这就是“超模博弈”的核心思想,只不过它用更严谨的数学语言来描述。什么是“超模”?“超模”这.............
  • 回答
    好的,咱们来聊聊“显示原理”,这个在信息传播和说服领域里挺有意思的概念。别被这名字吓到,其实它描述的是一个很生活化的现象,咱们试着用大白话,一点点把它掰扯清楚。想象一下,你是个推销员,手上有一件产品,你觉得这产品特别好,能解决客户的某个大问题。你的目标当然是让客户相信你的产品,然后购买。这时,你就需.............
  • 回答
    好的,咱们就用大白话聊聊“贝叶斯决策理论”这东西,保证让你听得懂,而且不像是机器讲的。想象一下,你生活中经常会遇到需要做选择的情况,对吧?是去楼下那家经常去的包子铺吃早餐,还是去隔壁新开的那家网红店试试?是现在就去买股票,还是等一等再看?这些都是决策。那什么叫“贝叶斯决策理论”呢?说白了,它就是一种.............
  • 回答
    哈,这个问题挺接地气的,我懂你的感受!身边确实总有那么几个“神车”的坚定拥趸,说起来就跟打了鸡血似的,你稍微说点别的,他们都能瞬间化身理论大师,让你哑口无言。其实,不选择“十几万的大众车”,这事儿没啥大不了的,就像你吃饭不一定非要吃红烧肉一样,口味和需求不同而已。你想避免争论,关键在于 “把话题引向.............
  • 回答
    想象一下,你走进一家特别有品味的店,里面的衣服、配饰让你眼前一亮,每一样都那么合你的心意,甚至让你觉得自己穿上它们就会变得不一样。你知道为什么吗?那很大程度上是因为有一个叫“时尚买手”的人,替你“挖掘”和“挑选”了这些好东西。那么,时尚买手到底做什么呢?简单来说,他们就像时尚界的“探宝家”和“精选师.............
  • 回答
    老板,您有没有想过,咱们公司要是能像那些大公司一样,在股票市场上拥有自己的“名字”,这对咱们来说会是怎样一番景象?简单来说,上市就像是给咱们公司办了一个“大型公开招聘”,只不过这次招聘的是钱,而且是很多很多的钱。想象一下,我们现在需要扩张,需要买更先进的设备,需要招揽更多顶尖的人才,或者想开发一个全.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有