神经网络入门:从感知机到激活函数
什么是神经网络
神经网络(Neural Network) 是一种模拟生物神经系统工作方式的计算模型,是机器学习和深度学习的核心组成部分。它的设计灵感来源于人脑中神经元之间的连接和信息传递方式。神经网络通过模拟这种结构,能够从数据中学习复杂的模式和关系,并用于解决各种任务,如分类、回归、生成等。
神经网络的一些基本概念
神经网络的基本组成
神经网络由多个层(layers)组成,每一层包含多个神经元(neurons),神经元之间通过**权重(weights)和偏置(biases)**连接。以下是神经网络的核心组件:
神经元(Neuron)
- 神经元是神经网络的基本单元,模拟生物神经元的工作方式。
- 每个神经元接收来自其他神经元的输入,对这些输入进行加权求和,然后通过一个激活函数(Activation Function)生成输出。
数学表达式:
其中:
是输入,
是权重,
是偏置,
是激活函数(如 Sigmoid、ReLU 等)。
层(Layer)
- 输入层(Input Layer):接收原始数据(如图像像素、文本向量等)。
- 隐藏层(Hidden Layer):通过非线性变换提取数据的特征。一个神经网络可以有多个隐藏层。
- 输出层(Output Layer):生成最终的预测结果(如分类概率、回归值等)。
权重和偏置(Weights and Biases)
- 权重(Weights):连接神经元之间的参数,决定输入对输出的影响程度。
- 偏置(Biases):为每个神经元添加一个额外的参数,用于调整输出的偏移。
激活函数(Activation Function)
- 激活函数引入非线性,使神经网络能够学习复杂的模式。
- 常见的激活函数包括:
-
- Sigmoid:将输入映射到 (0, 1) 区间。
- ReLU(Rectified Linear Unit):
,是目前最常用的激活函数。
- Tanh:将输入映射到 (-1, 1) 区间。
- Softmax:用于多分类任务的输出层,将输入转换为概率分布。
什么是感知机
感知机是由 Frank Rosenblatt 在 1957 年提出的一种二分类模型,是神经网络的最早形式之一。它的结构非常简单,可以看作是一个单层的神经网络。
下面我们来看一个感知机的示例(最简单的神经网络),在一个区块中有蓝橙两种颗粒,让感知机分别识别出其中的橙色和蓝色(简单的二分类)。
实验中的要素的一些解释:
数据点的颜色(蓝色和橙色)
- 含义:表示数据点的真实类别(标签)。
- 蓝色点:属于类别 A。
- 橙色点:属于类别 B。
- 分布:当前数据集是“圆形分布”(
dataset=circle
),因此数据点会围绕中心形成内外两个环形区域(内圈和外圈),不同颜色代表不同类别。背景区块的颜色(渐变区域)
- 含义:表示模型对输入空间的分类预测结果。
- 蓝色区域:模型预测该区域属于类别 A。
- 橙色区域:模型预测该区域属于类别 B。
- 分界线:颜色过渡的交界处是模型的“决策边界”。边界越清晰,说明模型对分类结果越自信;边界模糊则表示模型对某些区域的分类存在不确定性。
示例说明:其中蓝色的点和黄色的点代表其真实的颜色,正方形区域的背景色是预测的颜色,上图是初始化状态即模型还没开始预测的状态。
上图是预测后的状态,可以看到正方形的区域已经有了蓝色背景和橙色背景(效果不是很好,蓝色和橙色并没有完全的区分开),目前只有一层神经网络和一个神经元,我们尝试再增加几个神经元试试。
可以看到加了2个神经元后,橙色和蓝色的区分效果变的更好一点了(正方形区域的左侧又有一块被识别出是橙色),我们尝试再增加几层神经网络试试效果。
加了一层神经网络后,效果还是不是特别理想,我们发现模型在预测的时候,预测的区块总是竖装的去划分,可以看到我们喂的FEATURES是竖装的橙蓝亮色,我们尝试去喂更多结构的特征试试。
可以看到再加了一个新的特征输入后,模型的预测结果准确度有了明显的提升,最后我们再看看把所有的示例特征都输入看看:
完美!
什么是激活函数
激活函数的核心作用
引入非线性
- 神经网络若无激活函数,多层叠加仍等效于单层线性变换,无法拟合复杂非线性关系。
控制输出范围
- 将神经元输出限制在特定区间(如Sigmoid输出0~1,Tanh输出-1~1),避免数值爆炸。
决策阈值化
- 模拟生物神经元的“触发”机制(如ReLU过滤负值,Softmax生成概率分布)。
常用激活函数对比
以下为6种常用激活函数的特性总结:
激活函数 | 公式 | 输出范围 | 优点 | 缺点 | 适用场景 |
Sigmoid | (0, 1) | 输出平滑,适合概率解释 | 梯度消失(两端饱和)、计算成本高 | 二分类输出层、门控单元(LSTM) | |
Tanh | (-1, 1) | 中心对称,梯度更强 | 梯度消失(同Sigmoid) | 隐藏层、RNN | |
ReLU | [0, +∞) | 计算高效,缓解梯度消失 | Dead ReLU(负输入无梯度) | 隐藏层(CNN、MLP主流选择) | |
Leaky ReLU | (-∞, +∞) | 解决Dead ReLU问题 | 需调参α,效果依赖实现 | 隐藏层(ReLU改进版) | |
Softmax | (0,1)且和为1 | 输出概率分布,天然多分类适配 | 仅用于输出层,数值不稳定需优化 | 多分类输出层 | |
Swish | (-∞, +∞) | 平滑非单调,实验性能优于ReLU | 计算成本略高 | 替代ReLU的隐藏层 |
激活函数特性详解
1. Sigmoid与Tanh的梯度问题
- 梯度消失:当输入绝对值较大时,导数趋近于0(如Sigmoid导数最大仅0.25),反向传播时梯度逐层衰减,导致深层网络难以训练。
- 解决方案:深层网络中优先使用ReLU及其变体。
2. ReLU家族的核心优势
- 稀疏激活:约50%神经元在训练中被抑制(输出为0),减少参数依赖,增强泛化能力。
- 梯度保持:正区间导数为1,避免梯度衰减,加速收敛。
3. Softmax的特殊性
- 归一化竞争:通过指数放大差异,使最大值的概率显著高于其他类别,适合互斥分类任务。
- 数值稳定性:实现时需减去最大值(xi=xi−max(x)xi=xi−max(x))防止指数爆炸。
激活函数选择指南
网络层 | 推荐激活函数 | 原因 |
隐藏层 | ReLU / Leaky ReLU / Swish | 计算高效,缓解梯度消失,适合深层网络 |
二分类输出层 | Sigmoid | 输出0~1概率值,天然适配二分类决策 |
多分类输出层 | Softmax | 输出概率分布,总和为1,适配互斥分类 |
回归任务输出层 | 线性(无激活) | 直接输出连续值,无需限制范围 |
RNN/LSTM | Tanh / Sigmoid | Tanh用于状态更新(中心化),Sigmoid用于门控(0~1开关) |
激活函数实例
还是之前的二分类的例子,ReLU函数
Tanh函数
Sigmoid函数
附录
实验地址来源:A Neural Network Playground (大家感兴趣的可以直接上去做实验)
神经网络学习视频:【官方双语】深度学习之神经网络的结构 Part 1 ver 2.0_哔哩哔哩_bilibili
相关文章:
神经网络入门:从感知机到激活函数
什么是神经网络 神经网络(Neural Network) 是一种模拟生物神经系统工作方式的计算模型,是机器学习和深度学习的核心组成部分。它的设计灵感来源于人脑中神经元之间的连接和信息传递方式。神经网络通过模拟这种结构,能够从数据中学…...
第04章 13 管道信息对象分类说明
在VTK(Visualization Toolkit)中,管道信息(Pipeline Information)是一个重要的概念,它允许管道中的不同对象之间传递元数据和执行策略。这些信息对象帮助协调管道中各个组件的操作,确保数据在传…...
AI 发展是否正在放缓?AI 发展将驶向何方?
编者按: 人工智能真的已经遇到发展瓶颈了吗?随着 OpenAI、Google 和 Anthropic 等顶级 AI 公司纷纷表示新模型开发收益在减少,这个问题引发了整个行业的深度思考。 我们今天为大家带来的这篇文章,作者的核心观点是:虽然…...
一个简单的自适应html5导航模板
一个简单的 HTML 导航模板示例,它包含基本的导航栏结构,同时使用了 CSS 进行样式美化,让导航栏看起来更美观。另外,还添加了一些 JavaScript 代码,用于在移动端实现导航菜单的展开和收起功能。 PHP <!DOCTYPE htm…...
CrypTen——基于pytorch的隐私保护机器学习框架
目录 一、CrypTen概述 二、应用场景 三、CrypTen优势 四、CrypTen技术解析 1.基于pytorch的构建基础 2.核心密码学原语 3.加密模型训练流程 五、传统隐私保护技术与CrypTen的对比 1.传统隐私保护技术介绍 2.CrypTen与传统隐私保护技术的区别 六、CrypTen的环境配置…...
日志模块升级,采用sleuth实现日志链路追踪
文章目录 1.common-log4j2-starter1.目录结构2.pom.xml 引入sleuth3.application.yml 开启Sleuth4.log4j2-spring.xml xiugai 日志输出格式5.TraceIdFilter.java 输出带有TraceId的箭头6.LogAspect.java 更改AOP的范围(因为后面出现了栈溢出问题)7.pom.x…...
84,【8】BUUCTF WEB [羊城杯 2020]Blackcat
进入靶场 音乐硬控我3分钟 回去看源码 <?php // 检查 POST 请求中是否包含 Black-Cat-Sheriff 和 One-ear 字段 // 如果任意一个字段为空,则输出错误信息并终止脚本执行 if(empty($_POST[Black-Cat-Sheriff]) || empty($_POST[One-ear])){die(请提供 Black-C…...
中信证券、安我保险-安我股保联合策略
中信证券2025年资本市场年会在深圳开幕,会议以“站上起跑线”为主题,对2025年全球金融市场、宏观经济与政策、A股市场投资策略、大类资产配置、资本市场新格局下的各经济领域发展趋势进行了全面展望。 据悉,中信证券2025年资本市场年会,现场邀请了百余位顶尖学者、产业专家、企…...
WPF实战案例 | C# WPF实现大学选课系统
WPF实战案例 | C# WPF实现大学选课系统 一、设计来源1.1 主界面1.2 登录界面1.3 新增课程界面1.4 修改密码界面 二、效果和源码2.1 界面设计(XAML)2.2 代码逻辑(C#) 源码下载更多优质源码分享 作者:xcLeigh 文章地址&a…...
如何在Spring Boot项目中高效集成Spring Security
1 Spring Security 介绍 Spring Security 是一个功能强大且高度可定制的安全框架,专为保护基于Java的应用程序而设计。它不仅提供了认证(Authentication)和授权(Authorization)的功能,还支持防止各种常见的安全攻击模式。本文将详细介绍Spring Security的主要特点、功能…...
浅谈Unity中Canvas的三种渲染模式
Overview UGUI通过 Canvas 组件渲染和管理UI元素。Canvas 是 UI 元素的容器,它决定了 UI 元素的渲染方式以及它们在屏幕上的显示效果。Canvas 有三种主要的渲染模式,每种模式有不同的用途和特点。本文将介绍这三种渲染模式 1. Screen Space - Overlay 模…...
组件中的emit
我们从页面向子组件传递参数时,我们可以使用props;我们从页面向子组件传递模板片段时,可以使用slots;当我们需要子组件传递参数给调用它的页面时,我们可以使用emit进行参数传递。 例如: <template>…...
java发送邮件
文章目录 需要的依赖发送邮件准备申请授权码 配置文件测试代码 遇到的问题 需要的依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><…...
网络安全 | F5-Attack Signatures-Set详解
关注:CodingTechWork 创建和分配攻击签名集 可以通过两种方式创建攻击签名集:使用过滤器或手动选择要包含的签名。 基于过滤器的签名集仅基于在签名过滤器中定义的标准。基于过滤器的签名集的优点在于,可以专注于定义用户感兴趣的攻击签名…...
左右互搏03-so调用java md5-android开发
依然走动态注册 新建一个java类 package com.koohai.encutils;import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.util.Log;import java.security.MessageDigest; import java.util.List; …...
性能测试丨JVM 性能数据采集
什么是JVM性能数据采集? JVM性能数据采集是指通过一些工具和技术采集与Java虚拟机相关的性能数据。这些数据包括但不限于内存使用、CPU使用、垃圾回收(GC)行为、线程活动等。合理地分析这些数据,可以帮助我们找出系统的瓶颈&…...
MySQL 基础学习(3):排序查询和条件查询
MySQL 查询与条件操作:详解与技巧 在本文中,我们将探讨 MySQL 中的查询操作及其相关功能,包括别名、去重、排序查询和条件查询等,并总结一些最佳实践和注意事项。 一、使用别名(AS) 在查询中,…...
Autogen_core: Quickstart
代码 from dataclasses import dataclass from typing import Callablefrom autogen_core import DefaultTopicId, MessageContext, RoutedAgent, default_subscription, message_handlerdataclass class Message:content: intdefault_subscription class Modifier(RoutedAgen…...
导出地图为pdf文件
有时我们只是想创建能共享的pdf文件,而不是将地图打印出来,arcpy的ExportToPDF()函数可以实现该功能. 操作方法: 1.在arcmap中打开目标地图 2.导入arcpy.mapping模块 import arcpy.mapping as mapping 3.引用当前活动地图文档,把该引用赋值给变量 mxd mapping.MapDocumen…...
从零开始打造智能推荐引擎:技术、实践与未来展望
友友们好! 我的新专栏《Python进阶》正式启动啦!这是一个专为那些渴望提升Python技能的朋友们量身打造的专栏,无论你是已经有一定基础的开发者,还是希望深入挖掘Python潜力的爱好者,这里都将是你不可错过的宝藏。 在这个专栏中,你将会找到: ● 深入解析:每一篇文章都将…...
【Leetcode刷题记录】16.最接近的三数之和
16. 最接近的三数之和 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在恰好一个解。📑排序双指针 这道题和三数之和很像,不同点是…...
什么是Pytest Fixtures作用域及如何为Pytest Fixtures设置合适的作用域
关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 编写重复代码很可能是你最不乐意做的事情之一。至少对我来说是这样。 在一个全力追…...
vue3 vue2区别
Vue 3 和 Vue 2 之间存在多个方面的区别,以下是一些主要的差异点: 1. 性能改进 Vue 3:在性能上有显著提升,包括更小的包体积、更快的渲染速度和更好的内存管理。Vue 2:性能相对较低,尤其是在大型应用中。…...
硬件学习笔记--36 TTL、RS232、RS485相关介绍
RS232、TTL、RS485是三种不同的电气标准和通信接口,它们各自具有独特的特点和应用场景。以下是这三者的主要区别: 一、定义与标准 TTL(Transistor-Transistor Logic) TTL是一种数字信号电平标准,由TTL器件产生&#x…...
FPGA实现任意角度视频旋转(完结)视频任意角度旋转实现
本文主要介绍如何基于FPGA实现视频的任意角度旋转,关于视频180度实时旋转、90/270度视频无裁剪旋转,请见本专栏前面的文章,旋转效果示意图如下: 为了实时对比旋转效果,采用分屏显示进行处理,左边代表旋转…...
HBase-2.5.10 伪分布式环境搭建【Mac】
文章目录 前言一、搭建单节点Zookeeper1. 解压zookeeper2. 配置环境变量3. 修改配置文件4. 启动zk 二、搭建伪分布式Hbase1. 解压hbase2. 配置环境变量3. 修改配置4. 启动HBase 前言 搭建hbase伪分布式环境 提示:以下是本篇文章正文内容,下面案例仅供参…...
我的2024年年度总结
序言 在前不久(应该是上周)的博客之星入围赛中铩羽而归了。虽然心中颇为不甘,觉得这一年兢兢业业,每天都在发文章,不应该是这样的结果(连前300名都进不了)。但人不能总抱怨,总要向前…...
erase() 【删数函数】的使用
**2025 - 01 - 25 - 第 48 篇 【函数的使用】 作者(Author) 文章目录 earse() - 删除函数一. vector中的 erase1 移除单个元素2 移除一段元素 二. map 中的erase1 通过键移除元素2 通过迭代器移除元素 earse() - 删除函数 一. vector中的 erase vector 是一个动态数组&#x…...
STM32项目分享:智能宠物喂食系统(升级版)
目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 PCB图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片: 哔哩哔哩视频链接: STM32智能宠物喂食系统(升级版) (资…...
逻辑复制parallel并发参数测试
逻辑复制parallel并发参数测试 一、测试结果、测试环境描述 1.1、测试结果 cpu表中有1000万条数据,大小为1652MB,当更新的数据量多于10万条的时候有明显变化,多余30万条的时候相差2倍。 更新的数据量较多时,逻辑复制使用并发参数相比于使用…...
python学opencv|读取图像(四十六)使用cv2.bitwise_or()函数实现图像按位或运算
【0】基础定义 按位与运算:全1取1,其余取0。按位或运算:全0取0,其余取1。 【1】引言 前序学习进程中,已经对图像按位与计算进行了详细探究,相关文章链接如下: python学opencv|读取图像&…...
2025美赛数学建模C题:奥运金牌榜,完整论文代码模型目前已经更新
2025美赛数学建模C题:奥运金牌榜,完整论文代码模型目前已经更新,获取见文末名片...
Kiwi 安卓浏览器本月停止维护,扩展功能迁移至 Edge Canary
IT之家 1 月 25 日消息,科技媒体 Android Authority 今天(1 月 25 日)发布博文,报道称 Kiwi 安卓浏览器将于本月停止维护,相关扩展支持功能已整合到微软 Edge Canary 浏览器中。 开发者 Arnaud42 表示 Kiwi 安卓浏览器…...
Couchbase UI: Server
在 Couchbase UI 中的 Server(服务器)标签页主要用于管理和监控集群中的各个节点。以下是 Server 标签页的主要内容和功能介绍: 1. 节点列表 显示集群中所有节点的列表,每个节点的详细信息包括: 节点地址࿱…...
(一)HTTP协议 :请求与响应
前言 爬虫需要基础知识,HTTP协议只是个开始,除此之外还有很多,我们慢慢来记录。 今天的HTTP协议,会有助于我们更好的了解网络。 一、什么是HTTP协议 (1)定义 HTTP(超文本传输协议ÿ…...
微信阅读网站小程序的设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
资源管理输入、工具与技术、输出
过程输入工具与技术输出规划资源管理1.项目章程2.项目管理计划质量管理计划、范围基准3.项目文件项目进度计划、需求文件、风险登记册、干系人登记册4.事业环境因素5.组织过程资产1.专家判断2.数据表现层级型、矩阵型、文本型3.组织理论4.会议1.资源管理计划2.团队章程3.项目文…...
【JavaWeb学习Day13】
Tlias智能学习系统 需求: 部门管理:查询、新增、修改、删除 员工管理:查询、新增、修改、删除和文件上传 报表统计 登录认证 日志管理 班级、学员管理(实战内容) 部门管理: 01准备工作 开发规范-…...
mapStruct 使用踩坑指南
一、缓存机制 经常因为变更字段(通常会这样),导致启动失败。需要清理生成的文件。 /Users/uzong/IdeaProjects/uzong-crm/uzong-crm-manager/src/main/java/com/uzong/crm/manager/GroupManager.java:14:67 java: 找不到符号符号: 方法 getId()位置: 类型为com.u…...
Hive详细讲解-概述与环境搭建
文章目录 1.Hive概述1.2.Hive架构原理1.3Driver 2.Hive最小化模式安装部署3.生产环境hive安装部署4.将hive的元数据存储到Mysql5.元数据库概述6.Hive服务的部署6.1HiveServer26.2Metastore 7.HiveServer2使用7.1Metastore嵌入模式配置7.2Metastore独立模式配置* 8.hive常用的参…...
【算法】数论基础——约数个数定理、约数和定理 python
目录 前置知识约数约数个数定理约数和定理实战演练总结 前置知识 需要掌握:唯一分解定理(算术基本定理) 约数 约数,即因数,定义为: 如果一个整数a可以被另一个整数b整除(即 a mod b 0),那么b就…...
【阅读笔记】基于整数+分数微分的清晰度评价算子
本文介绍的是一种新的清晰度评价算子,整数微分算子分数微分算子 一、概述 目前在数字图像清晰度评价函数中常用的评价函数包括三类:灰度梯度评价函数、频域函数和统计学函数,其中灰度梯度评价函数具有计算简单,评价效果好等优点…...
【技术】TensorRT 10.7 安装指南(Ubuntu22.04)
原文链接:https://mengwoods.github.io/post/tech/008-tensorrt-installation/ 本文安装的版本如下: Ubuntu 22.04 Nvidia Driver 538.78 CUDA 12.2 cuDNN 8.9.7 TensorRT 10.7 安装前的准备(可选) 在安装新版本之前…...
Linux权限有关
文章目录 一、添加普通用户二、Xshell下命令行的知识三、 Linux和Windows操作系统四、再探指令和Linux权限五、用户相关用户切换: 今天我们学习与Linux有关的权限等内容,以及一些零碎知识帮助我们理解Linux的系统和Xshell的原理。 本篇是在Xshell环境下执行的。 一…...
vue router路由复用及刷新问题研究
路由复用问题 当路由匹配路径未发生变化时,只是相关的参数发生了变化,路由跳转时,会发现虽然地址栏中的地址更新到了新的链接,但是页面渲染并未触发响应路由组件的created,mounted等钩子函数,也就意味着组件并没有被重…...
XML实体注入漏洞攻与防
JAVA中的XXE攻防 回显型 无回显型 cve-2014-3574...
【论文阅读】RT-SKETCH: GOAL-CONDITIONED IMITATION LEARNING FROM HAND-DRAWN SKETCHES
RT-Sketch:基于手绘草图的目标条件模仿学习 摘要:在目标条件模仿学习(imitation learning,IL)中,自然语言和图像通常被用作目标表示。然而,自然语言可能存在歧义,图像则可能过于具体…...
27. 【.NET 8 实战--孢子记账--从单体到微服务】--简易报表--报表服务
报表是每个记账应用所具备的功能,要实现报表功能就需要把账本的核心功能(记账)完成,因此报表服务作为本专栏第一部分单体应用开发中最后一个要实现的功能,这一篇文章很简单,我们一起来实现一个简单的报表服…...
LeetCode - #194 Swift 实现文件内容转置
网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...
【全栈】SprintBoot+vue3迷你商城(9)
【全栈】SprintBootvue3迷你商城(9) 往期的文章都在这里啦,大家有兴趣可以看一下 后端部分: 【全栈】SprintBootvue3迷你商城(1) 【全栈】SprintBootvue3迷你商城(2) 【全栈】Spr…...