神经网络

用 Java 训练深度学习模型,原来这么简单

和自甴很熟 提交于 2020-11-11 14:46:31
作者 | DJL-Keerthan&Lanking 来源 | HelloGitHub 头图 | CSDN下载自东方IC 前言 很长时间以来,Java 都是一个很受企业欢迎的编程语言。得益于丰富的生态以及完善维护的包和框架,Java 拥有着庞大的开发者社区。尽管深度学习应用的不断演进和落地,提供给 Java 开发者的框架和库却十分短缺。现今主要流行的深度学习模型都是用 Python 编译和训练的。对于 Java 开发者而言,如果要进军深度学习界,就需要重新学习并接受一门新的编程语言同时还要学习深度学习的复杂知识。这使得大部分 Java 开发者学习和转型深度学习开发变得困难重重。 为了减少 Java 开发者学习深度学习的成本,AWS 构建了 Deep Java Library (DJL),一个为 Java 开发者定制的开源深度学习框架。它为 Java 开发者对接主流深度学习框架提供了一个桥梁。 在这篇文章中,我们会尝试用 DJL 构建一个深度学习模型并用它训练 MNIST 手写数字识别任务。 什么是深度学习? 在我们正式开始之前,我们先来了解一下机器学习和深度学习的基本概念。 机器学习是一个通过利用统计学知识,将数据输入到计算机中进行训练并完成特定目标任务的过程。这种归纳学习的方法可以让计算机学习一些特征并进行一系列复杂的任务,比如识别照片中的物体。由于需要写复杂的逻辑以及测量标准

技术实践丨基于MindSpore的ResNet-50蘑菇“君”的识别应用体验

与世无争的帅哥 提交于 2020-11-10 18:03:18
本文分享自华为云社区 《基于MindSpore的ResNet-50蘑菇“君”的识别应用体验》 ,原文作者: Dasming 。 摘要:基于华为MindSpore框架的ResNet-50网络模型,实现6714张共10类蘑菇图片的识别分类训练。 背靠全新的设计理念,华为云推出了 MindSpore深度学习实战营,帮助小白更快的上手高性能深度学习框架,快速训练ResNet-50,实现你的第一个手机App开发,学会智能新闻分类、篮球检测和「猜你喜欢」模型! MindSpore深度学习实战营,通过 21天的合理课程安排,不仅提供目前大热的移动端部署介绍,还有紧跟时事的趣味实践,更有深度的底层开发讲解,让你从框架到算法到开发,都能一网打尽。 在MindSpore21天实战第三堂课,由王辉老师分享了基于MindSpore的ResNet-50的识别推理模型,如何应用在“蘑菇’君’是否有毒?”的检测场景。 ResNet之前的状况是: CNN能够提取low/mid/high-level的特征,网络的层数越多,意味着能够提取到不同level的特征越丰富。并且,越深的网络提取的特征越抽象,越具有语义信息。而实际随着神经网络层数的增加,梯度消失或者爆炸导致深层网络很难训练。 对于该问题的解决方法是正则化初始化和中间的正则化层(Batch Normalization),这样的话可以训练几十层的网络

2020CCFBDCI训练赛之室内用户时序数据分类baseline

倖福魔咒の 提交于 2020-11-10 11:52:09
室内用户时序数据分类 赛题介绍 数据简介 数据分析 Baseline程序 提交结果 赛题介绍 赛题名 :室内用户运动时序数据分类 赛道 :训练赛道 背景 :随着数据量的不断积累,海量时序信息的处理需求日益凸显。作为时间序列数据分析中的重要任务之一,时间序列分类应用广泛且多样。时间序列分类旨在赋予序列某个离散标记。传统特征提取算法使用时间序列中的统计信息作为分类的依据。近年来,基于深度学习的时序分类取得了较大进展。基于端到端的特征提取方式,深度学习可以避免繁琐的人工特征设计。如何对时间序列中进行有效的分类,从繁芜丛杂的数据集中将具有某种特定形态的序列归属到同一个集合,对于学术研究及工业应用具有重要意义。 任务 :基于上述实际需求以及深度学习的进展,本次训练赛旨在构建通用的时间序列分类算法。通过本赛题建立准确的时间序列分类模型,希望大家探索更为鲁棒的时序特征表述方法。 比赛链接 : https://www.datafountain.cn/competitions/484 数据简介 数据整理自网上公开数据集UCI(已脱敏),数据集涵盖2类不同时间序列,该类数据集广泛应用于时序分类的业务场景。 文件类别 文件名 文件内容 训练集 train.csv 训练数据集标签文件,标签CLASS 测试集 test.csv 测试数据集标签文件,无标签 字段说明 字段说明.xlsx 训练集

浅谈字节最新开源联邦机器学习平台Fedlearner

