垃圾邮件全曝光走进其隐秘世界

实验三 垃圾邮件分类 朴素贝叶斯 垃圾邮件分类 阅读详情

对于垃圾邮件,已经在《中国互联网协会反垃圾邮件规范》中给出了一个明确的定义,但是它并不足以让我们了解垃圾邮件的产生、发送及其背后所隐藏的秘密。作为网管员或电子邮件用户,只有了解垃圾邮件所隐含的秘密,尤其是垃圾邮件发送者所使用的躲避垃圾邮件过滤的技术,才会知道垃圾邮件防范的具体细节在哪些方面。

  一、垃圾邮件的产生流程及其背后的利益关系

  垃圾邮件并不是无中生有的,对于纯商业性质的垃圾邮件来说,它是由一些想通过电子邮件来销售或宣传某种产品的厂商所提供的,这也就是垃圾邮件的提供者。但是,垃圾邮件的提供者并不会自己去发送它们,而是将发送任务交给某些拥有大量邮箱地址的专业垃圾邮件发送者或团体,并按某种协议付给发送者一定的费用。剩下的工作,就是发送者如何按提供者的要求将一定数理的垃圾邮件发送到最终的各用户邮箱中。垃圾邮件提供者看到了此种方式所带来的低成本和高效率,而发送者看得了发送垃圾邮件带来的利益,并且这种利益会随着最终发送数量的增多而不断增加。他们之间的不断利用,就构成了现在垃圾邮件泛滥的根本原因所在。

  但是,垃圾邮件要想最终到达众多的用户邮箱之中,也不是人们想象中的那么简单。首先,发送者必需得到相当多的有效邮箱地址,这样才能满足提供者发送数量的要求。发送者一般在刚开始时是向一些机构或个人直接购买或在互联网中进行搜索的方式得到,当在这个圈子中熟习以后,还可以通过与其它发送者之间相互交互的方式来扩大邮箱地址库。现在,许多网站中给出的电子邮箱地址,都将“@”符号改为了“#”号,就是为了防止被按“@”符号为关键字邮箱地址收集软件搜索到。

  另一方面,就是如何确保垃圾邮件都能最终到达用户邮箱当中,不然,一切都是枉然。解决此问题的关键,就是如何躲避各种反垃圾邮件产品的过滤。现在,一些技术高超的发送者已经使用了许多相当有效的方法来躲避被过滤,并且其发展速度要快于反垃圾邮件技术,这也是为什么垃圾邮件不能完全被过滤的主要原因。

  最后,就是要解决被追踪的问题,这是垃圾邮件发送者设法使自己免于法律惩罚所要进行的必要手段。一般会通过下列方式中的一种或几种来达到目的:

  1、修改垃圾邮件头中与发送者相关的所有域的内容,使这些内容与自己无任何联系。

  2、使用第三方可以匿名转发邮件的邮件服务器来发送垃圾邮件;

  3、自建邮件服务器,并使用代理服务器进行网络连接;

  4、通过控制正常的邮件服务器来发送垃圾邮件,通过Rootkit隐藏在服务中的痕迹;

  5、通过控制僵尸网络中的主机来发送垃圾邮件;

  6、也可通过自己的多台邮件服务器,设置按某个时间间隔,一次只发送十到二址封垃圾邮件,让反垃圾邮件产品不能通过行为检测方式来判断这些主机为垃圾邮件服务器。一段时间后,也能达到相当大的垃圾邮件发送数量。

  只有同时满足了上述的三个条件,垃圾邮件发送者与提供者之间的利益关系才能真正实现。

  二、主流垃圾邮件编写技术全接触

  在上面已经提到过,垃圾邮件发送成功的关键就是如何突破反垃圾邮件产品的重重封锁,所使用的手段就是各种垃圾邮件编写技术。

  1、通过修改邮件头中的IP地址或域名,来躲过以黑白名单方式的垃圾邮件过滤。伪造邮件头中的某些关键域中的内容,使用一款名为AdvancedDirectRemailer的软件就可以轻易实现。不过,一些使用DNS反向查询技术和使用签名认证的产品能过过滤这种方式发送的垃圾邮件。

  2、将垃圾邮件中每个单词的字母或汉字之间用空格或一些特殊字符(如“-”或“+”号)隔开,这样就能轻易躲过基于关键字和文本内容分析技术的过滤,而且其反过滤效果到现在还相当有效,并且不需要任务工具就可以轻易实现。但是,现在一些反垃圾邮件厂商开始在其产品中增加了识别特殊字符和词重组功能,以便能提高识别这种方式发送的垃圾邮件。

  3、用数字替换垃圾邮件中英文单词中的某些字母,例如使用“1”数字替换“i”,用“0”替换“o”等,这样也能够躲过其于文本分析的内容过滤。只是,这种方式只能使用在发送英文的垃圾邮件中,且修改后邮箱用户有时不能完全理解其原来的意义,因此,只会在一些不会产生歧义的地方使用。

  4、用ASCII码来代替字母,例如字母B用ASCII码66来代替,而在邮箱用户端却可以正常显示为单词,并构成完整的句子。可以用此来躲过基于内容和统计概率的检测过滤。但是,现在已经有许多反垃圾邮件产品中加放了ACCII码识别功能,因而现在此种方式并不常用。

  5、还有一种方法也是非常容易实现和使用比较频繁的,就是先编写几段正常的邮件内容,然后将这些内容的字体颜色设置与背景色相同,例如白色文字与白色的背景;然后,在这些正常的邮件内容当中插入垃圾邮件内容,但其字体颜色与背景色是不同的,例如黑色文字与白色背景。这样,就能躲过基于内容和统计概率方式的过滤,而在邮箱用户端,又只会显示出垃圾邮件的内容。

  6、将垃圾邮件文本内容嵌入到图片当中,并对图片进行降噪处理,但以不影响阅读为底线,然后作为附件发送。它主要用来躲避基于内容的过滤和基于统计概率的过滤。对图片降噪的方法是通过增加多个低像素的图片框来作为图像噪声,然后编写脚本来旋转所有的图片框,将要显示主要内容的图片框的显示时间加长,其它低像素的图片框的显示时间非常短,就能达到即能正常显示垃圾邮件内容,又增加了垃圾邮件过滤器检测难度的目的。只是现在主要的反垃圾邮件产品中都提高了邮件附件图像识别能力,并加入了行为模式检测技术,已经能够很好地识别图片方式的垃圾邮件。并且其编写方式比较麻烦,现在图片方式的垃圾邮件已经大大减少。

  7、将垃圾邮件做成PDF文件,然后以附件的方式发送。这是垃圾邮件发送者继图片式垃圾邮件效果不高后使用的另一种相似的编写技术,但此种方式的反垃圾邮件过滤功能要大大优于前一种,现在,虽然一些号称使用了行为模式检测技术的反垃圾邮件产品能过滤部分与此相关的邮件,但穿过的成功率却比过滤得的要高得多。因此,PDF垃圾邮件的比率将会不断升高。

  8、将垃圾邮件内容做成MP3或视频文件,然后作为邮件附件发送,这是最近才出现的垃圾邮件方式。虽然还没有过滤这种方式的技术,但是,由于为了降低垃圾邮件的体积,垃圾邮件发送者不得不降低音频的比特率及视频的像素,这样一来,邮箱用户在打开时所听到的音频和看到的视频都很不清楚,根本起不到垃圾邮件发送的目的。因此,这种方式的使用率将不会很高。

  要明白的是,垃圾邮件发送者在发送垃圾邮件时,并不只使用上述列出的编写方法中的某一种,而是会同时使用多种方法来组合使用的,这样才能提高发送的成功率。而且,垃圾邮件发送者仍然会不断地开发出新的编写技术,以应对也不断推陈出新的垃圾邮件过滤技术。

  三、垃圾邮件穿透能力的验证方法

  虽然使用了躲避反垃圾邮件产品检测的方法,但是,这并不意味着所发送的垃圾邮件就一定能穿过它们。这是因为,每种垃圾邮件过滤产品所使用的方法和性能并不相同,以及其设置也不相同。因此,要验证所使用的躲避技术是否有效,就得在各种不同的垃圾邮件过滤环境中进行实验。实验的方法可以是自己构建这样的环境,这对于某些垃圾邮件发送者来说是不可能有财力支持的。但是,一些有条件的垃圾邮件发送者,例如处于某种企业环境中,就可以利用本企业的邮件过滤产品来做试验。还有一种方法,就是注册一些免费的邮箱,然后编写垃圾邮件发送给自己或者朋友的邮箱当中,来验证是否可以被正常接收,这种方式是即快又省,而且试验的产品又全面。

  四、垃圾邮件带来的危害

  垃圾邮件所带来的危害是相当大的,它不仅会占用人们大量处理邮件的时间,降低工作效率;还会占用用户宝贵的网络带宽资源,阻碍正常的关键网络业务运行;并且,邮件用户为了阻止垃圾邮件的不断增长,不得不投入额外的垃圾邮件过滤硬件或软件来应对,这要花费用户大量的金钱和管理开销,以及增加企业原本已经相当复杂了的IT安全基础架构和安全防范策略的复杂性。对于企业邮件用户来说,其雇员数量越多,为每个雇员所花费的垃圾邮件过滤费用就会不断的提高,这是相当惊人的一笔开支。

  五、垃圾邮件能消除吗

  垃圾邮件从出现到现在已经过去了整整三十年,在这三十当中,反垃圾邮件技术虽然有了长足的发展,但是,如今互联网中的数据流量中的相当一部分依然被垃圾邮件占用,这就足以说明,垃圾邮件的编写技术要快过了垃圾邮件过滤技术的发展。因此,在目前或将来相当长的一段时间内,垃圾邮件依然会伴随着所有的电子邮件用户。

  但是,我们不能眼睁睁地看着垃圾邮件就这么地肆掠下去。其实,通过对垃圾邮件的全面分析,我们也已经了解到了它所存在的各种弱点。因此,只要垃圾邮件防范措施得当,我们还是可以将垃圾邮件控制在我们能承受的范围之内的。

  下面给出一些有用的建议如下:

  1、继续加深反垃圾邮件的立法,加入对垃圾邮件提供者的严厉惩罚,斩断垃圾邮件利益链的最上层,这样,垃圾邮件才有可会从源头减少。

  2、尽量选购包含了所有主流垃圾邮件过滤技术的产品,并且仔细考查它们的处理方式、性能、误判率和漏判率,以及扩展性和各种产品之间的兼容性等。还有,产品的提供商和销售商的服务方式和后期维护能力也要在考虑的范围。

  3、制定与自己实际需求相应的邮件安全策略。反垃圾邮件并不是一种技术或服务就可以完成的,而且它应当包括在整个邮件系统的安全策略之内,它是一种多种技术和服务相互协作的一个系统的过程。同时,在设计邮件系统时就应当将安全设计理论考虑进出,应当从企业网络边界、邮件服务器和客户端三个层面一起进行安全部署。如果有条件,最好每一层所使用的产品都不是同一提供商的。这是因为每个提供商在邮件系统安全的各个层面都有自己最拿手的,也有自己比较弱的,因此,充分利用每个产品最好的功能应用到相应的层面,达到的效果才是最好的。

  4、将邮件系统安全策略集成到企业的整个IT安全策略当中,充分利用其它安全设备来减少邮件系统的安全威胁。同样,提高邮件系统的安全,也会减少给企业带来其它途径的安全威胁。邮件系统安全与企业整个IT环境的安全是相辅相承的。

  5、加强对电子邮件用户的网络安全知识的培训工作。

  总之,反垃圾邮件是一场持续而艰苦的斗争,我们只有不断地了解垃圾邮件的发展方向,充分利用已有的垃圾邮件过滤产品,构造行之用效的垃圾邮件防范措施,才能将垃圾邮件所带来的风险控制在我们能够承受的水平之内,电子邮件才能真正意义上为我们带来效益。

