机器学习的「反噬」:当 ML 用于密码破解,成功率竟然这么高!

如何用机器学习在15分钟内破解网站验证码系统? 我们今天以破解世界上最流行的WordPress验证码插件为例。 每个人都很讨厌验证码吧?这些烦人的小照片里有很多文本信息,只有输入它们后才能访问网站。人们设计验证码系统的初衷是为了验证访问网站的用户是一个真实的人。但随着深度学习和计算机视觉技术的进步,我们很容易就能打败这些验证码系统。(除非你遇到 12306 那种骚骚的图片识别验证,有时真的会陷入绝望) Adrian 没有访问网站生成验证码照片的工具的源代码,所以为了破解验证码,他必须下载几百个示例图像,然后手动用它们训练自己创建的机器学习系统。 但如 阅读详情

因此,一位好奇的学者 Tikeswar Naik,通过简单的实验和我们讨论了这项技术的某一潜在滥用情况——使用 ML 来破解密码,希望通过这一介绍能够让更多人保持警惕,并找到减轻或防止滥用的方法。我们将其具体研究内容编译如下。
640?wx_fmt=png


  敲键盘的,你已经暴露了!

在文章开头,作者提出了一个大胆的想法:我们能不能仅仅通过听键盘敲击就知道某人在输入什么?而如果这一操作真的可以实现,那它背后的潜在应用,例如:黑客密码破译,是否将是非常严重的安全隐患呢?(如图 1 所示)
640?wx_fmt=png
图 1:聆听击键(图片来源:rawpixel.com;eacs.com)
因此,作者参与了一个名为 kido(击键解码)的项目,来探索这是否可能实现(https://github.com/tikeswar/kido)。

  我们将这样做

作者提出可以将这个问题,作为一个监督的机器学习问题来处理,然后再逐一完成以下所有步骤:
  • 数据收集和准备
  • 训练与评估
  • 测试和误差分析(提高模型精度)
  • 结论;GitHub 链接
注:在这个项目中用到了 Python、Keras 和 TensorFlow。

1. 数据收集
有很多方法可以收集得到敲击键盘的音频数据,在这个实验中,作者为了更好的证明机器学习破译密码在日常生活中的可行性,使用了日常使用的键盘进行打字,并通过内置麦克风 QuickTime Player 录制了打字的音频(图 2)。
640?wx_fmt=png
图 2:使用笔记本键盘制作训练数据
这种方法有两个优点:一是数据的可变性较小;而正因数据可变性小,它将有助于我们集中注意力去证明(或反证)这个想法,而无须考虑更多变量。

2. 数据准备
明确了数据来源后,下一步是准备数据,这样我们就可以把它输入神经网络(NN)进行训练。
QuickTime 将录制的音频保存为 MP4。首先我们需要将 mp4 转换为 wav,因为有很好的 Python 库可以处理 wav 文件。图 3 右上角子图中的每个峰值对应于一个击键)。
640?wx_fmt=png
图 3:将 mp4 转换为 wav,然后拆分
然后我们使用静音检测将音频分割成单独的块,这样每个块只包含一个字母。这之后,我们就可以将这些单独的块输入到神经网络中。
但作者想到了一个更好的方法,他选择将单个色块转换成频谱图(图 4)。现在,我们有了使用卷积神经网络(CNN),则可以提供更多信息且更易于使用的图像。
640?wx_fmt=png
图 4:将单个块转换为频谱图
为了训练网络,作者收集了上面描述的 16000 个样本,确保每个字母至少有 600 个样本(图 5)。
640?wx_fmt=png
图 5:数据样本
然后将数据重新整理,并分成训练集和验证集。每个字母有大约 500 个训练样本以及 100 个验证样本(图 6)。
640?wx_fmt=png
图 6:训练-验证拆分
简而言之,这就是我们遇到的最大似然比问题,见图 7。
640?wx_fmt=png
图 7:机器学习问题表示

