火绒日志惊现多源RDP爆破,WMI横向移动被拦截:一次真实攻击链的纵深防御实战复盘(附完整加固清单)

横向远程命令执行——DCOM 横向远程命令执行——DCOM1、 测试环境   DCOM(分布式组件对象模型,分布式组件对象模式)是一系列微软的概念和程序接口,利用这个接口,客户端程序对象能够请求来自网络中另一台计算机上的服务器程序对象。DCOM基于组件对象模型(COM),COM提供了一套允许同一台计算机上的客户端和服务器之间进行通信的接口(运行在Windows95或者其后的版本上)。   此篇文章学习自3gstudent 域渗... 阅读详情

当“仅记录”变成“已阻止”——两个日志背后的攻击链

2026年9月22日,某台运行Windows Server的机器在火绒安全日志中出现了两段截然不同却紧密关联的记录。第一段是持续超过10小时的RDP多源爆破攻击,在短短几分钟内,来自58.208.85.190、193.142.146.104、37.77.10.111等数百个不同IP的远程连接,以每分钟数十次的频率持续尝试登录3389端口,而火绒的处置结果是 “仅记录” 。第二段则是一条孤立的WMI调用记录:来自180.121.2.66的远程WMI调用被火绒成功 “已阻止” ,目标端口135,调用的CLSID正是WMI远程登录的标准接口。

这两条日志放在一起看,构成了一条清晰的攻击链:攻击者通过RDP多源爆破获取了初始访问权限,随后尝试利用WMI进行横向移动,而火绒在第二阶段成功拦截了横向移动的企图。

RDP至今仍是企业网络中被滥用最严重的远程访问入口之一。攻击者不再依赖机会性访问,而是通过自动化扫描、凭据填充框架和后期利用工具包持续且大规模地针对RDP服务,任何暴露或保护薄弱的端点都可以在几分钟内被识别和测试。多源爆破正是这种自动化攻击的典型形态——它利用大量不同IP在短时间内协同尝试登录,单个IP的频率被刻意压低以规避基于阈值的单源检测,但整体行为模式暴露了协同攻击的特征。

火绒的“仅记录”模式意味着攻击行为被识别但没有被主动拦截,这为后续的WMI横向移动埋下了伏笔。而第二段日志中“已阻止”的处置结果则说明,火绒的横向渗透防护在攻击者试图从一个受感染节点向其他主机移动时发挥了关键作用。

在这里插入图片描述

第一部分:RDP多源爆破——原理、日志解读与应急响应

1.1 多源爆破的技术特征

多源爆破与传统的单源暴力破解有本质区别。单源攻击表现为单个IP在短时间内高频尝试登录,容易被基于频率阈值的防护规则识别和封禁。多源攻击则采用 “分布式协同” 策略:攻击者控制一个由大量被感染主机组成的僵尸网络,每个IP只进行少量尝试,但数十乃至数百个IP同时工作,整体尝试速率极高。攻击者还会结合凭据填充、密码喷洒以及住宅代理轮换来进一步规避速率限制和地理封锁。

火绒的暴破攻击防护模块通过分析特定时间窗口内访问同一本地端口的远程IP数量和尝试频率来识别此类攻击。当多个不同远程IP协同尝试登录同一端口时,触发多源暴破检测。日志中展示的“部分可疑远程地址”列表中,58.208.85.190在几乎所有时间段的日志中都出现,而193.142.146.104、37.77.10.111、106.58.219.131、196.196.254.2等IP也反复出现,构成了一个稳定的攻击IP池。

火绒的多源攻击检测提供高、中、低三档灵敏度,默认中档可覆盖绝大多数暴破场景,高灵敏度能识别低频率试探类攻击,低灵敏度则专注于高频密集暴破。该功能支持RDP(3389)、SQL(1433)、SMB(445)、RPC(135)、FTP(21)五大高频暴破协议的精细化防护,各协议可独立配置防护开关。

