为什么模型训练次数越多,准确率反而越低了
为什么模型训练次数越多,准确率反而越低了前言,在做模型训练数据的时候,我以为训练次数越久,准确率会更高,但是实际上,就算我训练了几个小时,准确率也没提高,甚至比几分钟的都低,很疑惑
解释当模型训练次数增多而准确率反而下降,这种现象可能由几个原因引起,主要包括过拟合、不适当的训练迭代、或是数据本身的问题。以下是一些可能的解释和建议:
1. 过拟合过拟合是最常见的原因之一,特别是在复杂的模型(如深度学习模型)或数据量相对较少的情况下。过拟合发生时,模型学习到了训练数据中的噪声和细节,而这些特征并不适用于未见过的测试数据。
解决方案:
增加数据量:使用更多的训练数据可以帮助模型学习更通用的特征。
简化模型:减少模型的复杂度,比如减少随机森林中的树的数量或是深度学习模型中的层数。
使用正则化技术:如 L1 或 L2 正则化,这可以惩罚模型的复杂度。
早停(Early Stopping):在训练过程中,如果在验证集上的性能开始下降,则停止训练。
2. 不适当的训练迭代在某些算法中(如梯度下降),如果训练迭代次数过多,模型可能会开始适应训练数据中的特定样本,从而忽略了整体数据的模式。
解决方案 ...
中国网络防火长城简史
中国网络防火长城简史
转自https://github.com/TsingJyujing/blogs/blob/master/spam/gfw-history.md简介计算机的防火墙,和物理意义上的墙并不一样,物理上的墙建立以后,那就既进不来,也出不去了。而计算机的墙,则是可以对两个方向进行控制。
其实我们今天所说的计算机防火墙,大致有两种,一种是对内的,一种是对外的。
传统意义上的防火墙,一般是用来防止外部访问的,当然,你也可以设置禁止访问某些IP或者网站,禁止内部访问。
我们使用计算机的时候,会开放很多端口,比如22,139,3389等等,而作为非开发者的用户,往往用不到这些端口。 再考虑到使用这些端口的程序有的时候是有漏洞的,开放了容易被攻击,所以干脆打开防火墙封闭了就好。 这就好比你日常宅在家,并不需要出门,就把锁孔都堵死来保证安全一样。
而我们今天讨论的主角,主要的功能不是阻止别人进来(入侵),而是阻止你出去的。 你访问不了Google/Youtube/Facebook/LINE/Twitter/。。。的根本原因: 防火长 ...
一次APT攻击记录
一次APT攻击记录前言在做一次老师的项目的时候,需要研究linux系统的日志消息,于是去研究的时候发现定时任务日志有奇怪的动作,于是去看了一下对应文件的操作,发现是个恶意软件
/dev/shm/dev/shm 是 Linux 和其他类 Unix 系统上的一个特殊目录,用于创建和存储共享内存。这个目录通常是一个临时文件系统,意味着它直接存储在 RAM 中,而不是磁盘上,这使得其中的数据访问速度非常快。共享内存可以被运行在同一系统上的多个程序访问和使用,常用于进程间通信(IPC)。
/dev/shm/.bin 看起来像是一个隐藏目录(因为它的名字以点开头),位于 /dev/shm 下。在 Linux 中,以点开头的文件或目录默认是隐藏的,不会在常规的目录列表中显示出来。关于 .bin 文件夹里面是什么,这取决于具体系统上的配置和使用情况:
临时文件或脚本:一些程序可能会将临时文件或脚本存储在 /dev/shm 中,利用这个位置的高速访问特性。.bin 目录可能用于存放这些临时性的二进制文件或脚本。
恶意软件:有时候,恶意软件可能会利用 /dev/shm 来存放可执行文 ...
zsh报错
zsh报错
1zsh: corrupt history file /home/kali/.zsh_history
1234cd ~mv .zsh_history .zsh_history_badstrings .zsh_history_bad > .zsh_historyfc -R .zsh_historys
YARA & Suricata 入侵检测规则
YARA & Suricata 入侵检测规则YARA规则Yara 简介yara是一个用于帮助恶意软件研究人员识别和分类恶意软件样本的开源工具,其每条描述、规则都由一系列字符串和一个布尔类型表达式构成,并用于阐述其逻辑。其可以用于对于文件进行匹配,进而来判断是否出现在已经进行过规则描述的某恶意软件。
IDA的Find Cryptos插件也运用到了yara规则来进行匹配对应密码学相关特征数据字段,通过对固定密码盒的识别来尝试性提醒用户存在对应的加密规则。对于yara可能更多的像是一种正则表达式来对目标数据进行匹配。
项目地址:https://github.com/VirusTotal/yara,(yara64.exe , yarac64.exe )
python:https://github.com/VirusTotal/yara-python
官方文档:https://yara.readthedocs.io/
Yara 规则编写从官方文档来看yara的开头必须为rule,随后跟着一个定义名,其命名规则同样遵循与C 语言类似的规则,可以包含任意字母数字或是下划线,但是需要注意的 ...
YAML入门教程
YAML入门教程YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:”Yet Another Markup Language”(仍是一种标记语言)。
YAML 的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。
YAML 的配置文件后缀为 .yml,如:test.yml 。
基本语法
大小写敏感
使用缩进表示层级关系
缩进不允许使用tab,只允许空格
缩进的空格数不重要,只要相同层级的元素左对齐即可
‘#’表示注释
数据类型YAML 支持以下几种数据类型:
对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
纯量(scalars):单个 ...
windows注册表
windows注册表Windows注册表(Registry)是Windows操作系统中的一个关键组件,用于存储和管理系统和应用程序的配置信息、设置以及各种系统和用户级别的参数。注册表可以看作是一个层次结构的数据库,其中包含了大量的配置信息,用于维护和管理操作系统的各种设置。
以下是Windows注册表的主要用途:
系统配置信息存储:注册表中存储了系统的配置信息,包括硬件配置、系统启动选项、设备驱动程序等。这些信息用于确保系统在启动时能够正确配置和初始化各个组件。
用户配置信息存储:每个用户都有其自己的注册表分支,用于存储用户级别的配置信息,例如桌面设置、文件关联、用户偏好等。用户的个性化设置通常保存在注册表中。
应用程序配置:许多应用程序使用注册表存储其配置信息。安装的软件可以将相关的配置信息写入注册表,以便在程序运行时进行读取。
文件关联:注册表中包含文件关联信息,定义了特定文件类型与关联的应用程序之间的关系。这影响了双击文件时系统将使用哪个程序打开它。
系统安全性设置:注册表中包含有关系统安全性和用户权限的信息。这些设置可以控制用户对系统和资源的访问权限。
操作系统行为控制:注册 ...
Windows PE 文件头解析
Windows PE 文件头解析0x01 PE文件基本介绍PE文件的全称是Portable Executable,意为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程序文件(来自百度百科)。包括DOS头、PE头、节表、导入表和导出表。
本文主要介绍DOS头、NT头、标准PE头、可选PE头和节表。
在介绍前先了解几个概念:
虚拟地址(Virtual Address,VA):在windows系统中,PE文件被系统加载器映射到内存中。每个程序都有自己的虚拟空间,这个虚拟空间的内存地址称为虚拟地址。
相对虚拟地址(Relative Virtual Address,RVA):RVA是PE文件被装在到内存中,某个数据位置相对于装入地址的偏移量。假设一个程序从400000h处装入,代码开始与401000h,于是RVA = 401000h - 400000h,为1000h
虚拟地址(RV)= 基地址(ImageBase)+ 相对虚拟地址(RVA)
有关ImageBase的内容后面会介绍到。
下图为PE文件 ...
Windos 的CMD命令
Windos 的CMD命令常用基本命令1,列出所有任务及进程号,杀进程
tasklist
tasklist /? 获取使用帮助
taskkill
taskkill /? 获取使用帮助
2,cd 切换目录
cd /? //获取使用帮助
cd \ //跳转到硬盘的根目录
cd C:\WINDOWS //跳转到当前硬盘的其他文件
d: //跳转到其他硬盘
cd /d e:\software //跳转到其他硬盘的其他文件夹
注意此处必须加/d参数。否则无法跳转。
cd.. //跳转到上一层目录
3,netstat 查看网络连接状态
显示协议统计信息和当前 TCP/IP 网络连接。该命令可以查看当前机器建立的所有网络链接状态,以及对应哪个进程。
netstat -help 获取命令行使用帮助信息
netstat -ano //查看网络连接、状态以及对应的进程id
4,find
find /?获取使用帮助
netstat -ano|find ".8" ...
WIN32编程
WIN32编程APIENTRY WinMain 和WINAPI WinMain的区别在 Windows 编程中,WinMain 是 Windows 图形用户界面(GUI)应用程序的入口点(Entry Point)。在不同的编译器和工具集中,函数的声明可能略有不同,但通常有两种常见的声明方式:
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow)
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
这两者之间的主要区别在于调用约定(Calling Convention):
APIENTRY 是一个宏,它会根据编译器和目标平台选择正确的调用约定。在 Windows 上,它通常被定义为 __stdcall。__stdcall 是一种标准的调用约定,它规定了参数的传递方式和堆栈的清理方式。
WINAPI 是另一个 ...