3. 训练和验证
作者使用了一个相当小的简单网络架构(基于 Laurence Moroney 的剪刀石头布示例,https://www.coursera.org/learn/convolutional-neural-networks-tensorflow/),参见图 8。
其中,输入图像被缩放到 150 x 150 像素,并且它有 3 个颜色通道。然后它经过一系列的卷积+合并层,变平(用于防止过度拟合的丢失),被馈送到完全连接的层,最后是输出层。输出层有 26 个类,对应于每个字母。
640?wx_fmt=png
图 8:网络架构
在 TensorFlow 中,模型如下所示:
model = tf.keras.models.Sequential([	
# 1st convolution	
tf.keras.layers.Conv2D(64, (3,3), activation='relu', input_shape=(150, 150, 3)),	
tf.keras.layers.MaxPooling2D(2, 2),	

	
# 2nd convolution	
tf.keras.layers.Conv2D(64, (3,3), activation='relu'),	
tf.keras.layers.MaxPooling2D(2,2),	

	
# 3rd convolution	
tf.keras.layers.Conv2D(128, (3,3), activation='relu'),	
tf.keras.layers.MaxPooling2D(2,2),	

	
# 4th convolution	
tf.keras.layers.Conv2D(128, (3,3), activation='relu'),	
tf.keras.layers.MaxPooling2D(2,2),	

	
# Flatten the results to feed into a DNN	
tf.keras.layers.Flatten(),	
tf.keras.layers.Dropout(0.5),	

	
# FC layer	
tf.keras.layers.Dense(512, activation='relu'),	

	
# Output layer	
tf.keras.layers.Dense(26, activation='softmax')	
])

以及模型摘要:
___________________________________________________________	
Layer (type) Output Shape Param # 	
====================================	
conv2d_4 (Conv2D) (None, 148, 148, 64) 1792 	
___________________________________________________________	
max_pooling2d_4 (MaxPooling2 (None, 74, 74, 64) 0 	
___________________________________________________________	
conv2d_5 (Conv2D) (None, 72, 72, 64) 36928	
___________________________________________________________	
max_pooling2d_5 (MaxPooling2 (None, 36, 36, 64) 0 	
___________________________________________________________	
conv2d_6 (Conv2D) (None, 34, 34, 128) 73856 	
___________________________________________________________	
max_pooling2d_6 (MaxPooling2 (None, 17, 17, 128) 0 	
___________________________________________________________	
conv2d_7 (Conv2D) (None, 15, 15, 128) 147584 	
___________________________________________________________	
max_pooling2d_7 (MaxPooling2 (None, 7, 7, 128) 0 	
___________________________________________________________	
flatten_1 (Flatten) (None, 6272) 0 	
___________________________________________________________	
dropout_1 (Dropout) (None, 6272) 0 	
___________________________________________________________	
dense_2 (Dense) (None, 512) 3211776 	
___________________________________________________________	
dense_3 (Dense) (None, 26) 13338 	
====================================	
Total params: 3,485,274	
Trainable params: 3,485,274	
Non-trainable params: 0
训练结果如图 9 所示。在大约 13 个 epochs 内,它收敛到 80% 的验证精度和 90% 的训练精度。考虑到问题的复杂性和所使用的简单网络架构,所得较高的准确性确实也令人感到惊讶。
640?wx_fmt=png
图 9:训练和验证准确性
目前的结果看起来很有希望,但这只是字符级的准确性,而不是单词级的准确性。如要猜测密码,我们必须正确预测每个字符,而不仅仅是大多数字符!参见图 10。
640?wx_fmt=png
图 10:猜测密码需预测每个字符

4. 测试
为了测试这个模型,作者从 rockyou.txt 列表中数字化了另外 200 个不同的密码,然后尝试使用我们刚刚训练的模型预测单词(图 11)。
640?wx_fmt=png
图 11:测试模型
图 12 显示了测试精度;其中,条形图显示了字符级精度(左边的图表显示正确和错误的数目,右边的图表显示相同的百分比)。
可以看到,字符级的测试准确率为 49%,而单词级的测试准确率为 1.5%(即神经网络在 200 个测试词中能完全预测正确 3 个单词)。
640?wx_fmt=png
图 12:测试精度
不过鉴于任务的复杂性,1.5% 字级精度也不算差,不过作者也思考了提高精度的一些方法。

  怎样提高预测精度呢?

首先,作者对测试结果中个别的误差进行了分析。图 13 显示了一些示例测试结果,其中:
  • 第一列包含实际的测试单词;
  • 第二列包含相应的预测单词,其中各个字符用颜色编码以显示正确(绿色)和错误(红色)预测;
  • 第三列只显示正确预测的字符,错误预测的字符替换为下划线(以便于可视化)。
640?wx_fmt=png
图 13:数据测试结果
对于「aaron」这个单词,所使用的模型只得到了一个正确字符;对于「canada」一词,预测结果有大多数字符是正确的;而对于「lokita」,它的所有字符预测均是正确的。正如图 12 所示,词级准确率仅为 1.5%。
但反观测试示例(图 14),特别是「canada」,我们意识到它可以正确处理大多数字符,并且非常接近实际单词。那么,如果我们把 CNN 的结果通过拼写检查呢?
640?wx_fmt=png
图 14:测试结果展示
这正是作者所做的(图 15),使用了拼写检查器之后,它确实将精确度从 1.5% 提高到了 8%。这也意味着,通过一个相当简单的模型架构+拼写检查器,我们可以正确预测 100 个密码中的 8 个!
640?wx_fmt=png
图 15:使用拼写检查器后,精确度提高
作者提出进一步假设,如果采用序列模型(RNN?Transformer?),而不是一个简单的拼写检查器,是否我们可以得到单词检测层面更高的准确性呢?
但通过仔细查看测试结果(图 16),可以注意到「a」被预测为「s」,「n」被预测为「b」,等等。
640?wx_fmt=png
图 16:测试示例细节放大
这不禁让人想到我们在键盘上的映射误差,而且大部分映射误差(参见图 17)都与邻近度相关。
640?wx_fmt=png
图 17:在键盘上映射误差
接下来,作者量化了这种相关性与邻近性的误差。图 18 显示了麦克风与键盘之间按一定比例绘制的按键位置。
640?wx_fmt=png
图 18:麦克风和按键位置按比例绘制的键盘
图 19 显示了一些示例字母在数字化键盘上的错误类比图。图中,左上角的图显示「a」被错误地预测为「z」、「x」、「y」、「k」、「s」、「w」或「q」。其他子图的解释类似。
640?wx_fmt=png
图 19:样本字母的误差图
从图 19 中,我们可以清晰看到,该预测误差与临近度相关。然而,我们能否得到一个更为量化的衡量标准呢?
为了得到这一量化标准,作者将 d_ref 设为参考字母与 mic 的距离,d_predicted 为预测字母与 mic 的距离,d 为 d_ref 与 d_predicted 之差的绝对值(见图 20)。
640?wx_fmt=png
图 20:一些参量定义
图 21 为所得误差直方图。我们可以看到一个非常明显的趋势,即大多数误差来自临近处。这也意味着我们可以通过更多的数据、更大的网络或能够更好地捕获这些数据的网络架构来提高模型的准确性。
640?wx_fmt=png
图 21:误差相关的直方图
但是麦克风的位置是否也是误差的来源之一呢?误差与按键离麦克风的距离有关吗?
为了研究这一点,作者也绘制了关于图 12 中的误差图,使得 X 轴上的字母与 MIC 的距离增加(参见图 22)。
640?wx_fmt=png
图 22:麦克风位置与误差之间关系的直方图
从图中,我们可以发现误差与按键离麦克风的位置之间并没有很强的相关性,这也可以证明误差与麦克风位置基本是无关的。
不过通过图 22 展示的结果,作者也发现一个非常重要信息,即一个人可以把麦克风放在任何地方监听击键,然后进行黑客攻击。这一发现确实令人毛骨悚然!

  模型存在的一些小 BUG

在这项研究中,作者因为只是想验证是否能仅通过听键盘敲击声音,从而进行黑客攻击的想法,因此在具体实验中做了很多简化。
下面是作者提出的一些关于改进模型以处理更复杂和真实的场景的建议:
  • 正常的打字速度→具有挑战性的信号处理(隔离单个击键)。因为在这项研究中,作者使用了较慢的速度敲写数据内容。
  • 任何按键→具有挑战性的信号处理(大小写?Shift 功能键?…)。因为在这项研究中,作者只使用了小写字母(不包括大写字母、数字、特殊字符、特殊击键等)。
  • 背景噪声→添加噪声。因为在本研究的记录数据时,只有一些车辆经过时会出现部分简单和轻微的背景噪声,但没有复杂的背景噪声(例如:餐厅背景噪声等)。
  • 不同的键盘和麦克风设置+不同的人打字→更多的数据+数据增强+更大的网络+不同的网络架构可能有助于改进模型。
最后,作者还提出「我们是否能采用其他振动信号代替音频信号」一有趣的想法。
640?wx_fmt=png
图 23:其它振动信号


  最终我们得到这样的结论

考虑到这项研究的简化,作者得出了这样两个结论:
  • 通过击键声音破解敲写内容是有可能实现的;
  • 通过少量的数据和简单的 CNN 架构+拼写检查,我们可以获得不错的单词级准确率(本研究中为 8%);
误差来源:
  • 简单的拼写检查可以提高单词级别的准确性(在本例中从 1.5% 提高到 8%);
  • 误差与其他键的接近相关;
  • 误差似乎与麦克风位置无关。
640?wx_fmt=png
原文链接:
https://towardsdatascience.com/clear-and-creepy-danger-of-machine-learning-hacking-passwords-a01a7d6076d5 
GitHub 链接:
https://github.com/tikeswar/kido 
一种基于递归神经网络的密码猜测模型 立即下载

相关推荐

隐私保护机器学习的密码学方法.pdf

本文介绍隐私保护机器学习中常用的密码学工具,主要有通用安全多方计算(SMPC)、隐私保护集合运算、同态加密(HE)等多种工具,同时介绍了如何使用这些工具来解决机器学习中数据整理、模型训练、模型测试、预测等多个阶段中存在的隐私保护问题的研究方法。

【机器学习】解锁AI密码:神经网络算法详解与前沿探索

神经网络作为机器学习的重要分支,在人工智能领域具有广泛的应用前景。随着计算能力的提升和算法的优化,神经网络的性能将不断提升,应用领域也将不断扩展。未来,神经网络将在更多领域发挥重要作用,推动人工智能技术的持续发展。

2402_84445716的博客 1291

SMPTE ST 2110 概论(一)

SMPTE ST 2110 概论(一)前言ST 2110与ST 2022-6ST 2110-10:基本结构与时序ST 2110-20:未压缩的视频流后续 前言 这是一份我在实习期间制作的,关于SMPTE ST 2110的简单介绍。 这篇文章主要以梳理总结 SMPTE ST 2110 的概念为主,关于具体的内容,比如IP数据报的格式、RTP时间戳的具体代码内容等等,大家可以查阅 SMPTE ST 2...

Cidd0422的博客 2万+

密码学与人工智能:加密算法在机器学习中的应用

1.背景介绍 密码学和人工智能这两个领域在过去的几年里都取得了显著的进展。密码学在保护数据和通信安全方面发挥着重要作用,而人工智能则在各个领域取得了突破性的进展,如计算机视觉、自然语言处理、机器学习等。然而,这两个领域之间的相互作用并不是一直存在的,直到最近才开始受到关注。本文将探讨密码学和机器学习之间的联系,并讨论如何将密码学算法应用于机器学习中。 2.核心概念与联系 密码学是一门研究加密...

AI天才研究院 2803

Python实战:5分钟搞定N-CMAPSS航空发动机数据集解析(附完整代码)

本文提供了一份针对N-CMAPSS航空发动机数据集的快速解析实战指南。通过Python的h5py库,详细演示了如何读取HDF5文件结构、理解数据分类(如传感器、健康参数、场景描述符)并加载为Pandas DataFrame。文章还澄清了数据集中常见的变量数量疑惑,并给出了从数据加载到构建剩余使用寿命预测模型预处理流水线的完整代码,帮助工程师和研究人员高效入门航空发动机预测性维护分析。

weixin_29057065的博客 422

Java 开发打飞机小游戏(附完整源码)

上图 写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习。java确实不适合写桌面应用,这里只是通过这个游戏让大家理解oop面向对象编程的过程,纯属娱乐。代码写的很简单,也很容易理解,并且注释写的很清楚了,还有问题,自己私下去补课学习。 完整代码 敌飞机 import java.util.Random; 敌飞机: 是飞行物,也是敌人 public class Airplane extends FlyingObject implements Enemy {

一只独孤的程序猿 1万+

被信息爆炸反噬了,自食恶果

我前两年回答的一个问题,最近频频收到点赞的消息提醒。然后,我又思考了一下,我感觉信息价值危机随着生成式 AI 的诞生,可能会越来越严重。什么问题呢?有人提问:现在中文互联网能搜索到的有价值信息越来越少,究竟是搜索引擎的问题还是近年来中文互联网创作越来越匮乏?题主说:感觉至少在 2000 年左右,中文互联网上有大量有价值的创作信息。各种论坛活跃,很多有用的干货。而最近三四年来,感觉中文互联网上有价值...

非著名程序员 289

工业缺陷检测深度学习方法综述

异常:点异常、 上下文异常和集群异常。点异常:又称为离群值 (outliers)[9], 描述数值上偏离正 常样本的独立数据。与异常相近的概念还包括新颖点(novelty)和分布外数据。上下文异常:同样描述数据点,其数值属于正常范围,但不符合局部上下文规律。集群异常:描述一系列相关数据的集合,集合中的每一个实例的数值在单独考察时都处于正常值域,但集 合整体的相关性特征不服从正常模式。一般的图像异常检测往往仅需区分正常与异常样本,而工业缺陷检测更关注于检测 图像中的异常像素.

2301_80355452的博客 1842

关于机器学习在密码学中的应用

机器学习又称统计学习,是一种在数据中寻找相关性的一类算法,它最基本的假设输入输出是有关系的。 通常而言,加密算法接收明文与特定的密钥,输出密文。一个好的加密算法明文密文之间的相关性很弱,近乎随机的。(如果不然,则该加密算法是不健壮的)。 两类算法,一种寻找内在的相关性,一种尽量使相关性降到最低。对于一个已经经过实践检验的加密算法(如 RAS),要在未知加密密钥或者解密密钥的情况下利用机器学习寻找

帆随风而动 7426

华为OD机试真题目录汇总(Java语言)2024 B+C+D+E卷 (560道)

本文是2023华为OD机试真题(Java 语言) B卷专栏的目录贴(定期更新2023华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用Java语言进行更新解答,包含真题,思路分析,代码参考,每个题目的思路分析都非常详细,超过百字欢迎大家订阅学习,代码可以直接运行使用,全网限时最低价,持续更新)华为OD是Outsourcing Dispacth模式,是华为和外企德科联合招聘的简称。目前华为大多数是OD招聘。OD模式也是华为提出的一种新的用工形式,每年都会从OD项目挑优秀员工转为正编。

KJ.JK 8万+

innovus:Patch Wire(补丁线)

1)选中wire ,shift+A使用Edit Route功能,F3打开edit route对话框。线道Create Patch Wire,设置好层次和宽度。在修补一些min area的drc时,会有一些danling wire的drc冒出来,为了避免这些假错,可以使用工具patch wire功能。2)沿着选中的wire画线即可。如下图,patch wire和regular wire是能看出区别的。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1963

破解密码需要多长时间

(给机器学习算法与Python学习加星标,提升AI技能)@程序员最幽默推荐阅读 【大神进阶】Python技巧小贴士 6 款 超好用的 Python 时间库 由浅入深:Python 自...

机器学习算法与Python学习 2351

Asterisk中MixMonitor之支持接通后录音

一、概述 当我们使用开源的IPPBX(比如Elastix-2.5/4.0或者ISSABEL-4.0/FreePBX)的时候Outbound和Inbound路由(RingGroup/FollowMe)中有一个Call Recording选项,其值包括:Allow、Record immediately、Record On Answer和Nerver。当选择为Record On Answer,其实就是MixMonitor自带一个b选项。 尽管Asterisk自带的MixMoni...

宽简厚重—博约 1156

AI赋能勒索攻击:技术原理、防御体系与安全伦理深度解析

网络安全的核心在于攻防对抗,而人工智能(AI)技术正深刻改变这一格局。从技术原理上看,AI通过机器学习、自然语言处理等技术,能够自动化执行漏洞扫描、恶意代码生成和社交工程攻击,显著提升了攻击的效率和隐蔽性。其技术价值在于将传统需要高度专业知识的攻击过程简化和规模化,降低了攻击门槛。在应用场景中,AI驱动的勒索软件攻击链已覆盖从智能侦察、自动化漏洞利用到自适应加密的完整环节,对企业和关键基础设施构成严重威胁。本文结合近期安全工程师利用AI实施勒索攻击的案例,深入剖析了AI如何成为攻击的“倍增器”,并探讨了零信

weixin_34241036的博客 1457

KEPServerEX 6 之 lot Gateway MQTT Clinet 配置使用方式

IoT Gateway即Internet of Things Gateway物联网网关。 ---------------------------------------------------------------------------------- 方式:使用kepw的IOTGateway插件选择MQTTClient 解决:可以实现 KEPW 的Tag值 发送到 MQTT 服务器上 ----------------------------------------...

-雲飛兄-博客 6941

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

简单密码破译

题目描述 密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。   假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆,他通过一种算法把这个密码变换成YUANzhi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可以明目张胆地放在显眼的地方而不被别人知道真正的密码。   他是这...

boguesfei的博客 704

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【论文笔记】GENPass:使用RCFG+LSTM和对抗生成网络猜解密码。

密码已成为当今社交网络中主要的身份验证方法。尽管诸如HashCat和John Ripper之类的强力攻击方法不切实际,但随后的研究转向了密码猜测。最先进的方法,例如马尔可夫模型和概率上下文无关文法(PCFG),都基于统计概率。这些方法的匹配率低。事实证明,与传统方法相比,神经网络方法在密码猜测方面更为准确和实用。但是,原始神经网络模型不适合进行跨站点攻击,因为每个数据集都有其自身的功能。本文提出了一种用于密码猜测的通用深度学习模型,称为GENPass。 GENPass可以从多个数据集中学习特征,并通过对抗生

M2kar的专栏 2130

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

AutoML相关论文

本文为Awesome-AutoML-Papers的译文。 1、AutoML简介 Machine Learning几年来取得的不少可观的成绩,越来越多的学科都依赖于它。然而,这些成果都很大程度上取决于人类机器学习专家来完成如下工作: 数据预处理 Preprocess the data 选择合适的特征 Select appropriate features 选择合适的模型族 Select ...

aiwanghuan5017的博客 571

tensorflow(神经网络)学习笔记(七)自动机器学习(AutoML)介绍(学习笔记)

神经网络结构搜索算法之一 网络结构 降低神经网络结构参数 如下图,彩色框框为生成单个神经的参数,使用循环神经网络去生成卷积神经网络 左边RNN可以生成LSTM的序列表达,然后把序列解析成网络表达结构,得到网络结构的表达,然后计算得到accuracy,然后反馈给RNN,然后再重新生成LSTM的序列表达。 ex:单层网络结构参数 卷积的高、宽、步长的高和宽,最后一个是chann...

DETACH-MENT的博客 2914

奖金711万!这位“山东宝妈”破解美国运算100万年才可能解开的密码!

本文整理自『山东统一战线』『北洋之家』上周末,一个振奋人心的消息传来,我国世界级科学大奖,有“中国版诺贝尔奖”之称的,第四届“未来科学大奖”,公布获奖名单。其中,清华大学...

机器学习算法与Python学习 5575

密码学&机器学习~Paper sharing

(1)分享在CSS2021上看的比较相关的paper Cert-RNN: Towards Certifying the Robustness of Recurrent Neural Networks (CSS2021), 认证方向,应用在两种RNNs模型(RNN, LSTM)上。本能感觉认证可以和攻击防御结合,当然本文也是这样做的。 Locally Private Graph Neural Networks (CSS2021), 基于差分隐私的图网络隐私保护计算,和我做的隐私保护计算方向契合,但是我不做差

qq_33509110的博客 4580

Android 8.1 开发者预览版 —— 为 ML 机器学习做好准备的 Oreo 升级版

今天我们来抢先预览一下 Oreo 的升级版本 —— Android 8.1。这次升级涵盖了针对多个功能的提升优化,其中包含对 Android Go (设备运行内存小于等于 1 GB)和加速设备上对机器学习的全新神经网络 API(Neural Networks API)。我们也基于 Oreo 用户与开发者的反馈做出了对应的局部优化。 现在我们推出开发者预览版,确保您的 App 已经做好

谷歌开发者 3460

扔掉代码表!用RNN“破解”摩斯电码

作者 | Sandeep Bhupatiraju译者 | Liu Zhiyong编辑 | Debra ChenAI 前线导读:100 多年前,在美国,人们利用 Morse 电码发出了人类历史上的第一份电报,从此人类又揭开一页崭新的篇章。Morse 电码的问世,对人类社会发生全面而深远的影响,极而言之甚至改变了人类历史的发展方向。只不过随着当代信息的爆炸式发展,多种通信方式渐渐将方式单一的电报挤到了...

weixin_34072857的博客 566

python机器学习密码之初来乍到

机器学习近来火得可谓人尽皆知。其实楼主现在的研究方向是椭圆曲线密码的硬件实现。so,我一直以为这跟Python,神经网络啥的确是八竿子打不着,然而,这个世界上就是不缺那种能开先河能摆证据撂服众生的大神。举个栗子这篇文章learing the enigma with recurrent Neural Networks。是 2017年发表于AAAI 的一篇文章,AAAI 2017是指第31届人工智能大...

weixin_34279579的博客 323

架构设计文档的七个可验证核心构件

架构设计文档本质上是系统认知的实时映射,而非静态说明书。其核心价值在于可验证性——每个描述都应能对应到代码、配置、API或监控指标。在微服务与云原生实践中,传统UML式文档因脱离工程节奏而失效,取而代之的是模块化、版本化、CI可检的活体构件。本文围绕系统边界图、数据流图、关键决策日志等七个核心构件展开,强调用Mermaid文本图替代图片、用OpenAPI契约驱动测试、用压测基线定义部署参数,真正实现‘文档即代码’。适用于架构师补全落地盲区、开发者快速理解依赖、SRE精准定位瓶颈,是构建高可信度技术共识的关键

weixin_34396103的博客 734
上一篇: GitHub年度报告:Python首次击败Java,中国成第二大开源贡献国
下一篇: 300 页干货!李宏毅《一天搞懂深度学习》(附下载)
Wang_AI
博客等级 码龄12年 989粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值