垃圾邮件特性分析及数据安全应对策略 在本文中,我们将探讨垃圾邮件的主要特性,并介绍一些有效的应对技巧,以确保数据的安全性和保密性。垃圾邮件的特性分析和数据安全应对技巧对于保护个人和组织的信息安全至关重要。通过使用垃圾邮件过滤器、保护敏感信息、提高用户意识和采取其他安全措施,可以有效减少垃圾邮件的影响和风险。强密码和多因素身份验证:使用强密码,并启用多因素身份验证,以增加账户的安全性,防止垃圾邮件发送者通过猜测或破解密码来入侵。定期软件更新:及时更新操作系统、邮件客户端及防病毒软件等软件,以确保系统和应用程序的安全性,减少垃圾邮件的入侵风险。 阅读详情

相关推荐

AMD显卡跑Ollama大模型?手把手教你搞定Windows下GPU识别与加速(以RX 9600XT为例)

本文详细指导如何在Windows系统下使用AMD显卡(如RX 9600XT)运行Ollama大模型,解决GPU识别与加速问题。通过获取非官方Ollama版本、替换ROCm库文件等步骤,实现高效的GPU加速推理,提升大语言模型的运行效率。

weixin_28707365的博客 479

垃圾邮件的五大特性分析及应对技巧

