神经网络算法介绍(Nerual NetWorks)

article/2025/10/7 23:49:49

神经网络是所谓深度学习的一个基础,也是必备的知识点,他是以人脑中的神经网络作为启发,最著名的算法就是backpropagation算法,这里就简单的整理一下神经网络相关参数,和计算方法。

一、多层向前神经网络(Multilayer Feed-Forward Neural Network)

多层向前神经网络由一下几个部分组成:
输入层(input layer),隐藏层(Hidden layer),输出层(output layer)

这里写图片描述

特点如下:
1、每层由单元(units)组成
2、输入层是有训练集的实例特征向量传入
3、经过连接接点的权重(weight)传入下一层,一层的输出是下一层的输入
4、隐藏层的个数可以是任意的,输入层有一层,输出层有一层
5、每个单元也可以称之为神经结点,根据生物学来源定义
6、以上成为两层的神经网络,输入层是不算在里面的
7、一层中加权求和,然后根据非线性方程转化输出
8、作为多层向前神经网络,理论上,如果有足够的隐藏层,和足够的训练集,可以模拟出任何方程

二、设计神经网络结构

1、使用神经网络训练数据之前,必须确定神经网络的层数,以及每层单元的个数
2、特征向量在被传入输入层时通常要先标准化到0-1之间(为了加速学习过程)
3、离散型变量可以被编码成每一个输入单元对应一个特征值可能赋的值
比如:特征值A可能取三个值(a0, a1, a2), 可以使用3个输入单元来代表A。
如果A=a0, 那么代表a0的单元值就取1, 其他取0;
如果A=a1, 那么代表a1de单元值就取1,其他取0,以此类推
4、神经网络即可以用来做分类(classification)问题,也可以解决回归(regression)问题
(1)对于分类问题,如果是2类,可以用一个输出单元表示(0和1分别代表2类),如果多余2类,则每一个类别用一个输出单元表示
(2)没有明确的规则来设计最好有多少个隐藏层,可以根据实验测试和误差以及精准度来实验并改进

三、交叉验证方法(cross-Validation)

这里有一堆数据,我们把他切成3个部分(当然还可以分的更多)
第一部分做测试集,二三部分做训练集,算出准确度;
第二部分做测试集,一三部分做训练集,算出准确度;
第三部分做测试集,一二部分做训练集,算出准确度;
之后算出三个准确度的平局值,作为最后的准确度,如下图:

这里写图片描述

四、backpropagation算法

他是通过迭代性来处理训练集中的实例,对比经过神经网络后,输人层预测值与真实值之间的误差,再通过反向法(从输出层=>隐藏层=>输入层)以最小化误差来更新每个连接的权重。

- 算法的详细介绍
输入:D(数据集),学习率(learning rate),一个多层向前神经网络
输出:一个训练好的神经网络(a trained neural network)

1.初始化权重和偏向:随机初始化在-1到1之间,或者-0.5到0.5之间,每个单元有一个偏向
2.开始对数据进行训练,步骤如下:
这里写图片描述

  1. 由输入层向前传送

    这里写图片描述
    Ij:要对其进行非线性转化,为下一单元的值
    Oi:是输入的值
    wij:为每个单元到下一个单元连线之间的权重
    θj:偏向

    对Ij进行非线性转化,得到下一个单元的值
    这里写图片描述

  2. 根据误差(error)反向传送

    对于输出层: 这里写图片描述
    对于隐藏层:这里写图片描述
    Errj:用于更新偏向
    Oj:为输出的值
    Tj:为标签的值

    权重更新:这里写图片描述
    括号里为小l ,是学习率(learning rate)

    偏向更新:这里写图片描述

  3. 终止条件
    方法一:权重的更新低于某个阈值
    方法二:预测的错误率低于某个阈值
    方法三:达到预设一定的循环次数

五、Backpropagation算法举例

这里写图片描述
w14…w56这些权重是初始化随机生成的,同样θ4到θ6也是随机生成的
将x的值与每一项的权重相乘求和算出Ij,之后对Ij进行非线性转化,求出输出值

这里写图片描述

之后算出结点上的误差,并对其更新,在如此反复


http://chatgpt.dhexx.cn/article/2nb1e6nU.shtml

相关文章

神经网络算法