折月煮酒 提交于 2020-11-10 07:41:14
最近联邦机器学习越来越火,字节也正式对外宣讲开源了联邦机器学习平台Fedlearner。这次头条开源的 Fedlearner 与我之前分析过得华为、微众的联邦机器学习平台有什么不同呢?主要体现在以下几个方面: 产品化: Fedlearner 的代码里有大量的js、Html模块,也是第一次让我们可以直观的看到联邦机器学习平台大概是什么样的,如果做成产品需要长成什么样。 业务多样化:之前华为、微众更多地强调联邦机器学习在风控业务的落地。头条开始强调联邦学习在推荐、广告等业务中的落地,并且给了很明确的数据,在某教育业务板块广告投放效果增加209% 可输出性:如果说之前的联邦机器学习平台更多地从理论层面做介绍,这一次字节的Fedlearner强调了可输出性,比如为了保持联邦建模双方的环境一致性,通过K8S的部署模式快速拉起和管理集群。这是为ToB对外输出服务做技术准备 下面分别介绍下Fedlearner在这三方面的一些工作。 Fedlearner产品化工作 以推荐广告业务为例,联邦机器学习平台的广告主和平台方应该各自管理一套模型展示服务和模型训练服务。 需要有两套协议保证客户的联邦建模,一套是数据一致性问题。比如在纵向联邦学习场景下,用户在页面上点击了某个广告,平台方和广告主各自会捕获一部分日志。如何能实时的保证这两部分捕获的日志的一致性,并且拼接成训练样本,需要一套实时数据样本拼接协议。

人工智能生成仿真人脸

一笑奈何 提交于 2020-11-10 03:05:20
  当你访问“This Person Does Not Exist”(此人不存在)网站的时候,你会看到一张朝你微笑的人脸(每次刷新都会跳出不同肤色的人脸)。尽管这些笑脸非常的真实,人眼也很难区分,但是这些笑脸均由神经网络算法生成的,均不是现实生活中的真人。   该网站的创作者Phillip Wang于2月12日在Facebook群组中发布了这个网站,声称该网站的神经网络算法能够从512维矢量中划分面部图像。该技术基于NVIDIA设计的最先进人工智能StyleGAN,一种可以分离图像各种元素的神经网络并用于学习和生成新的图像。Nvidia工程师团队于2月6日在arXiv上更新的一份预打印论文中进行了详细介绍。   StyleGAN是英伟达2018年底发布的最新研究成果,官方开源了代码,需要Python 3.6和TensorFlow 1.10以上 (支持GPU) 。和官方代码实现一起发布的,还有Flickr高清人脸数据集。数据集里包含7万张1024×1024高清人像。英伟达说,这些照片在年龄、种族、以及图片背景上,都有很强的多样性。   代码实现:https://github.com/NVlabs/stylegan   FFHQ数据集:https://github.com/NVlabs/ffhq-dataset   论文:https://arxiv.org/abs/1812.04948

【译】深度双向Transformer预训练【BERT第一作者分享】

徘徊边缘 提交于 2020-11-10 01:51:49
翻译自Jacob Devlin分享的slides [TOC] NLP中的预训练 词嵌入是利用深度学习解决自然语言处理问题的基础。<div align=center><img src="https://img2018.cnblogs.com/blog/1135245/201902/1135245-20190213113114332-1584404544.png" /></div> 词嵌入(例如word2vec,GloVe)通常是在一个较大的语料库上利用词共现统计预训练得到的。例如下面两个句子中,由于 king 和 queen 附近的上下文时常相同或相似,那么在向量空间中,这两个词的距离较为接近。<div align=center><img src="https://img2018.cnblogs.com/blog/1135245/201902/1135245-20190213113201532-413625814.png" /></div> 语境表示 问题:通常的词嵌入算法无法表现一个词在不同语境(上下文)中不同的语义。例如 bank 一词在下列两个句子中有着不同的语义,但是却只能使用相同的向量来表示。<div align=center><img src="https://img2018.cnblogs.com/blog/1135245/201902/1135245

太牛了!B 站 UP 主开发会写高考作文的 AI

大憨熊 提交于 2020-11-09 17:10:04
本文授权转载自学术头条 作者:赵雅琦 前段时间,浙江高考满分作文《生活在树上》因为晦涩难懂的内容,刷爆了各种社交媒体。外行人看热闹,内行人看门道,大神们透过现象看本质。 一般来说,高考作文可以通过批量化、模式化的训练达到一个令人满意的分数。实际上就是把学生当做一个写作机器进行训练,为学生输入大量范文,提供写作模式,然后进行长时间的学习。等等,这不是和人工智能的训练过程相同吗? 那么,如果给一个人工智能系统同样的数据,是否可以教会它写作文呢? 答案是,当然可以。B 站 UP 主 - 图灵的猫,秉承了心动不如行动的理念,一个人利用三个月,500 个小时,10000 行代码,200000000 条数据,1700000000 个参数,开发了一个会写作文的人工智能 - EssayKiller。 EssayKiller 的基本组成 一个 AI 不管外形和功能如何,其核心都是人工神经网络。EssayKiller 也是由四个不同的神经网络所组成。 第一部分是类似于人类的视觉处理系统的识别网络。它通过外接摄像头的实时 OCR 以及卷积神经网络及汉字的识别与提取并将结果输入到下一层的网络中。 第二部分是语言网络,旨在模范人类大脑的语言功能。在这里 UP 主将它分为两个子网络,相较于人类的颞叶区和额叶区等复杂构成,它更加简明扼要。一个子网络为读题网络,也就是对高考题目进行准确的阅读和主题摘要提取。