1.2 火绒日志的解读要点

面对多源爆破日志,安全人员需要快速提取关键信息:协议(RDP/SMB/SQL等,决定后续加固方向)、防御结果(仅记录/已阻止,决定当前风险等级)、本地地址(确认被攻击的服务端口)、可疑远程地址列表(用于IP封禁和情报分析)。

在本案例中,防御结果为“仅记录”,说明火绒识别了攻击但未自动拦截。火绒的多源攻击处理逻辑是:检测到多源暴破行为后仅记录日志不拦截,这与单源攻击的“自动阻止”模式不同。这意味着需要管理员手动介入,将攻击IP加入黑名单或启用更严格的防护策略。

另一个值得注意的细节是,火绒在5分钟内对同一远程IP加同一协议的重复暴破攻击不会重复记录日志,这减少了日志冗余。但本案例中日志时间跨度超过10小时且记录密集,说明攻击IP池规模较大、攻击持续时间长。

1.3 应急响应:从封禁到加固

第一步:紧急封禁攻击IP

火绒的IP黑名单功能支持批量添加,可以将日志中反复出现的恶意IP一次性导入。更精细的做法是利用IP协议控制功能,创建规则只允许信任的IP访问3389端口,默认阻止其他所有IP。例如,设置一条规则允许特定管理终端的IP访问RDP端口(优先级1),再添加一条阻止所有IP访问RDP端口的规则(优先级2),即可实现白名单式访问控制。

第二步:启用自动阻止

如果业务允许,可以将火绒暴破攻击防护的“发现多源暴破攻击处理方式”从“仅记录”改为 “自动阻止” 。火绒的自动阻止模式会临时关闭被攻击的端口60分钟,期间所有连接(包括合法连接)都会被阻断。这是一种“壮士断腕”的策略,需要在安全性和可用性之间做出权衡。

第三步:排查系统是否已被入侵

多源爆破的最终目标是成功登录。必须立即检查Windows安全日志中的事件ID 4625(登录失败)和事件ID 4624(登录成功),筛选来源IP为日志中可疑远程地址的记录。如果发现来自攻击IP的成功登录(4624),说明凭据已经泄露,需要立即修改所有管理员账户密码并运行全盘病毒扫描。

第四步:RDP服务加固(治本之策)

RDP加固需要从网络暴露面、身份认证、会话安全三个层面系统推进。

网络暴露面收敛是最有效的措施。永远不要将RDP直接暴露在互联网上——这是行业共识。正确的做法是通过VPN或RD Gateway接入内网后再进行RDP连接。如果必须暴露,至少应修改默认的3389端口为50000-60000之间的高位端口,这可以显著降低被自动化工具扫描发现的概率。修改端口需要同步修改注册表两处位置(RDP-Tcp和rdpwd\Tds\tcp),并更新防火墙入站规则。

身份认证加固包括三个关键配置:启用网络级别身份验证,要求用户在建立完整会话前先完成身份验证,限制未认证的探测行为;配置账户锁定阈值,在定义次数的失败登录后锁定账户,直接干扰密码喷洒活动;部署多因素认证,即使密码被破解,攻击者也无法完成登录。

会话安全方面,应强制对RDP会话进行TLS加密,并考虑使用远程凭据保护来防止凭据在远程会话中被窃取。

第二部分:WMI横向移动——无声的“就地取材”攻击

2.1 为什么WMI成为横向移动的首选工具

WMI的远程访问能力基于DCOM和RPC,默认使用TCP 135端口进行初始通信。攻击者选择WMI进行横向移动,核心原因是 “就地取材” 策略——利用操作系统自带的合法管理工具执行恶意操作,不依赖外部恶意软件文件。

这种攻击方式对传统安全检测构成了独特挑战。由于WMI操作完全驻留在易失性内存中,绕过了物理磁盘,不会留下可供签名匹配的永久性证据。CrowdStrike 2026年全球威胁报告发现,34%的交互式入侵中出现了基于WMI的横向移动,较上一年度的29%有明显增长。

