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

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

3天内不再提示

用Python从头实现一个神经网络来理解神经网络的原理2

jf_78858299 来源:机器学习杂货店 作者:机器学习杂货店 2023-02-27 15:06 次阅读

*05 ***** 例子:前馈

我们继续用前面图中的网络,假设每个神经元的权重都是 图片,截距项也相同图片 ,激活函数也都是S型函数。分别用图片图片表示相应的神经元的输出。

当输入图片时,会得到什么结果?

图片

这个神经网络对输入图片的输出是0.7216,很简单。

一个神经网络的层数以及每一层中的神经元数量都是任意的。基本逻辑都一样:输入在神经网络中向前传输,最终得到输出。接下来,我们会继续使用前面的这个网络。

***06 ***编码神经网络:前馈

接下来我们实现这个神经网络的前馈机制,还是这个图:

图片

import numpy as np
# ... code from previous section here
classOurNeuralNetwork: ''' A neural network with: - 2 inputs - a hidden layer with 2 neurons (h1, h2) - an output layer with 1 neuron (o1) Each neuron has the same weights and bias: - w = [0, 1] - b = 0 ''' def__init__(self): weights = np.array([0, 1]) bias = 0
# 这里是来自前一节的神经元类 self.h1 = Neuron(weights, bias) self.h2 = Neuron(weights, bias) self.o1 = Neuron(weights, bias)
deffeedforward(self, x): out_h1 = self.h1.feedforward(x) out_h2 = self.h2.feedforward(x)
# o1的输入是h1h2的输出 out_o1 = self.o1.feedforward(np.array([out_h1, out_h2]))
return out_o1
network = OurNeuralNetwork()x = np.array([2, 3])print(network.feedforward(x)) # 0.7216325609518421
结果正确,看上去没问题。

***07 ***训练神经网络 第一部分

现在有这样的数据:

图片

接下来我们用这个数据来训练神经网络的权重和截距项,从而可以根据身高体重预测性别:

图片

我们用0和1分别表示男性(M)和女性(F),并对数值做了转化:

图片

我这里是随意选取了135和66来标准化数据,通常会使用平均值。

***08 ***损失

在训练网络之前,我们需要量化当前的网络是『好』还是『坏』,从而可以寻找更好的网络。这就是定义损失的目的。

我们在这里用平均方差(MSE)损失: ,让我们仔细看看:

  • 图片是样品数,这里等于4(Alice、Bob、Charlie和Diana)。
  • 图片表示要预测的变量,这里是性别。
  • 图片是变量的真实值(『正确答案』)。例如,Alice的图片就是1(男性)。
  • 图片变量的预测值。这就是我们网络的输出。

图片被称为方差(squared error)。我们的损失函数就是所有方差的平均值。预测效果越好,损失就越少。

更好的预测 = 更少的损失!

训练网络 = 最小化它的损失。

*09 ***** 损失计算例子

假设我们的网络总是输出0,换言之就是认为所有人都是男性。损失如何?

图片

图片

***10 ***代码:MSE损失

下面是计算MSE损失的代码:

import numpy as np
defmse_loss(y_true, y_pred): # y_true and y_pred are numpy arrays of the same length. return ((y_true - y_pred) ** 2).mean()
y_true = np.array([1, 0, 0, 1])y_pred = np.array([0, 0, 0, 0])
print(mse_loss(y_true, y_pred)) # 0.5

如果你不理解这段代码,可以看看NumPy的快速入门中关于数组的操作。

好的,继续。

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

    关注

    42

    文章

    4771

    浏览量

    100739
  • 神经元
    +关注

    关注

    1

    文章

    363

    浏览量

    18450
  • python
    +关注

    关注

    56

    文章

    4795

    浏览量

    84646
