如果你希望系统性的了解神经网络,请参考零基础入门深度学习系列,下面我会粗略的介绍一下本文中实现神经网络需要了解的知识. 什么是深度神经网络? 神经网络包含三层:输入层(X).隐藏层和输出层:f(x) 每层之间每个节点都是完全连接的,其中包含权重(W).每层都存在一个偏移值(b). 每一层节点的计算方式如下: 其中g()代表激活函数,o()代表softmax输出函数. 使用Flow Graph的方式来表达如何正向推导神经网络,可以表达如下: x: 输入值 a(x):表示每个隐藏层的pre-acti…
前期回顾: 深度学习实践系列(1)- 从零搭建notMNIST逻辑回归模型 深度学习实践系列(2)- 搭建notMNIST的深度神经网络 在第二篇系列中,我们使用了TensorFlow搭建了第一个深度神经网络,并且尝试了很多优化方式去改进神经网络学习的效率和提高准确性.在这篇文章,我们将要使用一个强大的神经网络学习框架Keras配合TensorFlow重新搭建一个深度神经网络. 什么是Keras? 官方对于Keras的定义如下: "Keras: Deep Learning library for…
MNIST 被喻为深度学习中的Hello World示例,由Yann LeCun等大神组织收集的一个手写数字的数据集,有60000个训练集和10000个验证集,是个非常适合初学者入门的训练集.这个网站也提供了业界对这个数据集的各种算法的尝试结果,也能看出机器学习的算法的演进史,从早期的线性逻辑回归到K-means,再到两层神经网络,到多层神经网络,再到最近的卷积神经网络,随着的算法模型的改善,错误率也不断下降,所以目前这个数据集的错误率已经可以控制在0.2%左右,基本和人类识别的能力相当了. 这…
开篇介绍 最近由于工作需要,学习研究了一下Nagios的安装.配置.使用,关于Nagios的介绍,可以参考我上篇随笔Nagios学习实践系列——产品介绍篇 实验环境 操作系统:Red Hat Enterprise Linux Server release 6.0 (Santiago)   64 bit. 注意,Nagios只能安装在Linux或Unix平台,不支持Windows平台,当然,它可以监控Windows平台. 环境准备 Apache 和PHP 不是安装Nagios所必须的,其实也可以说…
其实上篇Nagios学习实践系列——基本安装篇只是安装了Nagios基本组件,虽然能够打开主页,但是如果不配置相关配置文件文件,那么左边菜单很多页面都打不开,相当于只是一个空壳子.接下来,我们来学习研究一下Nagios的配置,了解一下基本的配置和了解各类配置文件. Nagios配置目录 Nagios的配置文件位于etc目录下(/usr/local/nagios/etc)如下图所示: 配置文件简介 配置文件名 功能描述 cgi.cfg 控制CGI访问的配置文件 nagios.cfg 主配置文件:主…
其实上篇Nagios学习实践系列--基本安装篇只是安装了Nagios基本组件,虽然能够打开主页,但是如果不配置相关配置文件文件,那么左边菜单很多页面都打不开,相当于只是一个空壳子.接下来,我们来学习研究一下Nagios的配置,了解一下基本的配置和了解各类配置文件. Nagios配置目录 Nagios的配置文件位于etc目录下(/usr/local/nagios/etc)如下图所示: 配置文件简介 配置文件名 功能描述 cgi.cfg 控制CGI访问的配置文件 nagios.cfg 主配置文件:主…
Dropout是过去几年非常流行的正则化技术,可有效防止过拟合的发生.但从深度学习的发展趋势看,Batch Normalizaton(简称BN)正在逐步取代Dropout技术,特别是在卷积层.本文将首先引入Dropout的原理和实现,然后观察现代深度模型Dropout的使用情况,并与BN进行实验比对,从原理和实测上来说明Dropout已是过去式,大家应尽可能使用BN技术. 一.Dropout原理 根据wikipedia定义,dropout是指在神经网络中丢弃掉一些隐藏或可见单元.通常来说,是在神…
在统计学中,损失函数是一种衡量损失和错误(这种损失与“错误地”估计有关,如费用或者设备的损失)程度的函数.假设某样本的实际输出为a,而预计的输出为y,则y与a之间存在偏差,深度学习的目的即是通过不断地训练迭代,使得a越来越接近y,即 a - y →0,而训练的本质就是寻找损失函数最小值的过程. 常见的损失函数为两种,一种是均方差函数,另一种是交叉熵函数.对于深度学习而言,交叉熵函数要优于均方差函数,原因在于交叉熵函数配合输出层的激活函数如sigmoid或softmax函数能更快地加速深度学习的训…
反向传播 课程来源:PyTorch深度学习实践--河北工业大学 <PyTorch深度学习实践>完结合集_哔哩哔哩_bilibili 目录 反向传播 笔记 作业 笔记 在之前课程中介绍的线性模型就是一个最简单的神经网络的结构,其内部参数的更新过程如下: 对于简单的模型来说可以直接使用表达式的方式来更新权重,但是如果网络结构比较复杂(如下图),直接使用解析式的方式来更新显然有些复杂且不太可能实现. 反向传播就是为了解决这种问题.反向传播的基本思想就是将网络看成一张图,在图上传播梯度,从而使用链式传…
多分类问题 目录 多分类问题 Softmax 在Minist数据集上实现多分类问题 作业 课程来源:PyTorch深度学习实践--河北工业大学 <PyTorch深度学习实践>完结合集_哔哩哔哩_bilibili Softmax 这一讲介绍使用softmax分类器实现多分类问题. 上一节课计算的是二分类问题,也就是输出的label可以分类为0,1两类.只要计算出\(P(y=1)\)的概率,那么\(P(y=0)=1-P(y=1)\):所以只需要计算一种类型的概率即可,也就是只要一个参数. 而在使用…
处理多维特征的输入 课程来源:PyTorch深度学习实践--河北工业大学 <PyTorch深度学习实践>完结合集_哔哩哔哩_bilibili 这一讲介绍输入为多维数据时的分类. 一个数据集示例如下: 由于使用的是多维的数据,因此模型中的x和y都应该变为向量的形式,变为如下式子: 而下方针对多维数据的式子中的一部分可以使用矩阵相乘的方式表示: \[\hat y^{(i)}=\sigma([x_1^{(i)}...x_8^{(i)}]\begin{bmatrix} w_1\\ .\\ .\\ .\…
人工智能深度学习Caffe框架介绍,优秀的深度学习架构 在深度学习领域,Caffe框架是人们无法绕过的一座山.这不仅是因为它无论在结构.性能上,还是在代码质量上,都称得上一款十分出色的开源框架.更重要的是,它将深度学习的每一个细节都原原本本地展现出来,大大降低了人们学习研究和开发的难度. 一.从Caffe的开发中了解到的用户需求:深度学习的框架总会不断改变,Caffe也会有被新框架代替的一天.但是在开发Caffe的过程中,贾扬清发现大家喜欢的框架其实有着很多相似的地方,这些闪光点拥有很长的生命周…
深度学习与计算机视觉(12)_tensorflow实现基于深度学习的图像补全 原文地址:Image Completion with Deep Learning in TensorFlow by Brandon Amos 原文翻译与校对:@MOLLY && 寒小阳 (hanxiaoyang.ml@gmail.com) 时间:2017年4月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/70214565 声明:版权所有,转载请联系作…
深度学习课程笔记(十四)深度强化学习 ---  Proximal Policy Optimization (PPO) 2018-07-17 16:54:51  Reference: https://blog.openai.com/openai-baselines-ppo/ Code: https://github.com/openai/baselines Paper: https://arxiv.org/pdf/1707.06347.pdf Video Tutorials: https://ww…
出处: Michael Nielsen的<Neural Network and Deep Leraning>,点击末尾“阅读原文”即可查看英文原文. 本节译者:哈工大SCIR硕士生 徐伟 (https://github.com/memeda) 声明:我们将在每周一,周四,周日定期连载该书的中文翻译,如需转载请联系wechat_editors@ir.hit.edu.cn,未经授权不得转载. “本文转载自[哈工大SCIR]微信公众号,转载已征得同意.” 使用神经网络识别手写数字 感知机 sigmo…
Batch Normalization(批量标准化,简称BN)是近些年来深度学习优化中一个重要的手段.BN能带来如下优点: 加速训练过程: 可以使用较大的学习率: 允许在深层网络中使用sigmoid这种易导致梯度消失的激活函数: 具有轻微地正则化效果,以此可以降低dropout的使用. 但为什么BN能够如此有效?让我们来一探究竟. 一.Covariate Shift Convariate shift是BN论文作者提出来的概念,其意是指具有不同分布的输入值对深度网络学习的影响.举个例子,假设我们有…
深度学习要想落地实践,一个少不了的路径即是朝着智能终端.嵌入式设备等方向发展.但终端设备没有GPU服务器那样的强大性能,那如何使得终端设备应用上深度学习呢? 所幸谷歌已经推出了TFMobile,去年又更进一步,推出了TFLite,其应用思路为在GPU服务器上利用迁移学习训练自己的模型,然后将定制化模型移植到TFLite上, 终端设备仅利用模型做前向推理,预测结果.本文基于以下三篇文章而成: 理论篇:https://www.tensorflow.org/hub/tutorials/image_re…
本文将具体介绍深度学习之cuda的环境搭建 工具:支持CUDA的显卡(安装cuda6.5),VS2013.Anaconda. 步骤: 1.安装cuda6.5 这个不具体介绍,网上有很多文章.注意选择你相应的系统(我的是windows8.1 64位版,Desktop是台式机,Notebook是笔记本.事实上选错了你也安装不上) 下载cuda6.5官方网址 https://developer.nvidia.com/cuda-toolkit-65 cuda6.5是傻瓜安装,最好不要改动它的默认文件路径…
出处: Michael Nielsen的<Neural Network and Deep Learning>,点击末尾“阅读原文”即可查看英文原文. 本节译者:哈工大SCIR本科生 王宇轩 声明:我们将在每周一,周四 定期连载该书的中文翻译,如需转载请联系wechat_editors@ir.hit.edu.cn,未经授权不得转载. 使用神经网络识别手写数字 反向传播算法是如何工作的 热身:一个基于矩阵的快速计算神经网络输出的方法 关于损失函数的两个假设 Hadamard积 反向传播背后的四个基…
在深度学习中,数据短缺是我们经常面临的一个问题,虽然现在有不少公开数据集,但跟大公司掌握的海量数据集相比,数量上仍然偏少,而某些特定领域的数据采集更是非常困难.根据之前的学习可知,数据量少带来的最直接影响就是过拟合.那有没有办法在现有少量数据基础上,降低或解决过拟合问题呢? 答案是有的,就是数据增强技术.我们可以对现有的数据,如图片数据进行平移.翻转.旋转.缩放.亮度增强等操作,以生成新的图片来参与训练或测试.这种操作可以将图片数量提升数倍,由此大大降低了过拟合的可能.本文将详解图像增强技术在K…
深度学习最终目的表现为解决分类或回归问题.在现实应用中,输出层我们大多采用softmax或sigmoid函数来输出分类概率值,其中二元分类可以应用sigmoid函数. 而在多元分类的问题中,我们默认采用softmax函数,具体表现为将多个神经元的输出,映射到0 ~ 1的区间中,按概率高低进行分类,各概率之和为1. 某分类的概率数学表达式为:yi = ei / ∑j=1ej   具体来说,假设有四个输出单元,分别为: y1 = ex1 / (ex1 + ex2 + ex3 + ex4 ),假设其概…
tensorflow目前已经升级至r1.10版本.在之前的深度学习中,我是在MAC的虚拟机上跑CPU版本的tensorflow程序,当数据量变大后,tensorflow跑的非常慢,在内存不足情况下,又容易造成系统崩溃(虚拟机走的是windows7). 配置信息 为了后续的深度学习,不得已,我在京东买了一部组装厂商提供的主机,是网吧特供机.配置如下: CPU i5 8400 6核 16G内存 GPU Geforce 1060 5G版本 240G SSD 硬盘 为什么是这个配置呢?因为该机的配置原来…
目录 softmax的基本概念 交叉熵损失函数 模型训练和预测 获取Fashion-MNIST训练集和读取数据 get dataset softmax从零开始的实现 获取训练集数据和测试集数据 模型参数初始化 对多维Tensor按维度操作 定义softmax操作 softmax回归模型 定义损失函数 定义准确率 训练模型 模型预测 softmax的简洁实现 初始化参数和获取数据 定义网络模型 初始化模型参数 定义损失函数 定义优化函数 训练 softmax的基本概念 分类问题 一个简单的图像分类…
本文为微信公众号[深度学习大讲堂]特约稿,转载请注明出处 虚拟框架杀入 从发现问题到解决问题 半年前的这时候,暑假,我在SIAT MMLAB实习. 看着同事一会儿跑Torch,一会儿跑MXNet,一会儿跑Theano. SIAT的服务器一般是不给sudo权限的,我看着同事挣扎在编译这一坨框架的海洋中,开始思考: 是否可以写一个框架: import xx.tensorflow as tensorflow import xx.mxnet as mxnet import xx.theano as th…
  神经网络可以通过使用torch.nn包来构建. 既然你已经了解了autograd,而nn依赖于autograd来定义模型并对其求微分.一个nn.Module包含多个网络层,以及一个返回输出的方法forward(input) . 例如,查看下图中的对数字图片分类的网络: 这是一个简单的前馈网络.它接受输入,并将输入依次通过多个层,然后给出输出结果. 对于神经网络来说,一个经典的训练过程包括以下步骤: 定义一个包含一些可学习的参数(或权重)的神经网络 对输入数据集进行迭代 通过网络处理输入 计算…
深度学习课程笔记(一)CNN 解析篇 相关资料来自:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17_2.html 首先提到 Why CNN for Image ? 综合上述三个特点,我们可以看到图像识别有如下的特色: =================================== 分割线 ======================================================= 以上就是整体上来感受下深度神经网络,接下…
刚开始接触深度学习.卷积神经网络的时候非常懵逼,不知道从何入手,我觉得应该有一个进阶的过程,也就是说,理应有一些基本概念作为奠基石,让你有底气去完全理解一个庞大的卷积神经网络: 本文思路: 一.我认为学习卷积神经网络必须知道的几个概念: 1.卷积过程: 我们经常说卷积神经网络卷积神经网络,到底什么才是卷积?网络层卷积过程到底怎么实现?我们在这里借鉴了另一位博客大牛的动态图来给大家演示一下, 图作者文章在此: http://blog.csdn.net/silence1214/article/det…
目录 举例 单个张量与多个卷积核在深度上分别卷积 参考资料 举例 如下张量x和卷积核K进行depthwise_conv2d卷积 结果为: depthwise_conv2d和conv2d的不同之处在于conv2d在每一深度上卷积,然后求和,depthwise_conv2d没有求和这一步,对应代码为: import tensorflow as tf # [batch, in_height, in_width, in_channels] input =tf.reshape( tf.constant([…
一.关于这个系列 自从去年(2018年)底离开工作了3年的M公司加入X公司之后,开始了ASP.NET Core的实践,包括微服务架构与容器化等等.我们的实践是渐进的,当我们的微服务数量到了一定值时,发现运维工作量已将增加了很多,因此容器编排引擎的需求也随之产生(虽然我们一直都知道K8S的必要性).同时,在张队发的<.NET云原生采用情况调查>中已经表明,容器编排和自动化领域Kubernetes已经占据了主体地位,学习Kubernetes刻不容缓! 所以,我将K8S的学习放到了今年的学习列表中,…
此文档为系列学习文档 这系列文档详细讲解了dubbo的使用,基本涵盖dubbo的所有功能特性.在接下来的文章里会详细介绍. 如果你正依赖dubbo作为你业务工程的RPC通信框架,这里可以作为你的参考手册 一.背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本.此时,用于简化增删改查工作量的数据访问框…