梯度下降

中国AI技术领先,是因为数学好?美国杂志直指中美数学教育差距

笑着哭i 提交于 2020-08-06 11:53:32
机器之心报道 参与:蛋酱、泽南 美国 CS 专业超过 64% 博士生和近 70% 的硕士生是留学生,数学博士学位有一半授予了非美国公民,中国和印度学生占大部分。 上个星期,一位华人留学生题为「亚洲人数学能力其实很差?」的视频登上了热搜。 「知其然而不知所以然,他们仅仅擅长使用而不追求真理。」这名女生认为大多数亚洲人学习数学时注重运用却不关心原理推导,论据有一定的道理,不过结论引发了不少人的吐槽。 很快,博主「他们都叫我雪姨」新发布了一个视频向大家道歉,表示个人经历不能指代群体,有关亚洲人数学很差的言论十分不正确。在应试教育为主,升学压力很大的国内,如果说学生们花费如此大的精力却不能把一门学科学明白,确实非常可怕,数学是当代高等教育最重要的基础是有目共睹的。 7 月份,2020阿里巴巴全球数学竞赛结束,活动创办者马云如此评价数学的重要性。 有趣的是,在数学水平太差这件事上,大洋彼岸的美国人和我们有着同样的担忧。在亚洲人数学很差的视频在国内流行的同时,美国《国家利益杂志》刊载了一篇文章给出了完全相反的观点:因为中国人数学好,在人工智能领域里中国正在逐渐成为决定性力量。 这篇报道在开篇即提到:「忘记人工智能本身吧,它只是一个数学问题。美国没有培养出足够擅长数学的公民,因此无法保持统治地位。」 以下为美国《国家利益杂志》报道的主要内容: 海外第一次注意到中国人工智能技术的非凡能力可能是在

矩阵补全(Matrix Completion)和缺失值预处理

好久不见. 提交于 2020-08-06 09:46:20
目录 1 常用的缺失值预处理方式 1.1 不处理 1.2 剔除 1.3 填充 1.3.1 简单填充 1.3.2 建模填充 2 利用矩阵分解补全缺失值 3 矩阵分解补全缺失值代码实现 4 通过矩阵分解补全矩阵的一些小问题 References 矩阵补全(Matrix Completion),就是补上一个含缺失值矩阵的缺失部分。 矩阵补全可以通过矩阵分解(matrix factorization)将一个含缺失值的矩阵 X 分解为两个(或多个)矩阵,然后这些分解后的矩阵相乘就可以得到原矩阵的近似 X',我们用这个近似矩阵 X' 的值来填补原矩阵 X 的缺失部分。 矩阵补全有很多方面的应用,如推荐系统、缺失值预处理。 除了 EM 算法、树模型,机器学习中的大多数算法都需要输入的数据是不含缺失值的。在 deep learning 模型中,通过梯度的计算公式就可以发现,如果 feature 中含有缺失值,那么梯度也会含缺失值,梯度也就未知了。对缺失值的处理是在模型训练开始前就应该完成的,故也称为预处理。 数据缺失在实际场景中不可避免,对于一个包含 \(n\) 个 samples,每个 sample 有 \(m\) 个 features 的数据集 \(D\) ,我们可以将该数据集 \(D\) 整理为一个 \(n×m\) 的矩阵 \(X\) 。 通过矩阵分解补全矩阵是一种处理缺失值的方式

YOLOv5代码详解(test.py部分)

