昨天金工实习,之后上课,所以未更。
今天金工实习累成傻子了,板子一边长一边短导致又重新锯了1个,他妈的右手都快报废了。
晚上跟同学聊AI大模型,原来我搞不明白Claude Code还是因为我太菜了。。。
好多事情要做,好多理论要学,好多项目要改,好多套磁要发,杀了我吧。。。
Q:AI+安全的应用
AI+安全,简单说就是用AI的感知和决策能力,去解决传统安全规则难以处理的大规模、高动态安全问题。传统的安全依赖人工写规则,但规则很难覆盖所有攻击变种。AI可以从数据里自己学出"什么是异常"。
主要有四个典型应用:
第一,恶意代码检测。 传统杀毒靠特征码,新病毒出来时有空窗期。AI把二进制文件当图像或序列来处理,用CNN或RNN直接学习恶意代码的特征,能检测未知病毒。
第二,入侵检测。 传统方法靠人工写规则,比如'一秒钟访问100次就封IP',但加密流量和未知攻击很难用规则覆盖。AI用无监督学习,只学正常流量的模式,一旦出现偏离就报警,能发现未知攻击。
第三,用户行为分析(UEBA)。 传统方法用固定阈值,比如'深夜登录就报警',误报很多。AI给每个用户建一个正常行为画像,序列模型学习他平时什么时间登录、访问什么资源,一旦出现异常行为就触发告警,主要用来发现内鬼和被盗账号。
第四,钓鱼邮件检测。 传统方法靠黑名单和关键词,攻击者换个说法就绕过了。AI用BERT这样的预训练模型理解邮件语义,不只看关键词,还能识别伪装手法。
总的来说,AI+安全的核心价值是:用学习能力去覆盖传统规则覆盖不了的长尾和动态攻击。
当然也有局限,比如AI模型本身可能被对抗样本攻击。所以在高安全等级的场景里,AI通常作为辅助,而不是完全替代规则。"
Q:k-means的步骤,改进算法,对同一数据集使用多次k-means得到的结果是一样的吗?
博主原话:我回答不一样,那个老师说我机器学习白学了。
一、K-Means 的步骤(面试必背)
K-Means 的目标是把数据分成 K 个簇,让同一个簇内的点尽量近,不同簇的点尽量远。
标准步骤(4步):
随机初始化:随机选择 K 个点作为初始的簇中心(质心)。
分配样本:对数据集中的每一个点,计算它到 K 个质心的距离,把它归到最近的那个质心所在的簇。
更新质心:对每个簇,计算簇内所有点的均值,把这个均值作为新的质心。
重复 2-3:直到质心不再变化,或达到最大迭代次数。
二、K-Means 的改进
- K-Means++(初始化的改进)
不是完全随机选初始质心,而是:第一个质心随机选;后续每个新质心,离已有质心越远的点,被选中的概率越大。这样能保证初始质心分散,结果更稳定。
- Mini-Batch K-Means(大数据的改进)
每次迭代不是用全量数据,而是随机抽一个小批次来更新质心。速度快很多,精度下降不大。
三、结果
结合AI给出的,答案应该这么写:不一定完全一致,通常大同小异。原因:K-Means 的结果取决于初始质心的选择。每次运行,随机初始化的质心不同,最终收敛到的结果可能不同。
两种情况:
| 情况 | 结果 | 原因 |
|---|---|---|
| 数据簇结构非常清晰 | 每次结果基本相同 | 不管从哪开始,都会收敛到同一个最优解 |
| 数据边界模糊 或有多个局部最优 | 每次结果可能不同 | K-Means 是贪心算法,容易陷入局部最优 |
面试时可以这样总结:
"K-Means 对初始质心敏感。如果数据本身的簇结构很明显,多次运行结果差别不大;但如果数据有重叠或噪声,不同初始值可能收敛到不同的局部最优解。
实际工程中,常见的做法是:多次运行 K-Means(比如 50 次),选轮廓系数最高或整体误差最小的那次结果。 这也是为什么 K-Means++ 有意义------它能让每次运行的起点更好,结果更稳定。"
Q:SVM怎么解决样本空间线性不可分(我说引入核函数,把样本特征引入到高维空间,应该是我表述不对,那个老师很严肃)
博主原话:我说引入核函数,把样本特征引入到高维空间,应该是我表述不对,那个老师很严肃
"SVM 本质上是一个线性分类器。当数据在原始空间线性不可分时,我们可以通过一个非线性映射,把样本映射到更高维的空间。在高维空间中,数据往往会变得线性可分。
但问题是,直接计算这个高维映射的开销非常大。所以我们引入了'核函数'这个技巧。
核函数能够直接在低维空间中,计算两个样本在高维空间里的内积结果,从而绕过显式计算高维映射。这被称为'核技巧'。
常见的核函数有:线性核、多项式核、高斯核(RBF核)。其中 RBF 核最常用,它理论上可以把数据映射到无穷维空间。"
Q:nano是怎么使用的,了解其他开发板吗?
Nano 通常指 Arduino Nano,是 Arduino 的迷你版,核心是 ATmega328P,16MHz、2KB 内存。使用上主要是通过 Arduino IDE 写代码,核心结构是 setup() 初始化 + loop() 死循环,写好之后通过 USB 上传烧录。
其他常见的开发板我了解的有:
-
ESP32:带 Wi-Fi 和蓝牙,适合物联网
-
树莓派:跑 Linux 系统,适合做边缘计算
-
Jetson Nano:带 GPU 支持 CUDA,适合边缘 AI 推理
它们的本质区别是:Arduino/ESP32 是单片机 ,裸机跑程序;树莓派/Jetson Nano 是微型电脑,跑操作系统。