参考 神经网络算法 - 云社区 - 腾讯云 目录 1、神经元模型 2、感知机与多层网络 3、误差逆传播算法 4、全局最小与局部最小 5、其他神经网络 1、RBF网络 2、ART网络 3、SOM网络 4、级联相关 5、Elman网络 6、Boltzmann机 6、深度学习 1、神经元模型 神经网络(neu…

人工智能学习——神经网络(matlab+python实现)

人工智能学习——神经网络 文章目录 人工智能学习——神经网络前言一、神经网络理论知识1.人工神经网络的概念2.神经元的概念3.MP神经元模型4.常见的激活函数5.人工神经网络模型种类6.人工神经网络学习方式、规则,分类 二、感知器的介绍1.单层感知器(单层…

神经网络——最易懂最清晰的一篇文章

神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向--深度学习的基础。学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助你理解深度学习技术。 本文以一种简单的,循序的方式讲解神经网络。适合对神经网络了解不多的…

【水滴石穿】报错解决不了

地址:https://github.com/Farukaksungur/React-Native- 转载于:https://www.cnblogs.com/smart-girl/p/10875511.html

GREYONE Data Flow Sensitive Fuzzing

目录 Abstract Introduction 1.1questions to address 1.2 our solution 1.3 result 2 design of greyone 2.1 Fuzzer-driven Taint Inference 2.1.1 Taint inference 2.1.2 Comparison with Traditional Taint Analysis. 2.1.3 Identify Direct Copies of Inputs. …

论文中文翻译——kAFL Hardware-Assisted Feedback Fuzzing for OS Kernels

本论文相关内容 论文下载地址——26th USENIX Security Symposium论文中文翻译——kAFL Hardware-Assisted Feedback Fuzzing for OS Kernels 文章目录 本论文相关内容前言kAFL:操作系统内核的硬件辅助反馈Fuzzing作者信息论文来源主办方信息摘要1 引言2 技术背景2…

ROS1云课→29如何借助导航实现走迷宫机器人

ROS1云课→28机器人代价地图配置 简述: 在这个项目中,将创建一个机器人,它将进入一个迷宫形式的房间,然后从另一个点离开房间。 详细: 在行业中,有些地方机器人可以收集加工过的物体并将这些物体放入仓库。…

Recent Fuzzing Papers

Recent Papers Related To Fuzzing 原文在GitHub上进行更新: https://github.com/wcventure/FuzzingPaper All Papers Interesting Fuzzing DifFuzz: Differential Fuzzing for Side-Channel Analysis (ICSE 2019)REST-ler: Stateful REST API Fuzzing (ICSE 2019…

符号测执行软件测试,基于符号执行与模糊测试的混合测试方法

1 引言 随着信息技术的发展, 软件已经渗透到现代社会的方方面面, 而由于开发不当引入的软件漏洞也日益增多.据统计, 最近5年内软件漏洞数增加了38%, 而仅在2016年~2017年间就增加了14%[.软件测试是检测软件漏洞的一种主要方法, 当前工业界的主流方法还是通过手工设计测试用例来…

java Scanner和异常

Java Scanner 类 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。 下面是创建 Scanner 对象的基本语法: Scanner s new Scanner(System.in); 接下来我们演示一个最简单的的数据输入,并通过 Scanner 类的 ne…

简单理解符号执行技术

0X00 前言 因为最近看的很多静态检测的论文中涉及到了符号执行的概念,而在我第一次听到符号执行实际上是在我的一些搞二进制学长口中,自然认为是和 web 没啥关系,但是现在看来只是因为我我太菜了,很多知识在更高的层次看起来都是…

AFL-Unicorn中的fork server机制详解

AFL-Unicorn AFL-Unicorn的基本工作流程如上图所示。 先将目标二进制代码装载至Unicorn-based test harness的内存映射中,设置初始状态,并从磁盘加载由 AFL 变异的inputs。 然后test harness会模拟目标二进制代码,如果它检测到crash或error&…

模糊测试阅读笔记

1、 什么是模糊测试 模糊测试最初是由Barton Miller于1989在威斯康星大学开发的。模糊测试是一种软件测试技术,也是一种安全测试。 模糊测试或Fuzzing是一种软件测试技术,它将称为Fuzz的无效或随机数据放入软件系统,以发现编码错误和安全漏…

模糊测试的简介

了解模糊测试、污点分析的相关内容配置KLEE等生产环境。分析模糊测试的优缺点 模糊测试 核心思想:模糊测试是一种软件漏洞自动挖掘技术,其核心思想是将一段数据输送给目标软件,并监控 / 判断程序行为特征,如崩溃、断言失败等&am…

Driller、Exploit自动生成引擎 Rex

来自 UCSB 的团队 Shellphish,为参加 DARPA 举办的 CGC 竞赛,设计并实现了 CRS(Cyber Reasoning System)Mechaphish。该系统包含自动化漏洞挖掘模块 Driller、Exploit自动生成引擎 Rex、自动补丁模块 Patcherex 以及 ropchain 生成模块 angrop。本文主要对其中的 Exploit 自…

Driller复现

文章:(2016-NDSS)Driller - Argumenting Fuzzing Through Selective Symbolic Execution 安装 环境:ubuntu 16.04 下载docker镜像:pull shellphish/mechaphish 运行镜像:docker run -it --privileged shellphish/mechaphish:la…

driller/shellphish安装与简单例程

因为在学习过程中有用到driller,但是安装过程中经常碰到奇奇怪怪的问题,尤其是angr 8发布后全面放弃python2,导致兼容性较差,本人将最后安装成功的过程记录下来,仅供参考。注,时间为2018.11.27,…

Driller分析与改进(二)

Author:ZERO-A-ONEDate:2021-03-20 这个部门我们主要介绍Driller的安装与使用,我使用的环境是腾讯云的VPS: CPU:Intel Xeon Platinum 8255C CPU 2.50GHz * 4vCPUsRAM:4GBOS:Ubuntu 18.04 LTS…

Driller分析与改进(一)

Author:ZERO-A-ONEDate:2021-03-19 一、引子 ​ 关注我的读者们应该对模糊测和符号执行两种技术已经十分熟悉了,那我觉得读者们一定会自然而然的联想到,是不是会存在一种可能性,将模糊测试和符号执行相结合起来&…

Android UVCCamera问题——Cause: null pointer dereference

记录遇到的问题。 采用的开源库链接:https://github.com/saki4510t/UVCCamera 使用该库预览的时候,如果拔掉uvc设备,会造成异常闪退。 signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 Cause: null pointer dereferencer0 000…