本案例中火绒拦截的CLSID {8BC3F05E-D86B-11D0-A075-00C04FB68820} 是WMI的 IWbemLevel1Login 接口,攻击者通过它建立远程WMI连接,这是WMI横向移动的标准第一步。火绒的拦截点非常关键——它在攻击者尝试建立连接的阶段就切断了攻击链。

火绒官方明确指出,远程WMI调用需要攻击者已经掌握了本机的有效用户名和密码,并且该账户拥有管理员权限。这意味着攻击者很可能已经通过第一阶段的RDP爆破或其他方式获取了凭据。这也是为什么在拦截WMI调用后,立即修改本机所有管理员密码成为最紧迫的后续动作。

2.2 火绒横向渗透防护的配置逻辑

火绒的横向渗透防护默认开启,其中 “远程WMI调用”和“远程MMC调用”两项功能默认关闭,其余如“默认共享访问”“远程服务创建”“远程计划任务创建”“远程注册表篡改”“远程DCOM调用”五项默认开启。

这种默认设置的设计考量是平衡安全性与易用性。远程WMI调用是企业内网中合法的管理手段,IT管理员通过WMI远程收集硬件信息、监控服务状态、执行自动化脚本。如果默认开启拦截,会导致这些正常管理功能失效。因此火绒选择将开启的主动权交给用户——对于确认不需要远程WMI管理的环境,手动开启即可获得更严格的防护。

开启方式为:进入火绒 〖防护中心〗→〖网络防护〗→〖横向渗透防护〗 ,找到“远程WMI调用”,将开关手动开启。

2.3 限制WMI远程访问的四种方法

方法一:通过Windows防火墙限制(推荐用于个人或小型环境)

WMI远程连接依赖RPC(TCP 135)进行初始通信,随后动态分配端口。最直接的方式是禁用WMI相关的入站防火墙规则组:

netsh advfirewall firewall set rule group="Windows Management Instrumentation (WMI)" new enable=no

此命令会禁用名为“Windows Management Instrumentation (WMI)”的所有入站规则。需要注意,这会同时阻止合法的远程WMI管理工具(如SCCM、监控软件)。如果这些工具是必需的,应改用方法三或方法四。

方法二:通过组策略集中管理(适用于域环境)

在域环境中,可以通过组策略统一配置。CISA建议,WMI通信应阻止工作站到工作站、以及工作站到非域控和非文件服务器的通信,只允许从管理服务器到被管理设备的WMI流量。具体实现方式是创建GPO,配置Windows防火墙限制WMI入站通信,或为WMI分配静态DCOM端口(默认静态端口为TCP 24158)并阻止该端口。

方法三:配置DCOM权限进行精细控制(推荐用于企业环境)

WMI远程连接通过DCOM建立。可以修改DCOM的启动和激活权限,只允许特定用户或组进行远程调用。通过 dcomcnfg 打开组件服务,导航至“组件服务→计算机→我的电脑→属性→COM安全”,在“访问权限”和“启动和激活权限”中,移除 Everyone 或 ANONYMOUS LOGON 的远程访问和远程激活权限,仅添加需要远程WMI管理的特定用户或组。这种方法比简单的防火墙阻断更精细,能够在保留必要管理功能的同时阻断未授权访问。

方法四:禁用或监控WMIC.exe(针对攻击工具)

CISA发布的防御指南明确指出,禁用或监控 wmic.exe 的执行可以阻止或告警攻击者利用WMI进行横向移动或持久化。实现方式有两种:通过攻击面减少规则阻止WMI命令创建的进程运行,或通过Windows Defender应用程序控制策略直接阻止 wmic.exe 执行。

监控方面,需要关注以下事件源:Windows安全日志事件ID 4688(新进程创建)中是否出现 wmic.exe 或 wmiprvse.exe;WMI-Activity/Operational日志的事件ID 5857、5858、5859、5861,其中5861表示创建了永久性的WMI事件订阅,是攻击者用于持久化的高危信号。

