护网攻防演练全流程揭秘,小白如何从红蓝对抗中快速成长

网络安全红蓝对抗:攻防之间的“矛与盾”博弈 红蓝对抗不仅是技术较量,更是安全意识与团队协作的试金石。正如军事演习中的“朱日和蓝军”,它让防守方在“被打脸”中成长,最终构建起动态、主动的网络安全防御体系。 阅读详情

演练前的“军备竞赛”:红蓝双方的差异化准备

护网行动(HW)作为国内网络安全领域规格最高、实战性最强的攻防演练,对于初学者而言,既是检验技术水平的“试金石”,也是快速成长的“加速器”。很多人对护网的印象还停留在“黑客攻击”和“防火墙拦截”的简单二元对立上,但真实的护网是一场体系化、流程化且高度协同的战役。要想在这场高强度的对抗中不仅不“迷路”,还能真正拿到结果,必须在演练开始前就进入状态。

护网行动通常分为准备阶段、实战阶段和总结复盘阶段。对于想要参与其中的小白来说,理解这三个阶段的内在逻辑,比单纯掌握几个扫描工具更重要。准备阶段往往决定了实战阶段的生死线,这一阶段的核心任务是“摸清家底”与“磨利武器”。

蓝队视角:资产盘点是防守的基石

如果你站在蓝队(防守方)的角度,准备阶段最痛苦但也最重要的工作就是资产盘点。在很多真实案例中,蓝队失守的原因并非技术不如人,而是因为“不知道自己有这个系统”。影子资产、测试环境 forgotten 的后台、老旧的 API 接口,这些都是红队眼中的“后门”。

在准备期,蓝队需要完成以下核心动作:

  1. 全量资产梳理:不仅仅是服务器 IP,还包括域名、子域名、小程序、APP、API 接口以及云存储桶。必须建立一份动态更新的资产清单,明确每个资产的负责人和业务重要性。
  2. 漏洞修复与加固:基于资产清单进行全面的漏洞扫描。对于高危漏洞(如未授权访问、SQL 注入、RCE 等)必须做到“清零”。同时,对中间件、数据库、操作系统进行基线加固,关闭不必要的端口和服务。
  3. 预案演练:制定详细的应急响应预案(Playbook)。当发生钓鱼邮件攻击、网页篡改或数据泄露时,谁负责断网?谁负责取证?谁负责对外通报?这些流程必须在演练前通过桌面推演或实战模拟跑通,避免实战时手忙脚乱。
红队视角:情报收集与武器库构建

相对于蓝队的“守”,红队(攻击方)在准备阶段则是要做到“知己知彼”。红队的准备工作更像是一次精密的侦察行动。

  1. 深度情报收集:红队不会盲目扫描,而是先进行被动信息收集。利用搜索引擎语法(Google Hacking)、社交媒体、招聘网站甚至代码托管平台,挖掘目标单位的组织架构、使用的技术栈、邮箱格式以及潜在的员工信息。这些信息往往是后续社会工程学攻击(如钓鱼邮件)的关键素材。
  2. 武器制备与环境搭建:根据情报分析结果,红队需要准备针对性的攻击载荷(Payload)。这包括定制化的钓鱼文档、免杀的木马程序、针对特定 CMS 系统的 Exploit 脚本等。同时,搭建好 C2(命令与控制)服务器、跳板机池,并配置好流量隐藏策略,确保攻击链路的隐蔽性。
  3. 攻击路径规划:在正式动手前,红队内部通常会制定多套攻击方案。从外网突破到内网横向移动,再到核心数据获取,每一步都有备选路线(Plan B),以应对蓝队的封堵。

实战阶段的博弈:从钓鱼邮件到内网厮杀

当时钟拨向演练正式开始,平静的表面下瞬间波涛汹涌。实战阶段是护网行动的高潮,红蓝双方在有限的时间内展开高强度的对抗。这一阶段不仅是技术的比拼,更是心理素质、反应速度和团队协作的较量。

典型场景一:钓鱼邮件与社会工程学突破

很多护网行动的“第一滴血”往往来自一封看似普通的邮件。这是红队最常用的突破口,也是蓝队最难防范的环节之一。

