主动学习基础-贝叶斯神经网络

引言

传统的深度神经网络一般都有过度自信的问题。
即使我给神经网络提供一个从来没有训练过的类别图像,神经网络也会输出一个类别。比如训练猫狗的分类器,如果你抛出一个人的图像,网络也会将其分类为猫或者狗。

在几乎所有现实世界的问题中,我们想要的不仅仅是结果,还需要对该结果的信心/确定性的了解。如果正在制造自动驾驶汽车,不仅要检测行人,还要表达对该物体是行人而不是交通锥的信心。

在贝叶斯世界观中,一切都具有概率分布,包括模型参数(神经网络中的权重和偏差)。在编程语言中,我们有可以采用特定值的变量,每次访问该变量时,您都会获得相同的值。与此相反,在贝叶斯世界中,我们有类似的实体,称为随机变量,每次访问它时都会给出不同的值。

从随机变量中获取新值的过程称为采样。得出什么值取决于随机变量的相关概率分布。与随机变量相关的概率分布越宽,其值的不确定性就越大,因为它可以根据(宽)概率分布取任何值。

在传统的神经网络中,有固定的权重和偏差来确定输入如何转换为输出。
在贝叶斯神经网络中,所有权重和偏差都有一个概率分布。要对图像进行分类,需要对网络进行多次运行(前向传递),每次都使用一组新的采样权重和偏差。

每次运行得到一组,得到多组输出值。输出值集表示输出值的概率分布,因此可以找出每个输出的置信度和不确定性。所以,对输入图像是网络从未见过的东西,那么对于所有输出类别,不确定性将会很高。

贝叶斯定理:

贝叶斯定理

A:神经网络参数 (权重和偏差的初始概率分布)
B:训练数据
使用数据来找出权重和偏差的更新分布P(A | B)

P(A):神经网络参数的先验。
P(B|A):在给定参数,我们可以多次运行(前向传递),每次都使用一组新的采样权重和偏差。每次运行得到一组,得到多组输出值,输出值集表示输出值的概率分布。

在这里插入图片描述

P(B)计算很困难,在所有可能的参数值下观察数据(输入/输出对)的概率,并按各自的概率加权。 evidence

在这里插入图片描述

  • 参数Aj的值范围可以从 负无穷大到 正无穷大

  • 对于该范围内的每个Aj值,您必须运行模型来查找生成您观察到的输入、输出对的可能性(总数据集可能有数百万对)

  • 这样的参数可能不止一个,而是很多个 (可能上百万)

上面是后验的枚举方法,还有其他方法

  1. 基于抽样的方法 蒙特卡罗方法( Monte-Carlo )
    对于复杂的贝叶斯模型,例如具有 800 万个参数的神经网络,蒙特卡罗方法的收敛速度仍然很慢,并且可能需要数周时间才能发现完整的后验。
  2. 优化方法:变分贝叶斯

P(z|x)在分布空间中,在这个分布空间的一个分布族Q,找一个分布q*∈Q与P(z|x)的距离最近

找一个q*∈Q去估计P(z|x)
在这里插入图片描述

L经常用KL散度,两个分布差异的度量。
在这里插入图片描述

这个是不能直接计算的,因为P(z|x)是未知,进行转化:
在这里插入图片描述

ELBO evidence lower bound,
KL 大于等于0 ,logp(x) constant ;evidence
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

变分贝叶斯方法的要点是由于我们无法精确计算后验概率,因此我们可以找到最接近它的“行为良好”的概率分布。在“行为良好”的分布中随机初始化参数后,可以进行梯度下降并每次稍微修改分布的参数(例如均值或方差),以查看结果分布是否更接近后验分布。度量接近程度用ELBO.

蓝色曲线是进行(枚举)计算得到的真实后验。 因为他是一种像正态分布一样表现良好的分布,绿色曲线的整个形状可以用一个参数 Z 来描述。变分贝叶斯方法所做的是使用梯度下降方法来随机改变 Z 参数的值初始化值为其结果分布最接近真实后验的值。优化结束时,绿色曲线与蓝色曲线并不完全相同,但非常相似。我们可以安全地使用近似的绿色曲线而不是未知的真实蓝色曲线来进行预测。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Netty通信中的粘包半包问题(一)

前言 我们在日常开发过程中,客户端和服务端的连接大多使用的是TCP协议,因为我们要保证数据的可靠传输, 当网络中出现丢包时要求,要求数据包的发送端重传给接收端。而TCP是一种面向连接的传输层协议, 当使用TCP进行传输时&#xf…

YOLOv5改进有效涨点目录 | 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制

⭐ YOLOv5改进有效系列目录 ⭐ 前言 Hello,各位读者们好 本专栏自开设一个月以来已经更新改进教程70余篇其中包含C2f、主干、检测头、注意力机制、Neck多种结构上创新,也有损失函数和一些细节点上的创新。同时本人一些讲解视频和包含我所有创新的YOLO…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷⑥

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷6 目录 需要竞赛软件包环境以及备赛资源可私信博主!!! 2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷6 模块一…

MySQL:DML数据操作语言(添加,删除,修改),DDL数据查询语言(条件查询,分组查询,排序查询,分页查询)