2.4 WMI远程访问的合法使用场景

理解WMI远程访问的合法用途,有助于在加固时做出合理的权衡。WMI远程访问主要用于四类任务:资产清点(远程收集硬件规格、已安装软件列表、操作系统版本)、配置与部署(远程安装MSI软件包、修改系统配置、部署更新补丁)、状态监控(远程查询服务状态、系统性能数据、事件日志)、远程操作与自动化(远程启动/停止进程、重启计算机、执行脚本)。这些场景通常由系统管理员通过PowerShell脚本或SCCM、监控软件等工具自动执行,以实现大规模Windows环境管理。

第三部分:纵深防御——从“拦截单点”到“阻断链路”

3.1 两条攻击路径的关联分析

本案例揭示的是一条完整的攻击链:初始访问(RDP多源爆破)→ 凭据获取 → 横向移动(WMI远程调用) 。RDP多源爆破的目的不仅是直接登录,更是通过大量尝试筛选出有效凭据。一旦攻击者成功登录一台机器,WMI就成为向网络内其他主机扩散的理想工具。

防御的关键在于在多个环节设置阻断点。火绒在RDP阶段记录了攻击但未拦截,在WMI阶段成功拦截了横向移动——这说明防护在第二道防线起了作用。但从纵深防御的角度,更好的策略是在第一道防线就进行干预,避免攻击者获得任何初始立足点。

3.2 三层防御体系

第一层:暴露面收敛。 核心原则是不将RDP和WMI服务直接暴露在网络可达范围内。RDP应通过VPN或RD Gateway访问;WMI通信应限制在工作站与域控/文件服务器之间,阻断工作站之间的WMI调用。

第二层:身份与凭据加固。 启用NLA、配置账户锁定策略、部署MFA。对于WMI横向移动,最关键的是最小化管理员凭据的暴露面——使用Windows LAPS自动管理本地管理员密码,避免在所有计算机上使用相同的本地管理员密码组合。

第三层:检测与响应。 集中化日志管理,围绕Windows事件ID 4625(登录失败)、4624(登录成功)、4776(凭据验证) 建立告警规则。对于WMI,监控WMI-Activity/Operational日志中的事件ID 5857-5861,以及安全日志中 wmiprvse.exe 是否产生了 cmd.exe 或 powershell.exe 子进程。

3.3 快速响应清单

RDP多源爆破响应清单:

  • 将日志中反复出现的恶意IP批量加入火绒IP黑名单或IP协议控制白名单
  • 检查Windows安全日志事件ID 4625/4624,确认是否存在成功登录
  • 若发现成功登录,立即修改所有管理员账户密码并运行全盘扫描
  • 将RDP默认端口从3389修改为50000-60000之间的高位端口
  • 启用网络级别身份验证
  • 评估部署VPN或RD Gateway的可行性

WMI横向移动响应清单:

  • 确认火绒横向渗透防护中的“远程WMI调用”已开启
  • 将攻击源IP加入黑名单
  • 立即修改本机所有管理员账户密码
  • 在火绒中限制WMI远程访问(防火墙规则或DCOM权限)
  • 检查WMI-Activity/Operational日志(事件ID 5857-5861)是否存在异常事件订阅
  • 使用WDAC或ASR规则禁用或监控 wmic.exe 的执行

3.4 一条被阻断的攻击链

回到开篇的案例。RDP多源爆破持续了超过10小时,火绒的“仅记录”模式意味着攻击者理论上获得了充足的尝试窗口。但WMI调用被成功拦截,说明火绒的横向渗透防护在攻击者尝试从受感染节点向其他主机移动时发挥了作用。