攻击过程演示:
红队利用准备阶段收集到的员工邮箱格式,伪造一封来自“人力资源部”或"IT 部门”的紧急通知邮件,主题可能是“关于工资补贴调整的通知”或“系统密码过期提醒”。邮件中附带一个精心伪装的文档(如带有宏病毒的 Word 文档或快捷方式文件)。

一旦有员工警惕性不足,点击了附件并启用了宏,或者运行了恶意程序,红队便成功拿下了第一台办公网主机的控制权。此时,受害主机会悄悄连接红队的 C2 服务器,等待进一步指令。

蓝队的监测与响应:
对于蓝队而言,发现这类攻击主要依赖EDR(端点检测与响应)系统和邮件网关的告警。

  • 告警分析:当 EDR 检测到异常进程(如 PowerShell 执行了混淆代码、可疑的子进程创建)时,会立即触发告警。蓝队分析师需要迅速判断这是误报还是真实攻击。
  • 攻击链溯源:确认为攻击后,蓝队需立即提取样本,分析其行为特征(如连接的 IP、创建的注册表项、释放的文件)。通过流量分析,定位 C2 服务器地址。
  • 应急处置:最关键的一步是隔离。蓝队需立即切断受害主机与内网其他区域的连接,防止红队以此为跳板进行横向渗透。同时,重置相关员工的账号密码,并在全网范围内排查是否有其他主机感染相同样本。
典型场景二:内网渗透与横向移动

如果红队突破了边界,或者利用了某个未被发现的内网漏洞,战斗将进入更激烈的内网渗透阶段。

红队战术:
拿下边界主机后,红队会利用该主机作为跳板,扫描内网存活主机,寻找域控制器(DC)、数据库服务器等高价值目标。常用的手段包括:

  • 凭证窃取:使用 Mimikatz 等工具抓取内存中的明文密码或 Hash。
  • 横向移动:利用 IPC$、WMI、PsExec 或永恒之蓝等漏洞,将控制权扩散到更多内网机器。
  • 权限提升:通过本地提权漏洞获取 System 权限,进而尝试获取域管理员权限,实现“域控沦陷”。

蓝队防御策略:
在内网环境中,蓝队的防御重点在于流量监测和行为分析。

  • 流量异常检测:内网主机之间突然出现大量的 SMB 连接、异常的 DNS 请求或非工作时间的批量扫描,都是横向移动的特征。蓝队需利用态势感知平台实时捕捉这些异常流量。
  • 蜜罐诱捕:在内网关键路径部署蜜罐,诱导红队攻击。一旦红队触碰蜜罐,蓝队不仅能立即获知攻击者位置,还能获取其攻击工具和手法特征。
  • 主动猎杀:高水平的蓝队不会坐等告警,而是会主动在内网中寻找潜伏的红队痕迹,如异常的计划任务、隐藏的账号、未知的服务等。
紫队的作用:全程监控与公平裁决

在红蓝对抗中,还有一个至关重要的角色——紫队。紫队由组织方或第三方专家组成,他们不参与直接的攻击或防守,而是充当“裁判”和“教练”。

  • 全程监控:紫队实时监控双方的操作日志,确保红队不破坏业务系统(如不进行删库、勒索等破坏性操作),确保蓝队不使用违规手段(如直接物理断网、关闭所有服务等“一刀切”行为)。
  • 攻击验证:当红队声称攻破了某个系统,或蓝队声称拦截了某次攻击时,紫队负责进行技术验证,判定得分是否有效。
  • 即时指导:在演练过程中,紫队有时会发布“突发情况”(如模拟新的漏洞爆发),考验双方的应急响应能力,并在事后给出专业的改进建议。

复盘与成长:如何将演练经验转化为核心竞争力

演练结束并不意味着工作的终结,总结复盘阶段才是将实战经验转化为个人能力的关键环节。很多小白参加了护网,却只记住了“熬夜”和“吃盒饭”,忽略了最宝贵的知识沉淀。

撰写高质量的总结报告

无论是红队还是蓝队,都需要提交详尽的总结报告。这份报告不仅是为了应付组织方,更是为了自我提升。