目录 1.DML(数据操作语言)1.添加数据2.修改数据3.删除数据 2.DQL(数据查询语言)1.DQL-语法2.基本查询3.条件查询(WHERE)1.语法:2.条件:3.案例: 4.聚合函数1.介绍2.常见聚合函数3.语法4.案例 5.分组查询(GROUP BY&#…

Proteus仿真stm32f103r6输出PWM/正弦波

资料下载地址:Proteus仿真stm32f103r6输出PWM/正弦波 一、仿真图 Proteus仿真stm32f103r6输出PWM/正弦波 二、程序 #include "pbdata.h"u16 fre; void RCC_Configuration(void); void GPIO_Configuration(void); void TIM3_Configuration();void Dela…

SpringBoot项目docker镜像生成

1. 本文思路 拉取基础镜像基于镜像创建容器在容器中,安装所需依赖部署脚本提交容器,生成新的镜像编写Dockerfile,添加启动命令,生成最终镜像导出镜像 2. 操作步骤 2.1 基础环境 # 拉取镜像 docker pull centos:7.6.1810 # 运行…

C++ n皇后问题 || 深度优先搜索模版题

n− 皇后问题是指将 n 个皇后放在 nn 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数 n ,请你输出所有的满足条件的棋子摆法。 输入格式 共一行,包含整数 n 。 …

迅为RK3568开发板Android11/12/Linux编译驱动到内核

在平时的驱动开发中,经常需要在内核中配置某种功能,为了方便大家开发和学习,本小 节讲解如何在内核中添加驱动。具体的讲解原理讲解请参考本手册的驱动教程。 Android11 源码如果想要修改内核,可以运行以下命令进行修改: cd ke…

机器学习_8、支持向量机

支持向量机解决鸢尾花数据集分类问题 # 导入鸢尾花数据集 from sklearn.datasets import load_iris import pandas as pd import numpy as npiris_data load_iris() Xiris_data.data yiris_data.target# 划分训练集与测试集 from sklearn.model_selection import train_test_…

【PaperReading- VLM】1. FERRET

CategoryContent论文题目FERRET: REFER AND GROUND ANYTHING ANYWHERE AT ANY GRANULARITY作者Haoxuan You (Columbia University), Haotian Zhang, Zhe Gan, Xianzhi Du, Bowen Zhang, Zirui Wang, Liangliang Cao (Apple AI/ML), Shih-Fu Chang (Columbia University), Yinfe…

【java】Error:java: 无效的源发行版: 12,只需三步

运行项目报错 “Error:java: 无效的源发行版: 12” 先在file下的project Structure 下选择 Project 将 Project language level 选择版本 8 对应的。 然后点击右下角的Apply OK 再在file下的project Structure 下选择Moudels ,将该项目的Sources改为8. 然后点击右下角的Apply…

Logstash应用介绍

1.Logstash介绍 1.1 前世今生 Logstash 项目诞生于 2009 年 8 月 2 日。其作者是世界著名的运维工程师乔丹西塞(JordanSissel),乔丹西塞当时是著名虚拟主机托管商 DreamHost 的员工。 Logstash 动手很早,对比一下,scribed 诞生于 2008 年&am…

zabbix监控部署

目录 一、什么是zabbix? 二、zabbix监控原理 三、zabbix常见的五个程序 四、zabbix监控mysql实验 1、部署服务端 2、部署客户端 3、自定义监控内容 一、什么是zabbix? zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的…

Java应用实践课程设计——背诵单词助手

项目描述 该项目实现了一个简单的单词背诵小助手系统,包括管理员模块和用户模块。管理员可以对CET4表进行增加、删除、修改和查询等操作;用户可背诵CET4表中的单词,回顾已掌握和未掌握的单词。 数据库设计——words.sql

JVM加载class文件的原理机制

1、JVM 简介 JVM 是我们Javaer 的最基本功底了,刚开始学Java 的时候,一般都是从“Hello World ”开始的,然后会写个复杂点class ,然后再找一些开源框架,比如Spring ,Hibernate 等等,再然后就开发…

物联网通讯协议NB-lot和LoRa差异分析

像把大象装冰箱一样,物联网,万物互联也是要分步骤的。 一、感知层(信息获取层),即利用各种传感器等设备随时随地获取物体的信息; 二、网络层(信息传输层),通过各种电信网络与互联网的融合,将物体的信息实时准确地传递…

大数据 - Doris系列《三》- 数据表设计之表的基本概念

目录 🐶3.1 字段类型 🐶3.2 表的基本概念 3.2.1 Row & Column 3.2.2 分区与分桶 🥙3.2.2.1 Partition 1. Range 分区 2. List 分区 进阶:复合分区与单分区的选择 3.2.3 PROPERTIES 🥙3.2.3.1 分片副本数 &#x1f…

使用MySQL的过程中,有没有遇到过count()比较慢的情况?

count(*)的实现方式 MyISAM引擎把一个表的总行数存在了磁盘上,执行count(*)的时候直接返回这个数,效率很高; InnoDB引擎执行count(*)的时候,需要把数据一行一行地从引擎里面读出来,然后累积计数。 上述说明是在没有…

【MATLAB源码-第107期】基于matlab的OFDM系统在瑞利信道下功率分配仿真,使用注水算法。

操作环境: MATLAB 2022a 1、算法描述 在瑞利衰落信道下,OFDM(正交频分复用)系统的功率分配可以通过“注水算法”(water-filling algorithm)的方法来优化。这种算法的目的是在不同的子载波上分配不同的功…

蓝桥杯省赛无忧 STL 课件11 pair

01 pair的定义和结构 在C中&#xff0c;pair是一个模板类&#xff0c;用于表示一对值的组合&#xff0c;它位于头文件中。 pair类的定义如下: template<class T1,class T2>struct pair{T1 first;//第一个值T2 second;//第二个值// 构造函数pair();pair(const T1& X…