收藏 人收藏

    评论

    相关推荐

    人工神经网络原理及下载

    这个网络输入和相应的输出来“训练”这个网络网络根据输入和输出不断地调节自己的各节点之间的权值满足输入和输出。这样,当训练结束后,我们给定
    发表于 06-19 14:40

    labview BP神经网络实现

    请问:我在用labview做BP神经网络实现故障诊断,在NI官网找到了机器学习工具包(MLT),但是里面没有关于这部分VI的帮助文档,对于”BP神经网络分类“这个范例有很多不懂的地方,比如
    发表于 02-22 16:08

    【PYNQ-Z2申请】基于PYNQ-Z2神经网络图形识别

    神经网络的学习,讲解其工作原理。4.基于PYNQ-Z2python实现
    发表于 01-09 14:48

    【PYNQ-Z2试用体验】神经网络基础知识

    超过阈值,输出就跃而起。但我们S函数作为激活函数。如下图:图2 该函数相比阶越函数更加接近现实。神经网络原理如图所示是
    发表于 03-03 22:10

    卷积神经网络如何使用

    卷积神经网络(CNN)究竟是什么,鉴于神经网络在工程上经历了曲折的历史,您为什么还会在意它呢? 对于这些非常中肯的问题,我们似乎可以给出相对简明的答案。
    发表于 07-17 07:21

    【案例分享】ART神经网络与SOM神经网络

    今天学习了两神经网络,分别是自适应谐振(ART)神经网络与自组织映射(SOM)神经网络。整体感觉不是很难,只不过些最基础的概念容易
    发表于 07-21 04:30

    人工神经网络实现方法有哪些?

    人工神经网络(Artificial Neural Network,ANN)是种类似生物神经网络的信息处理结构,它的提出是为了解决些非线性,非平稳,复杂的实际问题。那有哪些办法能
    发表于 08-01 08:06

    什么是LSTM神经网络

    简单理解LSTM神经网络
    发表于 01-28 07:16

    如何构建神经网络

    原文链接:http://tecdat.cn/?p=5725 神经网络种基于现有数据创建预测的计算系统。如何构建神经网络神经网络包括:输入层:根据现有数据获取输入的层隐藏层:使用反
    发表于 07-12 08:02

    matlab实现神经网络 精选资料分享

    神经神经网络,对于神经网络实现是如何直没有具体实现
    发表于 08-18 07:25

    基于BP神经网络的PID控制

    最近在学习电机的智能控制,上周学习了基于单神经元的PID控制,这周研究基于BP神经网络的PID控制。神经网络具有任意非线性表达能力,可以通过对系统性能的学习
    发表于 09-07 07:43

    卷积神经网络维卷积的处理过程

    inference在设备端上做。嵌入式设备的特点是算力不强、memory小。可以通过对神经网络做量化降load和省memory,但有时可能memory还吃紧,就需要对神经网络在memory使用上做进
    发表于 12-23 06:16

    Python从头实现神经网络理解神经网络的原理1

    事情可能会让初学者惊讶:神经网络模型并不复杂!『神经网络』这个词让人觉得很高大上,但实际上神经网络算法要比人们想象的简单。 这篇文章完全是为新手准备的。我们会通过
    的头像 发表于 02-27 15:05 691次阅读
    <b class='flag-5'>用</b><b class='flag-5'>Python</b><b class='flag-5'>从头</b><b class='flag-5'>实现</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>神经网络</b><b class='flag-5'>来</b><b class='flag-5'>理解</b><b class='flag-5'>神经网络</b>的原理1

    Python从头实现神经网络理解神经网络的原理3

    事情可能会让初学者惊讶:神经网络模型并不复杂!『神经网络』这个词让人觉得很高大上,但实际上神经网络算法要比人们想象的简单。 这篇文章完全是为新手准备的。我们会通过
    的头像 发表于 02-27 15:06 727次阅读
    <b class='flag-5'>用</b><b class='flag-5'>Python</b><b class='flag-5'>从头</b><b class='flag-5'>实现</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>神经网络</b><b class='flag-5'>来</b><b class='flag-5'>理解</b><b class='flag-5'>神经网络</b>的原理3

    Python从头实现神经网络理解神经网络的原理4

    事情可能会让初学者惊讶:神经网络模型并不复杂!『神经网络』这个词让人觉得很高大上,但实际上神经网络算法要比人们想象的简单。 这篇文章完全是为新手准备的。我们会通过
    的头像 发表于 02-27 15:06 684次阅读
    <b class='flag-5'>用</b><b class='flag-5'>Python</b><b class='flag-5'>从头</b><b class='flag-5'>实现</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>神经网络</b><b class='flag-5'>来</b><b class='flag-5'>理解</b><b class='flag-5'>神经网络</b>的原理4