TensorFlow入门(十七、神经元的拟合原理)

深度学习的概念源于人工神经网络的研究,神经网络是由多个神经元组成,。一个神经元由以下几个关键知识点组成:

                                ①激活函数                ②损失函数                ③梯度下降

单个神经元的网络模型如图所示

用计算公式表达如下:

z为输出的结果,x为输入,w为权重,b为偏置值。z的计算过程是将输入的x与其对应的w相乘,然后再把结果加上偏置值b。

模型每次的训练学习是为了调整w和b从而得到一个合适的值,最终由这个值配合运算公式所形成的逻辑就是神经网络的模型。可以看一下大脑细胞里的神经突触。它和我们建立的模型有点神似。

        大脑神经细胞是靠生物电来传递信号的,可以把它理解成经过模型的具体数值

        神经细胞相连的树突有粗有细,显然对通过不同粗细连接的生物电信号,会有不同的影响。这类似权重w,因为每个输入节点都会与相关连接的w相乘,也就实现了对信号的放大、缩小处理

        中间的细胞体是不知道如何运作的。可以将所有输入的信号经过w变换之后,再添加一个额外的偏置量b,把它们加在一起求和,然后再选择一个模拟细胞体处理的函数(即激活函数)来实现整个过程的仿真。当通过调整w和b得到一个合适的值后,再配合合适的激活函数,就会发现它可以产生很好的拟合效果,从而得出细胞体的运作逻辑。

正向传播

        模拟细胞体的仿真过程中,将数据从输入到输出的这种流向传递过程,称为正向传播。且该过程是在一个假设有合适的w和b的基础上,才可以实现对现实环境的正确拟合。然而,在现实环境中,是不知道w和b的值具体是多少才算正常的。

反向传播

        反向传播的目的 : 告诉模型w和b的值调整到多少合适。

        在一开始没有得到合适的权重时,正向传播生成的结果与实际的标签是有误差的,反向传播就是要把这个误差传递给权重,让权重做适当地调整来达到一个合适的输出。

        代码示例如下:

#反向优化
cost = tf.reduce_mean(tf.square(Y - z))
learning_rate = 0.01
#使用梯度下降算法
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)

        实际训练过程中,模型需要通过多次迭代一点一点的修正,直到输出值与实际标签值的误差小于某个阈值为止。这个过程中,还需要将输出的误差转化为权重的误差,经常使用的算法是误差反向传播算法,也就是BP算法。

        为了要让损失值变得最小化,需要通过对其求导的方式,找到最小值时刻的函数切线斜率(也就是梯度),从而让w和b的值沿着这个梯度来调整。至于每次调整多少,我们引入一个叫做"学习率"的参数来控制,这样通过不断的迭代,使误差逐步接近最小值,最终找到w和b的合适值,达到拟合的效果。

误差反向传播算法-BP算法的思想

        反向传播使用的BP算法是应用较为广泛的一种参数学习算法。它是一种按照误差逆向传播算法训练的多层前馈神经网络。

        该算法的核心思想就是通过输出层得到输出结果和期望输出的误差来间接调整隐层的权值。

        BP算法的模型示意图如下:

        BP算法的学习过程由信号的正向传播(求损失)与误差的反向传播(误差回传)两个过程组成:

                正向传播FP(求损失) : 在这个过程中,根据输入的样本、给定的初始化权重值w和偏置量b,计算最终输出值以及输出值与实际值之间的损失值。如果损失值不在给定的范围内则进行反向传播的过程,否则停止w、b的更新。

                反向传播BP(回传误差) : 将输出以某种形式通过隐层向输入层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。

        由于BP算法是通过传递误差值δ进行更新求解权重值w和偏置值b,所以BP算法也常常被叫做δ算法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/100737.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python大数据之Python进阶(五)线程

文章目录 线程1. 线程的介绍2. 线程的概念3. 线程的作用4. 小结 线程 学习目标 能够知道线程的作用 1. 线程的介绍 在Python中,想要实现多任务除了使用进程,还可以使用线程来完成,线程是实现多任务的另外一种方式。 2. 线程的概念 线程是进程…

安装JAVA 依赖环境 Maven 教程

一、下载链接与Tips Maven 过去版本下载传送门:( Java 8 兼容 Java 7,即 Java 8 的 JDK 能运行 3.8.8 以下的 Maven) Maven Releases History Download 点击 release notes 点击 available for download. 选择 bin 的安装包 然…

数据库的主键和外键

概念介绍 数据库中的主键(Primary Key)和外键(Foreign Key)是用于建立数据表之间关系的两个重要概念,让我用通俗易懂的话解释它们: 主键(Primary Key): 主键就像是每个…

2512. 奖励最顶尖的 K 名学生

给你两个字符串数组 positive_feedback 和 negative_feedback ,分别包含表示正面的和负面的词汇。不会 有单词同时是正面的和负面的。 一开始,每位学生分数为 0 。每个正面的单词会给学生的分数 加 3 分,每个负面的词会给学生的分数 减 1 分…

深度学习DAY2:n-gram

什么是LM(language model语言模型)? 引例: 1、统计机器学习时期的语言模型–语音识别 2、贝叶斯公式求P(s|A)——在有了语音信号的前提下是文本的概率 1 n-gram模型概述 n-gram模型是一种统计语言模型,用于建模文本数据中的语言结构。…

【Java】微服务——Feign远程调用

