0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

神经网络与感知机的不同讲解

工程师邓生 来源:51cto 作者:梁唐 2020-11-30 16:51 次阅读

大家好,今天来继续聊聊深度学习

有同学跟我说很久没有更新深度学习的模型了,倒不是不愿意更新,主要是一次想把一个技术专题写完。但是纯技术文章观众老爷们不太爱看,所以我一般都把纯技术文章放在次条。不过既然有同学催更,那么我还是响应一下需求,来更新一篇。

神经网络与感知机的不同

我们当时在文章里放了一张图,这张图是一个多层感知机的图,大家看一下,就是下面这张图。

这张图乍一看没什么问题,但是细想会觉得有点奇怪,好像我们印象里看到的神经网络的图片也是这样的,既然如此,那么它们之间有什么区别呢?

表面上最明显的区别就是名字不同,这是一张神经网络的图片。我们发现同样是三层,但是它每一层的名字分别是输入层、中间层(隐藏层)和输出层。我们一般把输入层和输出层单独命名,中间的若干层都叫做隐藏层或者是中间层。当然像是感知机一样,以数字来命名层数也是可以的,比如下图当中的输入层叫做第0层,中间层叫做第一层,最后输出层叫做第2层。

我们一般不把输出层看作是有效的神经网络,所以下图的网络被称为二层神经网络,而不是三层神经网络。

除了名字的叫法不同之外,还有一个最关键的区别就是激活函数,为了说明白这点,我们先来看看神经网络当中的信号传递。

信号传递

下图是一张我随便找来的神经网络图,我们可以看到输入的第一个节点被置为了1。这样做是为了方便引入偏移量,只是我们一般情况下画图的时候,不会特意把偏移量画出来。我们以下图为例子来看下神经网络当中信号的传递方式。

到这里还没有结束,神经网络当中每一层都会有对应的激活函数。一般情况下同一层网络当中的激活函数相同,我们把它叫做h,所以最终这个节点的输出并不是刚刚得到的,而是。

激活函数我们已经比较熟悉了,之前介绍过很多次,常用的大概有以下几种:Relu、Sigmoid、tanh、softmax,以及一些衍生出的变种。一般情况下,在输出层之前我们通常使用Relu,如果模型是一个分类模型,我们会在最后使用Sigmoid或者是softmax,如果是回归模型则不使用任何激活函数。

Sigmoid我们已经很熟悉了,如果我们把LR模型也看成是一个单层的神经网络的话,那么Sigmoid就是它的激活函数。Sigmoid应用在二分类场景当中单个的输出节点上,输出的值如果大于0.5表示为真,否则为假。在一些概率预估场景当中,也可以认为输出值就代表了事件发生的概率。

与之对应的是softmax函数,它应用在多分类问题当中,它应用的节点数量不是1个,而是k个。这里的k表示多分类场景当中的类别数量。我们以k=3举例,看下图:

在图中一共有三个节点,对于每一个节点来说,它的公式可以写成:

其实和Sigmoid的计算方式是一样的,只不过最后计算了一个权重。最后我们会在这k个节点当中选择最大的作为最终的分类结果。

代码实现

最后,我们来试着写一下神经网络的代码,由于现在我们还没有介绍神经网络的训练方法,所以我们只能实现它预测的部分。等我们介绍完了反向传播算法之后,再来补上模型训练的过程。

如果不考虑反向传播的话,其实整个算法的代码非常简单,只要熟悉Python语法的同学都能看懂。

import numpy as np def relu(x): return np.where(x 》 0, x, 0) def sigmoid(x): return 1 / (1 + np.exp(-x)) class NeuralNetwork(): def __init__(self): self.params = {} self.params[‘W1’] = np.random.rand(2, 3) self.params[‘b1’] = np.random.rand(1, 3) self.params[‘W2’] = np.random.rand(3, 2) self.params[‘b2’] = np.random.rand(1, 2) self.params[‘W3’] = np.random.rand(2, 1) self.params[‘b3’] = np.random.rand(1, 1) def forward(self, x): a1 = np.dot(x, self.params[‘W1’]) + self.params[‘b1’] z1 = relu(a1) a2 = np.dot(z1, self.params[‘W2’]) + self.params[‘b2’] z2 = relu(a2) a3 = np.dot(z2, self.params[‘W3’]) + self.params[‘b3’] return np.where(sigmoid(a3) 》 0.5, 1, 0) if __name__ == “__main__”: nn = NeuralNetwork() print(nn.forward(np.array([3, 2])))

责任编辑:PSY

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4575

    浏览量

    98782
  • 感知器
    +关注

    关注

    0

    文章

    32

    浏览量

    11793
  • 深度学习
    +关注

    关注

    73

    文章

    5239

    浏览量

    119925