这提醒我们:安全防护的价值不仅在于拦截了多少攻击,更在于在攻击链的哪个环节进行了阻断。在RDP阶段拦截可以阻止初始访问,在WMI阶段拦截可以阻止横向扩散,在凭据修改阶段响应可以消除已泄露凭据的风险。每一层防护都有其不可替代的作用,而纵深防御的本质是让攻击者在每个环节都面临被检测和阻断的风险。

大模型推理常见采样策略:Top-k, Top-p, Temperature, Beam Search 大模型推理采样策略,举例通俗易懂汇总介绍 阅读详情

相关推荐

半导体制造技术导论(第二版)萧宏 第五章集成电路加热工艺答案

第二次退火是在较高温度下进行,并将电阻系数较高的c49碳化硅转变为电阻系数较低的c54碳。水平式高温炉加热、垂直式高温炉加热(即传统的管式炉加热)、快速加热工艺RTP、激光镭射。8. 集成电路芯片制造过程中,会使用垫底氧化层、阻挡氧化层、栅氧氧化层、屏蔽氧化层和全。氧化是最重要的加热过程之一,是一种添加工艺,将氧气加入到硅晶圆后,在晶圆表面形成二氧。为了满足元器件性能的要求,必须利用退火工艺将晶格的损伤修复,使其恢复单晶结构并激活掺。工艺氮气气流下将晶舟推入炉管,升高温度,稳定温度;

goal_achieving的博客 1863

解析WIN2003 Server远程管理(MMC)

【IT168 专稿】 “远程管理”并不是一种独立的服务,也不是一种独立的工具,它只是一种理念、一种服务。它既可是系统中集成的,又可以是由其它单独远程管理软件所提供。在Windows系统中,远程管理是集成于其它服务之中,通过使用其它服务或服务组合来实现的。     许多网络设备也引入了“远程管理”理念,如服务器、路由器产品、防火墙和网络打印机等,

王达专栏 2775

华为昇腾Atlas200DK. CANN模型推理——目标检测结果不对(无检测结果)的问题解决

目录前言问题描述问题排查1.后处理模块问题排查2.预处理模块问题排查3.模型问题排查4.算法bug问题排查5.AI板卡问题排查6.模型精度问题排查6.模型推理问题解决:模型输入数据与预处理不同后记 前言 上周我在华为昇腾Atlas200DK中部署nanodet和yolov5时,出现了目标检测结果不对(没有检测到任何物体),困扰了整整三天,最后找到原因并圆满解决,在这里记录一下debug过程。 以上测试均在python中完成。 问题描述 第一天上午,我首先将nanodet由pytorch的.pth模型转换为.

qq_41035283的博客 5604

火绒安全日志 195.82.146.136尝试连入,已阻止

例如:电脑安装的火绒管家,最近火绒日志一直提醒 “收到多源爆破攻击,仅记录”,“195.82.146.136尝试连入,以阻止”等类似的提醒,所以追踪了下IP,都是国外的,于是记录了一下我这边遇到的IP,如果你也遇到了,可以试试添加IP黑名单。提示:以下是本篇文章正文内容,下面案例可供参考提示:如果你也遇到这个烦恼,并能帮到你,这篇文章就是有意义的,如果你有更好的方案,希望能够大家一起分享一下。

weixin_43148424的博客 809

【机器学习入门】1.4 吃透这些基本术语,才算真正入门

本文通过"挑西瓜"的生活案例,形象解释了机器学习的基本术语。样本对应单个西瓜,特征如色泽、根蒂等是观察维度,特征值是其具体表现,标签是西瓜的好坏判断。数据集是样本集合,特征向量是样本的数学表达,特征空间是所有可能的样本组合。文章强调数据集需划分为训练集、验证集和测试集,以评估模型的泛化能力。最后整理了术语对照表,并解答了常见问题。这些基础概念是理解机器学习的关键,建议读者重点掌握。

国科大硕士在读,分享Python/GEE/Matlab/R专业代码实践,涵盖数据分析、算法开发与应用技巧等,以代码会友。 653