红队报告要点:

  • 攻击路径还原:详细记录每一条成功的攻击链,从初始入口到最终目标,包括使用的工具、Exploit 编号、绕过防守的技巧。
  • 难点分析:记录哪些环节被蓝队成功阻断,原因是什么(是设备拦截、策略生效还是人工发现)?
  • 改进建议:针对目标单位的安全短板,提出具体的修复建议,体现红队的建设性价值。

蓝队报告要点:

  • 失陷原因分析:对于被攻破的系统,深入分析根本原因。是漏洞未及时修复?是策略配置错误?还是人员意识薄弱?
  • 检测盲点识别:回顾哪些攻击行为没有被及时发现,为什么没发现?是日志没开全?还是规则没覆盖?
  • 响应效率评估:统计从告警产生到处置完成的平均时间(MTTR),找出流程中的瓶颈。
  • 改进措施:基于上述分析,制定具体的整改计划,如优化 WAF 规则、升级 EDR 策略、开展全员钓鱼培训等。

紫队则会出具整体评估报告,指出本次演练中暴露出的普遍性问题,分享最佳实践,并为各单位的安全建设提供宏观指导。

小白的快速成长路径

对于想通过护网行动快速成长的初学者,以下几点建议至关重要:

  1. 体系化学习是前提:护网不是靠运气,而是靠扎实的基础。在参与之前,务必建立起完整的网络安全知识体系。可以参考主流的学习路线,从计算机网络基础、操作系统原理入手,逐步深入到 Web 安全、渗透测试、应急响应等领域。不要试图走捷径,基础不牢,地动山摇。
  2. 以赛代练,积累实战经验:除了护网,平时可以多参加 CTF(Capture The Flag)比赛。CTF 中的 Reverse(逆向)、Pwn(二进制漏洞利用)、Web 等题目,能极大地锻炼你的技术深度和解题思路。许多护网中的技巧,其实都源于 CTF 的解题思路。
  3. 善用工具,但不依赖工具:护网中会用到大量的自动化工具(如扫描器、漏扫、流量分析工具),但真正的的高手懂得工具的原理,并能根据现场情况手动调整。学会编写简单的脚本(Python、Shell)来自动化处理重复性工作,能极大提高效率。
  4. 培养团队协作意识:护网是团队作战,单打独斗很难取得好成绩。学会与队友沟通,明确分工,共享情报,是取得胜利的关键。在蓝队中,监测组、分析组、处置组必须紧密配合;在红队中,侦查、突破、维持也需要无缝衔接。
  5. 重视文档与知识库建设:养成记录的习惯。将每次遇到的攻击手法、解决方案、工具用法整理成文档,形成自己的知识库。这不仅有助于复盘,也是未来面试和晋升的重要资本。
关于网络安全技术储备

学好网络安全不论是就业还是做副业赚钱都不错,但要学会网络安全还是要有一个学习规划。最后大家分享一份全套的网络安全学习资料,给那些想学习网络安全的小伙伴们一点帮助!

对于0基础小白入门:

如果你是零基础小白,想快速入门网络安全是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。

二方面是可以找到适合自己的学习方案

包括:网安成长学习路线图、SRC&黑客文档、护网行动、黑客必读书单、面试题、学习视频等教程。带你从零基础系统性的学好网络安全!

需要的可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

img

👉1.成长路线图&学习规划👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

在这里插入图片描述

👉2.网安入门到进阶视频教程👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程文末领取哈)

在这里插入图片描述

👉3.SRC&黑客文档👈
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

在这里插入图片描述

黑客资料由于是敏感资源,这里不能直接展示哦!(全套教程文末领取哈)

👉4.护网行动资料👈
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

在这里插入图片描述

👉5.黑客必读书单👈

随着互联网技术的飞速发展,网络安全已经成为了当今科技领域的一大热点。这些SQL注入、CCNA、Web渗透、Linux服务器等,以其强大的语言理解和防御能力,正在守护着我们网络世界。 那以下这些PDF籍就是非常不错的学习资源。

img

👉6.网络安全岗面试题合集👈
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

在这里插入图片描述

这份完整版的网络安全学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

img

【通信协议】I2C总线(一主多从) I2C总线(一主多从)之软件模拟代码详解 阅读详情

相关推荐

(UE5 5.2)HISM Mobile DrawInstance在渲染层的实现浅分析