如何根据训练/验证损失曲线诊断我们的CNN

拟墨画扇 提交于 2020-11-09 17:09:10
前言 在 关于训练神经网路的诸多技巧Tricks(完全总结版) 这篇文章中,我们大概描述了大部分所有可能在训练神经网络中使用的技巧,这对如何提升神经网络的准确度是很有效的。 然而在实际中,在方法几乎定型的时候,我们往往需要针对自己的任务和自己设计的神经网络进行 debug 才能达到不错的效果,这也就是一个不断调试不断改进的一个过程。 炼金术?炼金术! (炼金何尝不是呢?各种配方温度时间等等的调整) 那么到底如何去Debug呢? 如何Debug 以下的内容部分来自CS231n课程,以及汇总了自己在训练神经网络中遇到的很多问题。 让我们先谈点简单的,如果不考虑debug,采取什么方式可以提升我们的训练精度呢? 吴恩达曾提出了这几点: 寻找更多的数据 让网络层数更深一些 在神经网络中采取一些新的方法 训练的时间更长点(更多的迭代次数) 改变batch-size 尝试使用正则化技术(权重衰减) 权衡结果的偏置和方差(bias and variance) 使用更多的GPU 以上这些方法和之前的提到的训练神经网络的关于训练神经网路的诸多技巧Tricks(完全总结版)的方法是类似的,是无关乎神经网络本身的通用的方法,而具体细化到自己所在的任务时,我们需要对我们此刻所做的任务进行单独的Debug,来寻找问题所在。 那么我们如何Debug呢?和编写程序类似,神经网络中的 超参数 相当于我们的代码

[Deep-Learning-with-Python]机器学习基础

大城市里の小女人 提交于 2020-11-09 05:17:19
机器学习类型 机器学习模型评估步骤 深度学习数据准备 特征工程 过拟合 解决机器学习问题的一般性流程 机器学习四分支 二分类、多分类以及回归问题都属于监督学习--目标是学习训练输入和对应标签之间的关系。 监督学习只是机器学习的冰山一角。机器学习主要分为4类:监督学习、非监督学习、半监督学习和强化学习。 监督学习 最常见的机器学习类型---学习输入数据和对应标签之间的映射关系。当下几乎所有的深度学习应用都属于监督学习类型,比如ocr识别,语音识别,图像分类和机器翻译等。 尽管监督学习主要由分类和回归组成,也包括一些其他变种: 生成序列---给定图片,生成一个概括性的标题。序列生成可以看做一系列分类问题; 语法树预测---将句子生成对应的句法树; 物体检测---给定图片,在图片中圈出物体所在的矩形框; 等等。 非监督学习 在没有对应标签的情况下,为了进行数据可视化、数据压缩、数据降噪或数据相关性分析对输入数据进行有趣的数据转换。数据降维和聚类是典型的非监督学习。 半监督学习 一种特殊的监督学习。半监督学习是没有手工标签的监督学习。但是学习过程中仍然有标签(还是监督学习),但是标签是由启发性算法从输入数据中生成而来。 比如,自编码器就是常见的半监督学习。 强化学习 强化学习中,agent(代理)接收关于环境的信息,然后选择可以最大化reward的动作。比如:神经网络查看网络游戏的屏幕

深度学习之注意力机制(Attention Mechanism)和Seq2Seq

这一生的挚爱 提交于 2020-11-08 16:30:01
这篇文章整理有关注意力机制( Attention Mechanism )的知识,主要涉及以下几点内容: 1、注意力机制是为了解决什么问题而提出来的? 2、软性注意力机制的数学原理; 3、软性注意力机制、Encoder-Decoder框架与Seq2Seq 4、自注意力模型的原理。 一、注意力机制可以解决什么问题? 神经网络中的注意力机制(Attention Mechanism)是在计算能力有限的情况下,将计算资源分配给更重要的任务,同时解决信息超载问题的一种资源分配方案。在神经网络学习中,一般而言模型的参数越多则模型的表达能力越强,模型所存储的信息量也越大,但这会带来信息过载的问题。那么通过引入注意力机制,在众多的输入信息中聚焦于对当前任务更为关键的信息,降低对其他信息的关注度,甚至过滤掉无关信息,就可以解决信息过载问题,并提高任务处理的效率和准确性。 这就类似于人类的视觉注意力机制,通过扫描全局图像,获取需要重点关注的目标区域,而后对这一区域投入更多的注意力资源,获取更多与目标有关的细节信息,而忽视其他无关信息。通过这种机制可以利用有限的注意力资源从大量信息中快速筛选出高价值的信息。 二、软性注意力机制的数学原理 在神经网络模型处理大量输入信息的过程中,利用注意力机制,可以做到只选择一些关键的的输入信息进行处理,来提高神经网络的效率,比如在机器阅读理解任务中,给定一篇很长的文章