收藏 人收藏

    评论

    相关推荐

    深度学习的神经网络架构解析

    感知器是所有神经网络中最基本的,也是更复杂的神经网络的基本组成部分。它只连接一个输入神经元和一个输出神经元。
    发表于 08-31 16:55 852次阅读
    深度学习的<b class='flag-5'>神经网络</b>架构解析

    人工神经网络和bp神经网络的区别

    人工神经网络和bp神经网络的区别  人工神经网络(Artificial Neural Network, ANN)是一种模仿人脑神经元网络结构和功能的计算模型,也被称为
    的头像 发表于 08-22 16:45 3450次阅读

    cnn卷积神经网络简介 cnn卷积神经网络代码

    以解决图像识别问题为主要目标,但它的应用已经渗透到了各种领域,从自然语言处理、语音识别、到物体标记以及医疗影像分析等。在此,本文将对CNN的原理、结构以及基础代码进行讲解。 1. CNN的原理 CNN是一种能够自动提取特征的神经网络结构,它的每个层次在进行特征提取时会自动
    的头像 发表于 08-21 17:16 2043次阅读

    卷积神经网络和深度神经网络的优缺点 卷积神经网络和深度神经网络的区别

    深度神经网络是一种基于神经网络的机器学习算法,其主要特点是由多层神经元构成,可以根据数据自动调整神经元之间的权重,从而实现对大规模数据进行预测和分类。卷积
    发表于 08-21 17:07 2351次阅读

    卷积神经网络的介绍 什么是卷积神经网络算法

    卷积神经网络的介绍 什么是卷积神经网络算法 卷积神经网络涉及的关键技术 卷积神经网络(Convolutional Neural Network,CNN)是一种用于图像分类、物体识别、语
    的头像 发表于 08-21 16:49 1436次阅读

    卷积神经网络层级结构 卷积神经网络的卷积层讲解

    卷积神经网络层级结构 卷积神经网络的卷积层讲解 卷积神经网络(Convolutional Neural Network,CNN)是一种基于深度学习的
    的头像 发表于 08-21 16:49 4509次阅读

    卷积神经网络的基本原理 卷积神经网络发展 卷积神经网络三大特点

    卷积神经网络的基本原理 卷积神经网络发展历程 卷积神经网络三大特点  卷积神经网络的基本原理 卷积神经网络(Convolutional Ne
    的头像 发表于 08-21 16:49 1454次阅读

    卷积神经网络三大特点

    卷积神经网络三大特点  卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习模型,其具有三大特点:局部感知、参数共享和下采样。 一、局部感知
    的头像 发表于 08-21 16:49 3669次阅读

    卷积神经网络概述 卷积神经网络的特点 cnn卷积神经网络的优点

    卷积神经网络概述 卷积神经网络的特点 cnn卷积神经网络的优点  卷积神经网络(Convolutional neural network,CNN)是一种基于深度学习技术的
    的头像 发表于 08-21 16:41 1947次阅读

    卷积神经网络的应用 卷积神经网络通常用来处理什么

    卷积神经网络的应用 卷积神经网络通常用来处理什么 卷积神经网络(Convolutional Neural Network,简称CNN)是一种在神经网络领域内广泛应用的
    的头像 发表于 08-21 16:41 4023次阅读

    卷积神经网络原理:卷积神经网络模型和卷积神经网络算法

    卷积神经网络原理:卷积神经网络模型和卷积神经网络算法 卷积神经网络(Convolutional Neural Network,CNN)是一种基于深度学习的人工
    的头像 发表于 08-17 16:30 929次阅读

    什么是神经网络?为什么说神经网络很重要?神经网络如何工作?

    神经网络是一个具有相连节点层的计算模型,其分层结构与大脑中的神经元网络结构相似。神经网络可通过数据进行学习,因此,可训练其识别模式、对数据分类和预测未来事件。
    的头像 发表于 07-26 18:28 1999次阅读
    什么是<b class='flag-5'>神经网络</b>?为什么说<b class='flag-5'>神经网络</b>很重要?<b class='flag-5'>神经网络</b>如何工作?

    1 神经元与感知(2)#神经网络

    神经网络深度学习
    未来加油dz
    发布于 :2023年05月16日 15:34:32

    1 神经元与感知(1)#神经网络

    神经网络深度学习
    未来加油dz
    发布于 :2023年05月16日 15:34:05

    三个最流行神经网络

    在本文中,我们将了解深度神经网络的基础知识和三个最流行神经网络:多层神经网络(MLP),卷积神经网络(CNN)和递归神经网络(RNN)。
    发表于 05-15 14:19 1179次阅读
    三个最流行<b class='flag-5'>神经网络</b>