FastAPI + React:现代 Web 前后端分离开发的全栈实践指南

• 部署:CI/CD 双流水线,前端 push → GitHub Actions → Cloudflare Pages;• 后端:分层结构 routers → services → repositories → models,单测覆盖率 90 %。• 接口缓存:Redis + FastAPI Depends 实现接口级缓存,读 QPS 提升至 5 k。• 前端:BFF 由 React Query 代理,统一缓存、重试、分页。GET /items/{id} 详情。,前端同学无需等 Mock 即可联调。

未来已来,AI时代,学AI编程,做AI量化,就来大鹏AI教育。 1492

内网安全:多种横向移动方式

DCOM:DCOM(分布式组件对象模型)是微软的一系列概念和程序接口。它支持不同的两台机器上的组件间的通信,不论它们是运行在局域网、广域网、还是Internet上。利用这个接口,客户端程序对象能够向网络中另一台计算机上的服务器程序对象发送请求,使用DCOM进行横向移动的优势之一在于,在远程主机上执行的进程将会是托管COM服务器端的软件获取DCOM列表:实验前提:1.关闭防火墙2.必须有管理员权限。

8888的博客 1626

从信号到振镜:STM32F103 + XY2-100协议 + AM26LS31芯片的激光打标/雕刻系统信号链搭建指南

本文详细介绍了基于STM32F103微控制器和XY2-100协议的激光打标/雕刻系统信号链搭建方法。从数字振镜控制协议解析、AM26LS31差分驱动电路设计到信号完整性优化,提供了一套完整的解决方案,帮助工程师实现高精度激光控制系统的开发与调试。

weixin_42536058的博客 235

hvv技战法2

通过对客户端与服务器的动态双向验证,防止恶意终端访问,且每次均随机选取检测的项目与数量,以增加应用的不可预测性,大幅提高攻击成本。动态防御技术,通过对网页底层代码的持续动态变化,增加服务器行为的“不可预测性”,迫使攻击者不断重新适应并对动态转移的薄弱点作出反应,从而有效防止攻击者使用自动僵尸程序,让廉价的攻击无法瞄准目标。动态安全防护技术对网站返回内容的底层代码进行封装,将可能被攻击的敏感位置转化成攻击者难以读懂的内容,并且每次封装的算法互不相同,从而隐藏了攻击的入口,使攻击者无法预测服务器的行为。

weixin_45997442的博客 849

绿盾用户使用看图软件每次都需要把图片解密之后才能打开查看,怎么才能不用这么麻烦打开就能看

Win10专业版绿盾控制台7.0看图软件FastStone Image Viewer。

本博客,博文仅代表个人操作经验,不能完全解决你的问题,仅供参考,佛系回复。 1201

《DeepJIT: An End-To-End Deep Learning Framework for Just-In-Time Defect Prediction》论文笔记

软件工程任务:即时缺陷预测(涉及SE+AI知识)

weixin_43646592的博客 701

利用MMC实现服务器的远程管理

尽管借助远程桌面和pcAnyWhere可以实现对服务器的远程管理,但是,也为***打开了方便之门。那么,有没有更好的解决方案,既可以实现远程管理,又不会遭受恶意***呢?答案当然是肯定的! MMC除了有一个统一的、标准的管理界面之外,还可以在一个MMC管理界面中管理所有的、本地的或远程的计算机上的相应信息。例如,可以在网络中的一台没有安装Exchange 2003的计算机上...

weixin_34090643的博客 532

【微服务】SpringBoot 对接飞书审批流程使用详解

SpringBoot 对接飞书审批流程使用详解

congge_study的博客 3767

RPC(远程过程调用)详解

文章目录一、RPC是什么二、RPC需要解决的问题1、Call ID映射2、序列化和反序列化3、网络传输4、RPC的调用流程图三、常用的RPC框架 一、RPC是什么   RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。 二、RPC需要解决的问题 1、C...

青萍之末的博客 2万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