随声附和 提交于 2020-08-06 07:55:20
目录 2. test.py 2.1 设置超参数 2.2 设置任务(验证,测试,学习) 2.3 测试函数 2.3.1 初始化模型 2.3.2 判断设备类型并仅使用一张GPU进行测试 2.3.3 获取配置文件路径和文件参数 2.3.4 数据获取 2.3.5 计算map数据 2.3.6 打印结果(图片,速度),保存结果至json,并返回结果 2. test.py 该部分主要用于运行train.py时,计算每个epoch的mAP。 PS,与train.py相似的部分就不再阐述。 2.1 设置超参数 权重,数据,batch size,图像尺寸,使用哪张显卡,数据增强,计算mAP。if __name__ == '__main__': parser = argparse.ArgumentParser(prog='test.py') parser.add_argument('--weights', type=str, default='weights/best.pt', help='model.pt path') parser.add_argument('--data', type=str, default='data/coco.yaml', help='*.data path') parser.add_argument('--batch-size', type=int, default=16,

模型攻击:鲁棒性联邦学习研究的最新进展

╄→尐↘猪︶ㄣ 提交于 2020-08-05 22:01:59
  机器之心分析师网络    作者:仵冀颖    编辑:H4O       随着联邦学习的推广应用,越来越多的研究人员聚焦于解决联邦学习框架中的模型攻击问题。我们从近两年公开的研究成果中选取了四篇文章进行详细分析,重点关注模型攻击类的鲁棒联邦学习(Robust Federated Learning)。   现代机器学习算法在实际应用场景中可能会受到各种对抗性攻击,包括数据和模型更新过程中中毒( Data and Model Update Poisoning)、模型规避(Model Evasion)、模型窃取(Model Stealing)和对用户的私人训练数据的数据推理性攻击(Data Inference Attacks)等等。在联邦学习的应用场景中,训练数据集被分散在多个客户端设备(如桌面、手机、IoT 设备)之间,这些设备可能属于不同的用户 / 组织。这些用户 / 组织虽然不想分享他们的本地训练数据集,但希望共同学习得到一个全局最优的机器学习模型。由于联邦学习框架的这种分布式性质,在使用安全聚合协议(Secure Aggregation)的情况下,针对机器学习算法的故障和攻击的检测纠正更加困难。   在联邦学习应用中根据攻击目标的不同,可以将对抗性攻击大致分为两类,即非定向攻击(Untargeted Attacks)和定向攻击(Targeted Attacks)

AlphaLife: 像AI一样思考人生

…衆ロ難τιáo~ 提交于 2020-08-05 15:23:46
前言 很早以前就想过这个问题: AlphaGo,AlphaStar这么强,我们人是否能反过来向它们学习一下? 然后我就想了很多,总结出看起来还挺不错的一些人生准则。今天先抛砖引玉弹两个准则,如果大家感兴趣,我可以多写一些。 特别注明:每个人都不一样,下文仅供参考。 准则 1:给自己设定一个明确的远大的又喜欢的人生目标 我们知道深度强化学习最基本的概念就是有一个Reward来引导智能体学习,到达某一个目标。比如AlphaGo就是下围棋要赢,AlphaStar就是打星际要赢,那么AlphaLife就是人生要赢 人生会复杂很多,每个人都会有不同的目标。所以,给自己设定一个明确的目标是必须的。 古人云:志当存高远! 易经说要知崇礼卑: 桥水基金Ray Dalio的原则:设定Audacious Goals 大胆的目标 乔布斯说:我们要做我们所爱的事,找不到就一直找下去! 这条准则基本上是正确的,从古到今,成大事的人都先要立大志,并且这个大志最好就是我们喜欢的事情。 虽然这条准则简直是一条废话,但是现实世界中确实并不是每个人都有明确的人生目标。毕竟大部分人都是普通人,生活尚且不易,谈何理想? 但这里,我们想说的是,即使生活足够艰难,目标还是要有的。因为没有目标,也就不可能有未来了。 这里我很乐意分享我的人生目标: 推动虚拟世界和机器人的革命,使人类获得前所未有的精神自由和生存自由

神经网络剪枝,知识蒸馏,以及模型优化设计

痞子三分冷 提交于 2020-08-05 13:06:20
一.神经网络压缩 在如今人工智能的浪潮之下,深度学习在不少领域都取得了不错的成果。但是目前在边缘计算,物联网设备上的算力相比于我们的台式计算机还不太充足,我们在计算机上用于拟合的神经网络参数过多,不太适合运行在算力较弱的设备上,比如无人机,手机,平板电脑,自动驾驶汽车等等。因此我们需要将在计算机上训练好的神经网络通过某种技巧将其进行压缩,减少模型的参数,这样训练好的模型就可以迅速在这些边缘计算的设备上部署,同时达到和计算机上训练模型几乎一致的效果。比如我们常用的图像分类的模型VGG,通过改良后的MobileNet,计算量减少了10倍,输出的准确度结果甚至超越了AlexNet,准确率比Google InceptionNet也只少了0.7个百分点。那么我们有什么方法进行神经网络的压缩呢?目前比较常用的则是神经网络的剪枝,知识蒸馏,以及模型优化设计者三个方法。 二.神经网络剪枝 其实我们拟合的神经网络,很多网络的参数都过于多了,有些神经元在对结果进行的预测的时候并没有什么用,甚至是具有负面的作用。因此我们需要将其“ 拆除 ”。 拆除网络当中某些参数的方法如下: 1.剪掉权重weight约等于0的weight,让两个神经元之间失去连接 2.查看某个神经元经过activation之后的输出是否接近于零,如果接近于零,则剪掉这个神经元 3.在修剪完整个网络之后,识别的准确度肯定会下降

模型攻击:鲁棒性联邦学习研究的最新进展

微笑、不失礼 提交于 2020-08-05 11:03:47
随着联邦学习的推广应用,越来越多的研究人员聚焦于解决联邦学习框架中的模型攻击问题。我们从近两年公开的研究成果中选取了四篇文章进行详细分析,重点关注模型攻击类的鲁棒联邦学习(Robust Federated Learning)。 机器之心分析师网络,作者:仵冀颖,编辑:H4O。 现代机器学习算法在实际应用场景中可能会受到各种对抗性攻击,包括数据和模型更新过程中中毒( Data and Model Update Poisoning)、模型规避(Model Evasion)、模型窃取(Model Stealing)和对用户的私人训练数据的数据推理性攻击(Data Inference Attacks)等等。在联邦学习的应用场景中,训练数据集被分散在多个客户端设备(如桌面、手机、IoT 设备)之间,这些设备可能属于不同的用户 / 组织。这些用户 / 组织虽然不想分享他们的本地训练数据集,但希望共同学习得到一个全局最优的机器学习模型。由于联邦学习框架的这种分布式性质,在使用安全聚合协议(Secure Aggregation)的情况下,针对机器学习算法的故障和攻击的检测纠正更加困难。 在联邦学习应用中根据攻击目标的不同,可以将对抗性攻击大致分为两类,即非定向攻击(Untargeted Attacks)和定向攻击(Targeted Attacks)。非定向攻击的目标是破坏模型

深度神经网络(DNN)的正则化

好久不见. 提交于 2020-08-05 07:52:17
    和普通的机器学习算法一样,DNN也会遇到过拟合的问题,需要考虑泛化,这里我们就对DNN的正则化方法做一个总结。 1. DNN的L1&L2正则化     想到正则化,我们首先想到的就是L1正则化和L2正则化。L1正则化和L2正则化原理类似,这里重点讲述DNN的L2正则化。     而DNN的L2正则化通常的做法是只针对与线性系数矩阵$W$,而不针对偏倚系数$b$。利用我们之前的机器学习的知识,我们很容易可以写出DNN的L2正则化的损失函数。     假如我们的每个样本的损失函数是均方差损失函数,则所有的m个样本的损失函数为:$$J(W,b) = \frac{1}{2m}\sum\limits_{i=1}^{m}||a^L-y||_2^2$$     则加上了L2正则化后的损失函数是:$$J(W,b) = \frac{1}{2m}\sum\limits_{i=1}^{m}||a^L-y||_2^2 + \frac{\lambda}{2m}\sum\limits_{l=2}^L||w||_2^2$$     其中,$\lambda$即我们的正则化超参数,实际使用时需要调参。而$w$为所有权重矩阵$W$的所有列向量。     如果使用上式的损失函数,进行反向传播算法时,流程和没有正则化的反向传播算法完全一样,区别仅仅在于进行梯度下降法时,$W$的更新公式。     回想我们在

深度学习——优化算法细谈(梯度下降/随机梯度下降/小批量梯度下降/动量法/Adagrad/RMSprop/Adadealt/Adam)及时实现

笑着哭i 提交于 2020-08-05 01:18:23
优化算法集锦 梯度下降法 原理 可视化过程 系统实现 随机梯度下降法 原理 可视化过程 系统实现 小批量梯度下降法 原理 可视化过程 系统实现 动量法 提出原因 原理 指数加权平均 动量法原理 可视化过程 系统实现 AdaGrad 法 提出原因 原理 可视化过程 系统实现 RMSprop法 提出原因 原理 可视化过程 系统实现 Adadealt 法 提出原因 原理 可视化过程 系统实现 Adam 法 提出原因 原理 可视化过程 系统实现 小结 本文是对于深度学习中优化算法的解释与实现 首先需要明确:优化算法是为了尽可能低降低训练误差(Loss function)而不是泛化误差。 梯度下降法 原理 梯度下降法是深度学习值最常使用到的优化算法,也是后续算法的基石。下面以多维梯度下降法为例简述其原理: 假设对于损失函数 f ( x ) f(x) f ( x ) ,其输入 x = [ x 1 , x 2 , x 3 , . . . . . . , x n ] T x=[x_{1},x_{2},x_{3},......,x_{n} ]^{T} x = [ x 1 ​ , x 2 ​ , x 3 ​ , . . . . . . , x n ​ ] T 是一个n维向量,其输入为标量(即一个实数)。 则损失函数的梯度可表示为: ▽ f ( x ) = [ ∂ f ( x ) ∂ x 1 , ∂ f

机器学习之SVM(Hinge Loss+Kernel Trick)原理推导与解析

落爺英雄遲暮 提交于 2020-08-04 22:18:16
支持向量机(Support Vector Machine, SVM)是一类按监督学习方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面。 SVM使用铰链损失函数(hinge loss)计算经验风险(empirical risk)并在求解系统中加入了正则化项以优化结构风险(structural risk),是一个具有稀疏性和稳健性的分类器。SVM可以通过核方法(kernel method)进行非线性分类,是常见的核学习(kernel learning)方法之一 。 因此, hinge loss+kernel trick就是Support Vector Machine。 本文借助了李宏毅机器学习笔记,主要是用通俗易懂的语言来推导出hinge loss和kernel trick。 目录 1.引入Hinge loss 1.ideal loss 2.Square loss 3.Sigmoid+Square loss 4.Sigmoid+Cross entropy 5. Hinge loss 2.线性SVM 1.Step1:定义Function 2. Step2:定义loss function。 3.线性SVM的另外一种表述 3.kernel function的引入 1. function set 2