在 (UE4 4.27) UHierarchicalInstancedStaticMesh(HISM)原理分析 这篇博客大致介绍HISM组件从游戏线程到渲染线程的重建KD-Tree和剔除并提交DrawCall逻辑,但是没有分析渲染层的大致数据结构和实现. 可以看出FHierarchicalStaticMeshSceneProxy 实际存储Instance数组数据来自于FInstancedStaticMeshSceneProxy FHierarchicalStaticMeshSceneProxy只是以FClu

qq_29523119的博客 2726

护网怎么做,护网前、护网中,护网后,总共60道工序,一道一道讲清楚_护网怎么做,护网前、护网中,护网后,总共60道工序

复盘与整改分析攻击事件暴露的薄弱点(如未修复漏洞、策略缺陷),推动整改闭环。优化安全架构(如内网分区隔离、零信任体系部署)。经验沉淀与能力提升总结护网期间防护成效,形成标准化流程文档(如监控指标、应急手册)。通过安全意识培训、攻防人才梯队建设,提升常态化防护能力。这个方案及清单,设备部署,技战法等我们也放到星球了,需要的自取把。###黑客/网络安全学习路线。

yy1715713348的博客 1170

保姆级教程:用Python脚本一键把选股结果导入通达信自选股(附完整代码)

本文提供了一份详细的Python自动化教程,教你如何将选股结果一键导入通达信自选股。通过解析通达信文件结构、编写Python脚本实现股票代码转换和批量导入,大幅提升量化交易效率。教程包含完整代码示例,特别适合使用通达信(TDX)的投资者和量化交易开发者。

weixin_30915951的博客 361

护网怎么做,护网前、护网中,护网后,总共60道工序,一道一道讲清楚

复盘与整改分析攻击事件暴露的薄弱点(如未修复漏洞、策略缺陷),推动整改闭环。优化安全架构(如内网分区隔离、零信任体系部署)。经验沉淀与能力提升总结护网期间防护成效,形成标准化流程文档(如监控指标、应急手册)。通过安全意识培训、攻防人才梯队建设,提升常态化防护能力。这个方案及清单,设备部署,技战法等我们也放到星球了,需要的自取把。###黑客/网络安全学习路线。

2401_84578953的博客 1483

Godot 4.x 实现 JRPG 回合制战斗系统:架构、状态机与实战优化

游戏开发中,状态机是管理复杂逻辑流转的核心设计模式,尤其在回合制战斗这类事件驱动的场景中。其原理是通过定义有限的状态和明确的转移条件,来控制系统在不同阶段的行为,从而实现清晰、可维护的流程控制。这项技术的价值在于能够将杂乱的条件判断代码结构化,降低模块间的耦合度,提升代码的可读性和可扩展性。在游戏开发领域,状态机广泛应用于角色AI、UI流程、战斗系统等场景。本文以Godot引擎为例,深入探讨如何运用节点与信号驱动架构,构建一个健壮的JRPG(日式角色扮演游戏)回合制战斗系统。内容涵盖从核心的**状态机**设

weixin_33749242的博客 500

时序定江山,功耗写风骨——解读时序库lib文件的奥义【芯片设计 lib文件】

lib库,全称liberty library format file:它是Liberty时序文件的简称,使用 Liberty 语法来编写。它可以通过library compiler/dc转换成.db文件(database),供synopsis家的DC和PT使用,也可以通过spyglass的library compiler来生成sglib文件,供spyglass使用。他们是等价的,但db文件是二进制格式,人类不可读。

LogicYarn的博客 2605

护网怎么做,护网前、护网中,护网后,总共60道工序,一道一道

复盘与整改分析攻击事件暴露的薄弱点(如未修复漏洞、策略缺陷),推动整改闭环。优化安全架构(如内网分区隔离、零信任体系部署)。经验沉淀与能力提升总结护网期间防护成效,形成标准化流程文档(如监控指标、应急手册)。通过安全意识培训、攻防人才梯队建设,提升常态化防护能力。这个方案及清单,设备部署,技战法等我们也放到星球了,需要的自取把。文章来自网上,侵权请联系博主互动话题:如果你想学习更多网安方面的知识和工具,可以看看以下题外话!

2401_84215240的博客 796

EXCEL实现分层自定义比例随机抽样(图+文教程)

EXCEL实现分层自定义比例随机抽样(图+文教程) 单一字段分层自定义比例随机抽样 多字段分层自定义比例随机抽样 单一字段分层自定义比例随机抽样 首先数据源如下,我们想随机抽张三的金额数据10%、李四金额20%、王五5%、哈哈15%、李六10% 首先第一步,添加辅助列,随机数 =RAND() 对数据进行高级排序 升序、降序都可以 添加辅助列...

可乐联盟 2万+

护网蓝队初级岗位薪资真相:从 0 学网安,小白参与护网也能日入 2000+

本文介绍了网络安全的基础知识,包括其定义和法律体系。网络安全指保护网络系统免受攻击、入侵或数据泄露的技术措施。我国已建立以《网络安全法》为核心的法律框架,明确网络运营者的安全责任,规范数据处理活动,并制定了关键信息基础设施保护制度。法律体系为网络安全工作提供了制度保障,要求企业和个人共同维护网络空间安全。文章从基础概念入手,帮助读者建立对网络安全领域的初步认知。

kjuhfkicf154的博客 735

从零到一:使用阿里云百炼搭建企业级 AI Agent 完全实战手册(2026超详细版)

本文是一份企业级AI Agent构建手册,主要面向企业技术负责人、AI产品经理和后端开发工程师。手册详细介绍了如何在阿里云百炼平台上搭建企业智能体应用的全流程,包括环境准备、知识库构建、智能体创建、工具集成、工作流编排等核心环节。重点内容包括: 准备工作:阿里云账号注册、百炼服务开通、免费额度领取、API Key管理 知识库构建:文档格式要求、内容优化原则、RAG系统搭建 智能体开发:Agent创建、工具集成、复杂业务工作流设计 生产部署:多渠道接入、监控运维、安全治理 成本控制:Token预算管理、选型决

u010323587的专栏 1106

MFC属性网格控件(CMFCPropertyGridCtrl)完全指南:构建专业属性编辑界面

本文详细介绍了MFC中的CMFCPropertyGridCtrl控件的使用方法。主要内容包括:控件基础用法(初始化、添加属性、事件处理)、高级设置(自定义外观、创建属性类型、动态更新)、派生类实现(自定义绘制、搜索过滤功能)、界面集成技巧(对话框布局、属性编辑器)以及实际应用示例。文章重点讲解了如何通过继承和自定义实现复杂功能,并提供了性能优化、多语言支持等最佳实践方案。该控件适用于需要大量参数配置的应用程序,能够创建类似Visual Studio属性窗口的专业界面。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 155

护网前夜:我辞职了,为了护网!

辞职是自由,但别把自己扔进另一个“无限护网循环”。辞职 → 护网 → 爆破 → 收钱 → 刷简历。辞职 → 护网 → 爆破 → 写报告 → 写日报 → 填资产 → 回款遥遥无期 → 中间人说“领导不在” → 再填一次资产 → 薪资按月算 → 最后发现自己贴了机票钱还被税。尤其是那些被层层转包的项目,报的是“大厂红队”价,干的是“临时驻场蓝”活,垫资要你自掏腰包,预算压到“连眼药水都不能报销”。结项时你心想“终于熬完了”,一算账——社保停了,余额没涨,精神空了,胃病还犯了。

wly55690的博客 647

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

护网一天2700为什么能这么赚

护网行动是国家组织的网络攻防测试,分为攻击方红队和防守方蓝队。文章分享了一位大学生自学三个月参加蓝队,日薪2700元的真实经历。指出蓝队初级门槛低,主要工作为监控,而红队报酬更高。网络安全人才缺口巨大,预计2027年达327万。文章最后推广了一套与360合作的网络攻防视频教程,适合零基础入门。

2401_84215240的博客 1137

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

五十三.网络(3)--区块同步getblocks消息

在节点互发了version消息后,就会发送getblocks消息,请求对方的区块以进行同步。

d3582077的专栏 198

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: 网络安全培训怎么选,避开这些坑再报名
下一篇: 普通人如何防住网络诈骗,这十条安全意识要记牢
程序媛西米
博客等级 码龄5年 4030粉丝 1569原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值