深度学习工具包 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")

DCOM在远程系统中的使用

DCOM在远程系统中的使用 DCOM(分布式组件对象模型)是微软的一个概念和程序接口,通过DCOM,客户端程序对象能够向网络中的另一台计算机上的服务器程序对象发送请求 通过本地DCOM执行命令 1,获取DCOM程序列表 Get-CimInstance (适用于powershell 3.0及以上版本,win2012及以上) Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_DCOMApplication(适用于powershell 2.0,win7,win8)

qq_46635165的博客 2928

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【如何实现Windows XP远程管理功能】

远程管理是一个很有用的功能,相信很多用户都用得上,你可以用这个办法异地办事还可以指导一些异地无法解决的事情,那么Windows XP如何实现远程管理功能呢?   远程桌面管理的文件是tsmmc.msc,Windows XP可以通过安装“Windows Server 2003 管理工具包”获得。如果只想安装远程管理功能,可以将Windows Server 2003系统中“C:/WINDOWS/

南山鹿场 599

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

计算机 管理 mmc 注册表,怎么用MMC控制台来远程控制主策略或注册表

满意答案当然在使用MMC控制台对服务器进行远程管理时,必须先获得服务器的超级管理权限,然后还需要安装好相应的MMC插件和一定的管理工具才可以;例如要想对Windows Server 2003服务器进行远程控制的话,必须先获得管理Windows 2003服务器的服务权限,同时还需要在本地计算机中安装好MMC插件和Windows 2003服务器的相关管理工具。一旦满足了上述条件,你就可以按照如下步骤来...

weixin_33289151的博客 753

MMC20.Application远程创建DCOM对象,拒绝访问0x80070005

关于利用MMC20这个DCOM对象启动进程的方法,网上已经有不少文章了。 我在测试在远程目标机器上创建MMC20对象时,始终提示0x8007005错误 PS测试代码: $com = [Activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","192.168.198.133")); $com = Document.ActiveView.ExecuteShellCommand("C:\Windows\System32\Ca

Sven的忘却日记 2544

远程过程调用(RPC)详解

原文同步至 http://waylau.com/remote-pr...

weixin_33913377的博客 6244

远程过程调用 (RPC)

远程过程调用 (RPC) 是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务。由于使用 RPC 的程序不必了解支持通信的网络协议的情况,因此 RPC 提高了程序的互操作性。在 RPC 中,发出请求的程序是客户程序,而提供服务的程序是服务器。 RPC 中处理 TCP/IP 上的消息交换的部分存在一个缺陷。错误地处理格式不正确的消息会导致出现错误。这种特定的错误会影响底层的 DCO

777

vmware 安装的苹果系统 安装tools不成功和无法适应分辨率问题

这个问题的原因一直折腾了我很长时间,一直重新安装VMware tools怎么都不能够让mac系统适应客户端窗口,试着网络上的其他修改分辨率参数的方法也行不通!!!甚至还重装了mac系统,还是不行!! 怀疑人生了没有??? 找了一阵子资料,才发现是新版本mac os 系统有个SIP导致的。 以下是实测方法: 首先重启电脑的时候,一直按住Cmd+R (对应的window键盘位置:win+R)直...

成茂峰 1万+

vscode工作区 打开方式问题

你保存的工作区,貌似window系统更新或者什么更新后,每次双击后都是要你自己去选择打开vscode方式: 如此麻烦,所以我就找到了一个方法解决,记录如下: 第一步:选中其中一个工作区,右键》》属性: 第二步:看到打开方式这一行,点击后面的更改,更改成vscode,确认再确认就行了,这样下次直接双击工作区,就能直接打开软件了: 其实不单是vscode的工作区,当时你想某一类型的文件,更改打...

成茂峰 6041
上一篇: 【2026最新】别再关防火墙了!从入站出站到官方配置,保姆级避坑指南
成茂峰
博客等级 码龄13年 835粉丝 138原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成茂峰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值