激活函数

深度学习及pytorch基础

有些话、适合烂在心里 提交于 2020-08-13 06:04:15
【任务一】视频学习心得及问题总结 根据下面三个视频的学习内容,写一个总结,最后列出没有学明白的问题。 【任务二】代码练习 在谷歌 Colab 上完成代码练习中的 2.1、2.2、2.3、2.4 节,关键步骤截图,并附一些自己的想法和解读。 【任务三】进阶练习 在谷歌 Colab 上完成猫狗大战的VGG模型的迁移学习,关键步骤截图,并附一些自己想法和解读。 在该代码的基础上,下载AI研习社“猫狗大战”比赛的测试集,利用fine-tune的VGG模型进行测试,按照比赛规定的格式输出,上传结果在线评测。将在线评测结果截图,及实现代码发在博客。同时,分析使用哪些技术可以进一步提高分类准确率。 1. 视频学习 视频学习包括两章内容: 1.1 绪论 (下载地址: https://www.jianguoyun.com/p/DVJarjYQrKKIBhi8la0D) 从专家系统到机器学习 从传统机器学习到深度学习 深度学习的能与不能 1.2 深度学习概述 (下载地址: https://www.jianguoyun.com/p/DVlvT3cQrKKIBhi_la0D) 浅层神经网络:生物神经元到单层感知器,多层感知器,反向传播和梯度消失 神经网络到深度学习:逐层预训练,自编码器和受限玻尔兹曼机 1.3 pytorch 基础 (下载地址: https://www.jianguoyun.com/p

谷歌刷新机器学习世界纪录!2 分钟搞定 ImageNet 训练

二次信任 提交于 2020-08-13 02:52:32
AI 前线导读 :随着技术、算力的发展,在 ImageNet 上训练 ResNet-50 的速度被不断刷新。2018 年 7 月,腾讯机智机器学习平台团队在 ImageNet 数据集上仅用 6.6 分钟就训练好 ResNet-50,创造了 AI 训练世界纪录;一周前,壕无人性的索尼用 2176 块 V100 GPU 将这一纪录缩短到了 224 秒;如今,这一纪录再次被谷歌刷新…… 深度学习非常依赖于硬件条件,它是一个计算密集型的任务。硬件供应商通过在大型计算集群中部署更快的加速器来做出更快的相应。在 petaFLOPS(运算能力单位,每秒千万亿次浮点数运算)规模的设备上训练深度学习模型需要同时面临算法和系统软件两方面的挑战。Google 于近日推出了一种大规模计算集群的图像分类人物训练解决方案,相关论文发表于 Arxiv: Image Classification at Supercomputer Scale 。本文的作者使用 Google TPU v3 Pod 训练 ResNet-50,在识别率没有降低的情况下,仅使用了 2.2 分钟的时间。 背景 深度神经网络的成功应用与发展离不开疯狂增长的算力,在许多领域,深度学习的发展可以说是由硬件驱动的。在深度网络的训练过程中,最关键的部分就是使用随机梯度下降算法(SGD)优化网络权重。通常情况下,模型需要使用 SGD

神经网络简易教程

…衆ロ難τιáo~ 提交于 2020-08-11 23:23:01
作者|Renu Khandelwal 编译|VK 来源|Medium 在这篇文章中,我们将了解神经网络的基础知识。 这个博客的先决条件是对机器学习的基本理解,如果你尝试过一些机器学习算法,那就更好了。 首先简单介绍一下人工神经网络,也叫ANN。 很多机器学习算法的灵感来自大自然,而最大的灵感来自我们的大脑,我们如何思考、学习和做决定。 有趣的是,当我们触摸到热的东西时,我们身体里的神经元将信号传递给大脑的。然后,大脑产生冲动,从热的区域撤退。我们根据经验接受了训练。根据我们的经验,我们开始做出更好的决定。 使用同样的类比,当我们向神经网络发送一个输入(触摸热物质),然后根据学习(先前的经验),我们产生一个输出(从热区域退出)。在未来,当我们得到类似的信号(接触热表面),我们可以预测输出(从热区退出)。 假设我们输入了诸如温度、风速、能见度、湿度等信息,以预测未来的天气状况——下雨、多云还是晴天。 这可以表示为如下所示。 让我们用神经网络来表示它并理解神经网络的组成部分。 神经网络接收输入,通过使用激活函数改变状态来转换输入信号,从而产生输出。 输出将根据接收到的输入、强度(如果信号由权值表示)和应用于输入参数和权值的激活而改变。 神经网络与我们神经系统中的神经元非常相似。 x1、x2、…xn是神经元向树突的输入信号,在神经元的轴突末端会发生状态改变,产生输出y1、y2、…yn。

ICML2020 | Prune or Not to Prune?与其剪枝丢掉无用通道,不如将其激活?

吃可爱长大的小学妹 提交于 2020-08-11 22:17:49
      本文介绍的是IC ML 2020 论文《Channel Equilibrium Networks for Learning Deep Representation》,论文作者 来自香港大学罗平组。   作者 | 邵文琪、罗平   编辑 | 丛 末      论文地址:https://arxiv.org/pdf/2003.00214.pdf    1    前言   这篇文章主要介绍我们ICML 2020的一个工作——Channel Equilibrium Networks for Learning Deep Representation。卷积神经网络(CNN)中最重要的一个概念就是通道(Channel),与之相关联的基本结构包括卷积层、归一化层(如BN等)。比如卷积中的一个kernel通常对应着一个输出通道,而常用的BN就是在每一个通道内计算相应的统计量。   大量研究表明,网络中有效通道的数量与CNN的表达能力关系密切。比如,WideResNet通过增加通道数量也就是网络宽度来提升CNN的表达能力,而常用的模型剪枝方法(Prunning)也发现对一个训练好的网络,删去一些不重要的通道并不会对网络性能产生太大的影响。   在这篇文章中,我们把这些不重要的通道称之为“抑制通道”。抑制通道在特征表示中几乎没有作用,因此网络剪枝即去除抑制通道。与网络压缩不同

变分(图)自编码器不能直接应用于下游任务(GAE, VGAE, AE, VAE and SAE)

我只是一个虾纸丫 提交于 2020-08-11 10:39:50
    自编码器是无监督学习领域中一个非常重要的工具。最近由于图神经网络的兴起,图自编码器得到了广泛的关注。笔者最近在做相关的工作,对科研工作中经常遇到的:自编码器(AE),变分自编码器(VAE),图自编码器(GAE)和图变分自编码器(VGAE)进行了总结。如有不对之处,请多多指正。     另外,我必须要强调的一点是:很多文章在比较中将自编码器和变分自编码器视为一类,我个人认为,这二者的思想完全不同。自编码器的目的不是为了得到latent representation(中间层),而是为了生成新的样本。我自己的实验得出的结论是,变分自编码器和变分图自编码器生成的中间层 不能直接 用来做下游任务(聚类、分类等),这是一个坑。 自编码器(AE)     在解释图自编码器之前,首先理解下什么是自编码器。自编码器的思路来源于传统的PCA,其目的可以理解为非线性降维。我们知道在传统的PCA中,学习器学得一个子空间矩阵,将原始数据投影到一个低维子空间,从未达到数据降维的目的。自编码器则是利用神经网络将数据逐层降维,每层神经网络之间的激活函数就起到了将"线性"转化为"非线性"的作用。自编码器的网络结构可以是对称的也可以是非对称的。我们下面以一个简单的四层对称的自编码器为例,全文代码见最后。    (严格的自编码器是只有一个隐藏层,但是我在这里做了个拓展,其最大的区别就是隐藏层以及神经元数量的多少

GAN网络之入门教程(三)之DCGAN原理

余生颓废 提交于 2020-08-11 02:54:11
目录 DCGAN简介 DCGAN的特点 几个重要概念 下采样(subsampled) 上采样(upsampling) 反卷积(Deconvolution) 批标准化(Batch Normalization) 激活函数 G模型 总结 参考 如果说最经常被用来处理图像的网络模型,那么毋庸置疑,应该是CNN了,而本次入土教程的最终目的是做一个动漫头像生成的网络模型,因此我们可以将CNN与GAN结合,也就是组成了传说中的DCGAN网络。 DCGAN简介 DCGAN全称 Deep Convolutional Generative Adversarial Networks ,中文名曰深度卷积对抗网络。论文地址在 这里 。 因为DCGAN是不仅与GAN有关还与CNN有关,因此,如果不是很了解的CNN的话,建议先去看一看CNN相关的知识,也可以参考一下我以前的博客。 数据挖掘入门系列教程(十一点五)之CNN网络介绍 数据挖掘入门系列教程(十二)之使用keras构建CNN网络识别CIFAR10 这里我们可以在复述一下CNN的相关知识和特点。 CNN我们可以理解为如下的行为,逐层深入"抽丝剥茧”地“理解”一张图片或其他事物。图片经过CNN网络中的一系列layer,逐渐的对图像进行细化,最终将图像从一个大的维度变成一个小的维度。在DCGAN中, 判别器 实际上就是一个CNN网络。输入一张图片

最小推荐系统:AutoRec

妖精的绣舞 提交于 2020-08-10 20:09:28
AutoRec [1] 可以说是深度学习时代最古老、最简单、最容易理解的模型。该模型模拟无监督学习中用到的数据表征和压缩工具AutoEncoder, 自然地,其模型也可以写成重建函数形式: (1) 其中 和 分别为输出层和隐藏层的激活函数,参数集 , , , , . 对应 个用户和 个条目, 维隐藏层。 跟AutoEncoder类似地,其损失函数为 不过考虑到对模型参数的限制,比如加入L2正则,损失函数变化为: 其中 为Frobenius范数. 一般如原论文中一样,把AutoRec用于协同过滤(Collaborative Filtering). 对于条目协同过滤,AutoRec的模型定义(PyTorch)如下: class Autorec ( nn . Module ): def __init__ ( self , args , num_items ): super ( Autorec , self ) . __init__ () self . args = args #self.num_users = num_users self . num_items = num_items self . hidden_units = args . hidden_units self . lambda_value = args . lambda_value self . encoder =

dotnet 从零开始写一个人工智能 从一个神经元开始

↘锁芯ラ 提交于 2020-08-10 19:58:49
现在小伙伴说的人工智能都是弱智能,可以基于神经网络来做。而神经网络是有多层网络,每一层网络都有多个神经元。那么最简单的神经网络就是只有一层,而这一层只有一个神经元,也就是整个神经网络只是有一个神经元。一个神经元可以用来做什么?可以用来做基础的与或逻辑运算器。在我没有告诉神经元与或的逻辑时,只是通过我传输的输入的值和输出的值,此时神经元经过训练就能自己学会与或的逻辑。本文就在不使用现成的人工智能框架下一步步和大家写这一个神经元和告诉大家这是如何运行的。本文特别适合小伙伴入门神经网络,或者适合小伙伴入手写代码 在所有逻辑开始之前,先要了解一下在代码可以如何组织。很多时候都不需要整个逻辑都了解就可以开始写代码了,一边写一边修改才是最具小项目效率的。在开始之前,先约定好本文要做的内容,本文就是来写一个神经网络,这个神经网络其实只有一个神经元而这个网络做的事情就是训练出一个 或 逻辑的计算库 什么是 或 运算呢?其实就是输入两个布尔值,只要存在一个值是 1 那么输出就是 1 除非两个输入都是 0 才能输出 0 的值。那么什么时布尔值呢?就是表示一个数字只有两个取值,在本文这里就使用 0 和 1 两个值。所以 或 运行就是输入两个值,这两个值要么是 0 要么是 1 而输出也相同 来小伙伴,请做一道初中学生题目。我有两个值 a 和 b 可以输入,这两个值要么是 0 要么是 1 的值

一线算法工程师经典面试题

半世苍凉 提交于 2020-08-10 09:39:52
一、 机器学习基础题 1、LSTM的公式 2、RNN为什么出现梯度消失及BPTT的推导 3、DQN的基本原理么 4、GBDT和随机森林有什么区别 5、GBDT的原理,如何做分类和回归 6、随机森林的随机体现在哪方面 7、Wide &Deep的原理 8、GBDT+LR是怎么做的? 9、DQN模型为什么要做经验回放 10、数据之间如果不是独立同分布的会怎样 11、AUC的原理介绍一下 12、XGBOOst和GBDT的区别。 13、强化学习和监督学习的区别 14、神经网络里面的损失函数有哪些 15、机器学习中常见的激活函数有哪些?为什么通常需要零均值? 16、DeepFM介绍 17、FM推导 18、boosting和bagging的区别? 19、bagging为什么能减小方差? 20、交叉熵损失函数,0-1分类的交叉熵损失函数的形式。什么是凸函数?0-1分类如果用平方损失为什么用交叉熵而不是平方损失? 21、L1和L2有什么区别,从数学角度解释L2为什么能提升模型的泛化能力。 22、深度学习中,L2和dropout有哪些区别? 23、L1正则化有哪些好处 24、如果有一万个地理坐标,转换成1-10000的数,可以用决策树么? 25、CART分类树和ID3以及C4.5有什么区别? 26、树集成模型有哪几种实现方式:Bagging和Boosting,回答过程中又问到了很多细节

第二次作业:卷积神经网络 part 2

耗尽温柔 提交于 2020-08-10 09:26:23
【第二部分】 代码练习 MobileNetV1 网络 MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications, 2017 https://arxiv.org/abs/1704.04861 VGG,GoogleNet,ResNet进一步提高CNN的性能。但是到ResNet,网络已经达到152层,模型大小动辄几百300MB+。这种巨大的存储和计算开销,严重限制了CNN在某些低功耗领域的应用。在实际应用中受限于硬件运算能力与存储(比如几乎不可能在手机芯片上跑ResNet-152),所以必须有一种能在算法层面有效的压缩存储和计算量的方法。而MobileNet/ShuffleNet正为我们打开这扇窗。 Mobilenet v1是Google于2017年发布的网络架构,旨在充分利用移动设备和嵌入式应用的有限的资源,有效地最大化模型的准确性,以满足有限资源下的各种应用案例。Mobilenet v1核心是把卷积拆分为Depthwise+Pointwise两部分。 Depthwise 处理一个三通道的图像,使用3×3的卷积核,完全在二维平面上进行,卷积核的数量与输入的通道数相同,所以经过运算会生成3个feature map。卷积的参数为: 3 × 3 × 3 = 27,如下所示: