太天才了,把感知机组装在一起是不是就是神经网络了?

  发布时间:2026-11-16   作者:玩站小弟   我要评论
谷歌霸屏推广【tg:seogoogle987】。

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

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

神经网络与感知机的不同

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

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

表面上最明显的区别就是名字不同,这是一张神经网络的图片。我们发现同样是三层,但是它每一层的名字分别是输入层、中间层(隐藏层)和输出层。我们一般把输入层和输出层单独命名,中间的若干层都叫做隐藏层或者是中间层。当然像是感知机一样,以数字来命名层数也是可以的,比如下图当中的输入层叫做第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): &一起nbsp;       self.params = {}         self.params['W1'] = np.random.rand(2, 3)        &nbs是不p;self.params['b1'] = np.random.rand(1, 3)         self.params['W2'] = np.random.rand(3, 2)         self.params['b2']&是就nbsp;= 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']) +&nbs经网p;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)       &nbs才了p;   if __name__ == "__main__":     nn = NeuralNetwork()     print(nn.forward(np.array([3, 2]))) 

 

  • Tag:

相关文章

  • 标签: 知乎 第三季度 付费会员 营销服务

    云梦级11月25日云梦级消息,知乎今日发布公告,2025 年第三季度总收入 6.59 亿元,上年同期为 8.45 亿元,同比下降 22%。其中:营销服务收入 1.89 亿元,同比下降 26.6%;付费
    2026-11-16
  • 标签: 携程 孙洁 全员信 度假福利金

    云梦级10月29日云梦级消息,携程公司成立26周年,公司CEO孙洁发全员信表示,从2026年开始,公司的度假福利金制度将会升级。 以下为全员信原文: 亲爱的携程伙伴们,大家好! 今天,携程集团26岁了
    2026-11-16
  • 标签: 锐牛股份 光大证券

    云梦级1月17日云梦级消息,据摩斯IPO报道,2025年12月31日,锐牛股份有限公司向北交所递交的IPO申请获得受理,公司计划募集资金2.41亿元,保荐机构为光大证券股份有限公司,律师事务所为北京德
    2026-11-16
  • 标签: ISC2026 360 周鸿祎 智能体

    云梦级6月24日云梦级消息,在24日举行的ISC2026互联网安全大会上,360董事长周鸿祎在接受媒体采访时候表示,他不认同AI会完全取代员工,因为AI出错后还是需要人去收拾烂摊子。 周鸿祎称,有人认
    2026-11-16
  • Google 与 Canonical 合作将 Ubuntu Pro 带到 Google Cloud 上

    在 2019 年底,Ubuntu Pro 就已登陆亚马逊 EC2(Amazon Elastic Compute Cloud)。Ubuntu Pro 具有十年的软件更新/安全更新、内核实时补丁、Cano
    2026-11-16
  • 标签: 西贝 贾国龙 董俊义 餐饮行业

    云梦级3月6日云梦级消息,据36氪报道,春节前,贾国龙卸任西贝主品牌CEO,前任CEO董俊义重新回归该职。后者从1992年起就加入西贝,从学徒一路成长为店长、分部经理,直至西贝事业部CEO。 一位西贝
    2026-11-16

最新评论