目录 1.Feign替代RestTemplate1)引入依赖2)添加注解3)编写Feign的客户端4)测试5)总结 2.自定义配置2.1.配置文件方式2.2.Java代码方式 3.Feign使用优化4.最佳实践4.1.继承方式4.2.抽取方式4.3.实现基于抽取的最佳实践1…

【深度学习】Chinese-CLIP 使用教程,图文检索,跨模态检索,零样本图片分类

代码:https://github.com/OFA-Sys/Chinese-CLIP/blob/master/deployment.md 文章目录 安装环境和onnx推理转换所有模型为onnx测试所有onnx模型的脚本onnx cpu方式执行docker镜像 安装环境和onnx推理 安装环境,下载权重放置到指定目录,进行on…

制造业进销存管理怎么做?

进销存是什么?生产制造业如何进行进销存管理?制造进销存都能为企业提供什么?进销存管理系统的优势?本文将带大家深入浅出的聊聊制造进销存,全面剖析制造进销存的前世今生。 接下来我会通过一些例子为大家深入浅出的讲…

LeetCode 面试题 08.08. 有重复字符串的排列组合

文章目录 一、题目二、C# 题解 一、题目 有重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合。 示例1: 输入:S “qqe” 输出:[“eqq”,“qeq”,“qqe”] 示例2: 输入:S “ab” 输出:[“ab”, “ba”…

数据结构与算法—时间复杂度和空间复杂度

目录 1. 什么是数据结构? 2.什么是算法? 3、算法的复杂度 4、时间复杂度 (1) 时间复杂度的概念: (2) 大O的渐进表示法: 六个例题: (3) 时间复杂度对比: 两个例题: OJ题分析时间复杂度…

【快速入门】JVM之类加载机制与Native

感慨: 如何定义一个合格的Java程序员,Java程序员要了解掌握哪些知识点,网上的面试题太多了,后端需要了解掌握的知识点太多太多了,Java基础、数据结构、异常、多线程、Spring、Spring boot、事务、算法、数据库&#xf…

iOS CGRect CGPoint NSRange等结构体的NSLog打印输出

iOS的UIKit里提供了UIGeometry.h内有各结构体转换成NSString的方法,可用于打印输出; UIKIT_EXTERN NSString *NSStringFromCGPoint(CGPoint point); UIKIT_EXTERN NSString *NSStringFromCGVector(CGVector vector); UIKIT_EXTERN NSString *NSStringFr…

Transformer [Attention is All You Need]

(一)论文部分 Abstract (1)The best performing models also connect the encoder and decoder through an attention mechanism. 最好的性能通过注意力机制将编码器和解码器连接在一起。 (2)the Transformer, based solely on attention mechanisms,…

家政预约服务APP小程序搭建,功能支持定制

家政预约服务APP小程序搭建,功能支持定制,后期升级无忧.团队自主研发家政APP系统,正版源码,售后技术保障! 家政系统客户端 搭建专属私城流量平台,让您插上互联网的翅膀。找月嫂,育婴…

【Java】Java 代码注释是代码逻辑的灵魂

Java 代码注释是代码逻辑的灵魂 作为程序员来说,写注释是一个非常重要的习惯。尽管编写注释可能需要额外的时间和努力,但它能够给你和其他人在代码中留下重要的信息,使得代码更易于理解和维护。注释可以解释代码的意图、算法的思路、特殊的设…

Vue思考题_01v-for与v-if的优先级谁更高

目录 vue2vue3 官方文档上说不推荐将v-for与v-if在同一个标签上使用&#xff0c;因为两者优先级并不明显。 那么到底是那个指令的优先级比较高呢&#xff1f; 在vue2与vue3中答案是相反的。 vue2 在vue2中将2个指令放在同一个标签上 <template><ul><li v-fo…

竞赛 深度学习 大数据 股票预测系统 - python lstm

文章目录 0 前言1 课题意义1.1 股票预测主流方法 2 什么是LSTM2.1 循环神经网络2.1 LSTM诞生 2 如何用LSTM做股票预测2.1 算法构建流程2.2 部分代码 3 实现效果3.1 数据3.2 预测结果项目运行展示开发环境数据获取 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天…

怎么防止重要文件夹丢失?文件夹安全如何保护?

我们在使用电脑的过程中&#xff0c;会将重要数据放在文件夹中&#xff0c;那么&#xff0c;我们该怎么防止重要文件夹丢失呢&#xff1f;下面我们就一起来了解一下。 EFS加密 EFS加密可以对于NTFS卷上的文件夹进行加密&#xff0c;加密后的文件夹将只允许加密时登录系统的用户…

Linux网络编程- struct packet_mreq setsockopt()

struct packet_mreq struct packet_mreq 是一个数据结构&#xff0c;用于 Linux 中的原始数据包套接字&#xff0c;当我们想改变套接字的行为以接收特定类型的数据包时&#xff0c;它与 setsockopt() 函数配合使用。 下面是 struct packet_mreq 的定义&#xff1a; struct p…

zookeeper节点数据类型介绍及集群搭建

一、zookeeper介绍 zookeeper官网&#xff1a;Apache ZooKeeper zookeeper是一个分布式协调框架&#xff0c;保证的是CP&#xff0c;即一致性和分区容错性&#xff1b;zookeeper是一个分布式文件存储系统&#xff0c;文件节点可以存储数据&#xff0c;监听子文件节点等可以实…