对于垃圾邮件,已经在《中国互联网协会反垃圾邮件规范》中给出了一个明确的定义,但是它并不足以让我们了解垃圾邮件的产生、发送及其背后所隐藏的秘密。作为网管员或电子邮件用户,只有了解垃圾邮件所隐含的秘密,尤其是垃圾邮件发送者所使用的躲避垃圾邮件过滤的技术,才会知道垃圾邮件防范的具体细节在哪些方面。  一、垃圾邮件的产生流程及其背后的利益关系  垃圾邮件并不是无中生有的,对于纯商业性质的垃圾邮件来

等候、末班车 2012

手把手教你用三极管搭建麦克风音频放大电路(附完整电路图)

本文详细介绍了如何使用三极管搭建麦克风音频放大电路,包括电路设计基础、元件选择、完整电路图及分步焊接指南。通过实际操作和调试技巧,帮助电子爱好者和学生深入理解模拟电路原理,实现音质清晰的音频放大效果。

Black的专栏 982

避免我们的邮件服务器发出的邮件被当成垃圾邮件

避免我们的邮件服务器发出的邮件被当成垃圾邮件 本文转自(http://hi.baidu.com/dongfangmn/item/75260e0285dbb6d972e67622) (经过两天的努力,终于搞好了SPF和DKIM。高兴之余也要记录下来才行) (DKIM是什么呢?根据DKIM的官方(http://www.dkim.org)说法,是“DomainKeys Identified Mail”,也就是被域名验证过的邮件。) 由于网络上太多垃圾邮件,其中大部分垃圾邮件都冒充其他的域名给我们发送邮件。那么我们

第一天 2388

WPF实战:HelixToolkit 3D图形开发入门指南

本文详细介绍了如何使用HelixToolkit在WPF中进行3D图形开发,从环境搭建到创建第一个3D程序(如彩色立方体),再到进阶技巧和常见问题排查。通过实战案例和性能优化建议,帮助开发者快速掌握3D场景构建和模型导入技术,提升开发效率。

weixin_29197051的博客 757

AI辅助游戏开发实战:Kimi K3提升Unity开发效率与代码质量

在游戏开发领域,有限状态机(FSM)是构建角色AI行为逻辑的核心设计模式,它通过定义明确的状态和转换条件,使游戏实体能够智能地响应环境变化。其原理在于将复杂的行为分解为离散的状态节点,并通过事件驱动状态切换,从而实现清晰、可维护的AI架构。这项技术的价值在于显著提升了游戏角色的行为真实感和开发效率,被广泛应用于NPC行为控制、角色动画管理、UI流程等场景。随着AI编程助手的兴起,开发者现在可以借助如Kimi K3这类工具,通过自然语言指令快速生成和优化FSM等复杂系统的代码框架,将更多精力投入到核心玩法与性

weixin_30430677的博客 406

垃圾邮件发送的几个特性

垃圾邮件占据目前发送邮件的七成以上。这么多垃圾邮件,有什么特性?本文给大家介绍一下。 一,垃圾邮件具有强制性。强制性体现在客户是被强制营销,强制接收各种垃圾邮件广告。因此,客户没有办法避开这些邮件,只能被动强制接收。 二、大规模发送。现在的EDM工作者一直追求数量,数量胜过一切,因此,不断的大批量发送,导致全球七成以上的邮件都是这些人发送的。 三、盲目性。没有任何目标,只是为了流量...

241

在trae CN中使用conda环境(已解决)

Trae CN 是字节跳动于 2025 年 3 月 3 日发布的国内首个 AI 原生集成开发环境(AI IDE)123。

zwzscnds的博客 6934

垃圾邮件的判定标准与识别方法

因为国内QQ邮箱的一家独大,所以目前国内的ESP和世界上主流的ESP判定垃圾邮件的标准有所不同,但总体来说,不外乎以下几种技术: 1、关键词识别 它首先将垃圾邮件中一些特征性的字眼收集起来(比如打折、免费、促销等),形成一个大的数据库,当一封邮件发出来的时候就会自动匹配邮件头、邮件标题、邮件内容中与这些库里的关键词特征,如果有相类似的字眼,就会判定为垃圾邮件。 2、IP黑白名单 和第一种一

优快云515的专栏 1万+

​​手把手教你学PCIE--ATU 的 Bar 匹配模式与地址匹配模式详解​

摘要: ATU(地址转换单元)提供两种地址匹配模式:Bar匹配模式基于PCI设备的BAR寄存器自动映射虚拟地址(只需配置物理基址),适用于标准PCI设备DMA;地址匹配模式需显式配置虚拟与物理地址范围,适合自定义映射场景。核心区别在于匹配依据(BAR自动推导vs人工定义),Bar模式简化配置,地址模式更灵活。

MHD0815的博客 378

【芯片设计- RTL 编译与仿真 1.2 -- Visualizer 常用使用命令】

打开波形后,如果想要看到所有信号的数据,可以点击下图中红框中的按钮,因为默认verdi 默认并不是显示所用信号。如果想统计某一个信号中有多少笔数据时,可以使用 Expression->Edege Count 功能。如下图所示,如果没有打开前导0的功能时,当某一笔数据位0时,只会显示1个0。如果需要将波形的数据导出到文本文件时,可以按照下面步骤进行。打开前导0功能之后,会根据数据位宽来显示对应0的个数。

CodingCos的博客 2046

走进垃圾邮件的隐秘世界——垃圾邮件全曝光

对于垃圾邮件,已经在《中国互联网协会反垃圾邮件规范》中给出了一个明确的定义,但是它并不足以让我们了解垃圾邮件的产生、发送及其背后所隐藏的秘密。作为网管员或电子邮件用户,只有了解垃圾邮件所隐含的秘密,尤其是垃圾邮件发送者所使用的躲避垃圾邮件过滤的技术,才会知道垃圾邮件防范的具体细节在哪些方面。   一、垃圾邮件的产生流程及其背后的利益关系     垃圾邮件并不是无中生有的,对于纯商业性质的垃圾...

weixin_34292959的博客 202

16、保障Azure应用安全:密钥管理与身份认证

本文深入探讨了保障Azure应用安全的关键措施,包括使用网络安全工具(如Application Gateway和Azure Front Door)防范攻击,解决传统密钥和机密存储方式的安全隐患,以及通过Azure Key Vault实现敏感信息的安全管理。同时,介绍了使用托管标识实现Azure资源间安全访问的方法,并结合实际操作步骤展示了如何配置Key Vault、设置访问策略、存储机密以及授予Web应用对SQL Server的访问权限。最后,对不同安全措施进行了比较,并提出了在开发、测试及生产环境中的综合

rock5的博客 71

从零实现扫雷游戏:二维数组与递归算法的入门实战

二维数组是编程入门的基础数据结构,常用于表示网格、矩阵等结构化数据。递归算法则通过函数自我调用解决分治问题,在搜索和遍历场景中广泛应用。将两者结合,可以高效处理网格状态管理与区域自动展开等任务,技术价值在于以简洁代码实现复杂逻辑。典型应用场景包括游戏开发、图像处理和路径搜索。扫雷游戏正是这一组合的经典实践:利用二维数组存储地雷布局与可见状态,通过递归或广度优先搜索实现空白区域展开,同时涉及随机数生成与边界条件处理。从扫雷入手,能帮助初学者在完整项目中掌握核心算法与工程调试技巧。

weixin_34327223的博客 295

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

邮件系统最常见的几个安全问题

据最新数据显示:2017年企业电子邮件泄密数据急剧上升,企业电子邮件泄密带来的经济损失就已超过53亿美元。 在2018年第一季度,电子邮件欺诈***的数量同比增长103%。今年的2月21日,IBM报告其X-Force事故响应和情报服务(IRIS)部门发现了一起电子邮件泄密***,造成约500万美元的损失。 如果把电子邮件、电子邮箱、电子邮件服务器和用户看成一个电子邮件相关联的系统,从***窃密的角...

weixin_34095889的博客 2961

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

不要让自己的邮件置身险境

电子邮件作为企业较常用到的网络通信方式,一直是企业关注的焦点,企业日常办公、商务交流等很大程度上依赖于邮件系统的助益。然而企业在使用邮件系统过程中也遇到不少困扰,其中安全问题最为突出,最让企业担心。今天我们就来梳理一...

congbengshu9662的博客 214

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

是时候关注邮件安全了

电子邮件作为企业较常用到的网络通信方式,一直是企业关注的焦点,企业日常办公、商务交流等很大程度上依赖于邮件系统的助益。然而企业在使用邮件系统过程中也遇到不少困扰,其中安全问题最为突出,最让企业担心。今天我们就来梳理一下,邮件系统安全最常见的几个安全问题: 1、用户MiMa猜测——据国外学者调查发现,现今用户 MiMa 设置普遍存在不安全因素,不法分子利用用户贪图方便设置弱口令的漏洞,对邮箱账户 M...

Bi_HH的博客 1289

数据科学家必懂的四大概率法则工程实践

概率论是机器学习与数据决策的底层语言,其核心在于理解事件间的关系而非死记公式。加法法则揭示了重叠事件的统计校正逻辑,乘法法则构成联合概率与模型似然函数的数学基础,条件概率定义了样本空间动态收缩的决策本质,而独立性辨析则直指特征工程与模型假设的可靠性边界。这些概念在AB测试置信区间、风控联合建模、推荐系统实时更新、序列预测链式分解等高频场景中具象落地。本文聚焦电商、金融、医疗等真实工业场景,将概率直觉转化为pandas/PyTorch可执行代码,帮助工程师跨越‘知道’与‘会用’之间的鸿沟。

404

别再用 OpenClaw 了,你们都中计了!这根本就是一场“电子缅北”诈骗

本文以辛辣讽刺的笔调,揭示了当前AI技术应用中的"无效内卷"现象。作者通过算账对比指出:部署本地AI模型的硬件折旧、电费和维护成本远超雇佣大学生实习生的费用(一块RTX4090显卡月耗电费144元,而实习生月薪仅1500-2000元)。文章列举AI在Excel处理、编程等场景的笨拙表现,讽刺其"人工智障"本质,同时揭示人们追捧AI背后隐藏的"赛博奴隶主"心理。最终提出反讽式建议:卖掉显卡去大学城招聘实习生,因为"最廉价的高科技往往藏在最廉

热爱技术与前沿创新,深耕科技领域,在科创中精进自我;探索技术乐趣,分享技术干货与成长心得,以技术为伴,热爱生活,在科创与生活中双向成长。 417

了解垃圾邮件的特征和危害:有效预防策略揭秘

垃圾邮件是一种侵入性的未经请求的电子通信形式,主要通过电子邮件传播。它将大量无关、欺骗性或恶意内容发送给邮箱用户,内容涵盖令人讨厌的广告和欺诈行为、以及网络钓鱼链接。截至 2022 年 12 月,垃圾邮件占电子邮件流量的 45% 以上。除了令人讨厌之外,垃圾邮件还存在重大风险,它利用收件人的信任诱骗他们泄露敏感信息,传播恶意软件感染并造成经济损失。垃圾邮件会降低生产力,使网络资源紧张,并破坏组织内部的顺畅沟通。

dunniang的博客 1531

你的邮件为何被标记为垃圾邮件?

尽管如今垃圾邮件(SPAM)可能不是最致命的威胁。但它仍然是大家每天都要面对的严重困扰,比方趋势科技的用户每月就要处理数十亿封的垃圾邮件。垃圾邮件不仅骚扰用户。更常常通过附件或恶意链接来散播恶意软件。 处理垃圾邮件最有力的手段之中的一个就是IP信誉评比技术。它会检查电子邮件的发送IP地址来和已知曾发出过垃圾邮件的IP地址进行比对。 IP信誉评比技术是非常必要的,由于全部企业...

weixin_34258782的博客 1547

收到电子邮件说我中了rat_为什么我从自己的电子邮件地址收到垃圾邮件?

收到电子邮件说我中了ratMicroOne/ShutterstockMicroOne /快门Have you ever opened an email only to find it’s spam or blackmail that seemed to come from your own email address? You’re not alone. Faking email addresse...

cum44153的博客 4160
上一篇: c# 通过修改图片对象的文件的字节 变相"加密""解密"图片在磁盘的存储
下一篇: 电子邮件头全揭密
marklr
博客等级 码龄19年 52粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值