神经网络模型

完整神经网络样例程序(TensorFlow)(源码)

主宰稳场 提交于 2019-12-05 08:41:55
TensorFlow实战Google深度学习框架案例P61-P64 源码如下: # coding=utf-8 """完整的神经网络解决二分类问题""" import tensorflow as tf from numpy.random import RandomState # 定义训练数据batch大小 batch_size = 8 # 定义神经网络的参数 w1 = tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1)) w2 = tf.Variable(tf.random_normal([3, 1], stddev=1, seed=1)) # 在shape的一个维度上使用None可以方便使用不大的batch大小,在训练时需要把数据分 # 成比较小的batch,但是在测试时,可以一次性使用全部的数据。当数据集比较小时这样比较 # 方便测试,但数据集比价大时,将大量数据放入一个batch可能会导致内存溢出。 x = tf.placeholder(tf.float32, shape=(None, 2), name='x-input') y_ = tf.placeholder(tf.float32, shape=(None, 1), name='y-input') # 定义神经网络前向传播的过程 a = tf.matmul(x,

cnn知识点汇总

感情迁移 提交于 2019-12-05 07:39:18
关于卷积神经网络的入门基础知识: https://blog.csdn.net/weixin_42451919/article/details/81381294 卷积神经网络的相关公式推导: https://campoo.cc/cnn/ https://www.cnblogs.com/pinard/p/6494810.html 卷积神经网络知识点超级详细总结文章: https://blog.csdn.net/jiaoyangwm/article/details/80011656#5CNN_127 残差网络详细介绍 https://www.cnblogs.com/gczr/p/10127723.html CNN的几个常见的模型 https://www.cnblogs.com/hotsnow/p/9734375.html 来源: https://www.cnblogs.com/henuliulei/p/11914484.html

一目了然卷积神经网络 - An Intuitive Explanation of Convolutional Neural Networks

冷暖自知 提交于 2019-12-05 07:14:14
前言:简单翻译了一篇介绍卷积网络的文章,以学习了解卷积网络运行机制。 An Intuitive Explanation of Convolutional Neural Networks 原文地址: https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/comment-page-4/?unapproved=31867&moderation-hash=1ac28e426bc9919dc1a295563f9c60ae#comment-31867 一、什么是卷积神经网络、为什么卷积神经网络很重要?   卷积神经网络<Convolutional Neural Networks>简称ConvNets 或CNNs 属于分类神经网络,在某些领域已经被验证非常有效,比如图像识别、分类领域。ConvNets 不仅仅在人脸、物体、交通标志识别成功而且还助力于机器视觉与自动驾驶。 图 1: 来源 [ 1 ]   在上图 图1 中ConvNet 可以识别场景并且系统可以建立相关关联(“一个足球运动员在踢足球”),然而在下图 图2 的示例中展示了ConvNets 用于识别物体、人和动物。最近,ConvNets 在某些自然语言处理任务(例如句子分类)中也有效。[ 注:微软小冰、苹果Siri 等,读者也可以调用微软AI搭建自己的应用程序

[ch01-03]神经网络基本原理

醉酒当歌 提交于 2019-12-05 04:14:43
系列博客,原文在笔者所维护的github上: https://aka.ms/beginnerAI , 点击star加星不要吝啬,星越多笔者越努力。 前言 For things I don't know how to build, I don't understand. 如果我不能亲手搭建起来一个东西,那么我就不能理解它。 -- 美国物理学家理查德·费曼 在互联网发达的今天,很多知识都可以从网络上找到,但是网络上的博客、文章的质量参差不齐,或者重点不明确,或者直接把别人的博客抄袭过来。这种状况使得广大的初学者们学习起来很困难,甚至误入歧途,增加了学习曲线的陡峭程度。当然也有很多博主非常非常负责任,文章质量很高,只是连续度不够,正看得过瘾的时候,没有后续章节了,无法形成知识体系。 初学者也可以选择看一些教材或者理论书籍,但是,一个鸡生蛋蛋生鸡的问题出现了:如果你不懂,那么看完了理论你还是不会懂;如果你懂了,那么你就没必要看理论。这也是很多教材或者理论书籍的缺憾。 笔者也看过吴恩达老师的课,理论知识讲得由浅入深,还是非常清楚的,虽然代码示例基本没有,但仍然强烈建议大家去看。笔者的心得是:视频可以事先缓存在手机中,利用一些时间片段就可以学习了。 社会上还有一些网课,在线讲解深度学习的知识,笔者也参加了几个团购,老师和助教一般都很负责任,最后可以回看录像,下载PPT课件

深度学习入门笔记(八):深层网络的原理

烈酒焚心 提交于 2019-12-05 00:07:57
专栏——深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献。 2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。 3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。 4)此属于第一版本,若有错误,还需继续修正与增删。还望大家多多指点。大家都共享一点点,一起为祖国科研的推进添砖加瓦。 文章目录 专栏——深度学习入门笔记 声明 深度学习入门笔记(八):深层网络的原理 1、深层网络组成 2、为什么使用深层表示? 3、深度学习和大脑的关联性 补充 推荐阅读 参考文章 深度学习入门笔记(八):深层网络的原理 1、深层网络组成 跟往常一样( 深度学习入门笔记(二):神经网络基础 、 深度学习入门笔记(六):浅层神经网络 、 深度学习入门笔记(七):深层神经网络 ),其实整个过程你应该大概了解过了,主要的两个部分就是前向传播和反向传播。 吴恩达老师手稿如下: 下面就来聊一聊深层网络的原理。 2、为什么使用深层表示? 深度学习为啥被大家吹捧到这个地步,其实是因为我们大家都知道,深度神经网络能解决好多问题,其实并不需要很大的神经网络,但是得有深度,得有比较多的隐藏层,这是为什么呢?为什么必须得深层而不是大呢? 举几个例子,来帮助你理解这个问题—

卷积神经网络-目标探测-笔记

亡梦爱人 提交于 2019-12-04 20:38:36
目标探测介绍: 直接思路:回归问题 利用神经网络进行目标识别,同样的目标变为坐标值 直接思路:局部识别问题 在很多位置尝试识别,能够完成识别的地方就是目标位置 问题:怎样找到这些候选位置?   不同scale的sliding windows?     遍历所有位置     候选区域产生   更有效的方法是什么?     直接计算候选区域 小结 目标探测任务 转化为回归,分类问题 分类思想目标探测:候选区域产生 传统方法—DPM https://blog.csdn.net/qq_14845119/article/details/52625426 基本思想:提取图像特征,制作出激励模版,在原始图像滑动计算,得到激励效果,根据激励分布确定目标位置 拓展:目标可能会变形,各个部分单独考虑 DPM—Deformable Parts Model 产生多个模版,整体模版以及不同局部模版 不同模版同输入图片“卷积”产生特征图 特征图组合形成融合特征 对融合特征进行传统分类,回归,得到目标位置 优点:   方法直观简单,运算速度快,适应动物体变形,至2012年,最好方法 缺点:   性能一般,激励特征人为设计,工作量大,大幅度旋转无法适应,稳定性差 神经网络分类:R-CNN系列方法 https://blog.csdn.net/v1_vivian/article/details/78599229

卷积神经网络-目标分类简述

泄露秘密 提交于 2019-12-04 14:04:11
目标分类基本框架 1. 数据准备 数据来源 --现有数据集的子集;网络采集;现有数据人工标注 http://deeplearning.net/datasets/ 数据扩充 -- https://blog.csdn.net/zhelong3205/article/details/81810743 作用----增加训练的数据量,提高模型的泛化能力,增加噪声数据,提升模型的鲁棒性 数据增强可以分为两类,一类是离线增强,一类是在线增强 离线增强 : 直接对数据集进行处理,数据的数目会变成增强因子 x 原数据集的数目 ,这种方法常常用于数据集很小的时候 在线增强 : 这种增强的方法用于,获得 batch 数据之后,然后对这个 batch 的数据进行增强,如旋转、平移、翻折等相应的变化,由于有些数据集不能接受线性级别的增长,这种方法长用于大的数据集,很多机器学习框架已经支持了这种数据增强方式,并且可以使用 GPU 优化计算。 常用的数据扩充技术: 翻转 :增强因子 2 或 3 数据翻转是一种常用的数据增强方法,这种方法不同于旋转 180 这种方法是做一种类似于镜面的翻折。 旋转 : 增强因子 2 到 4 旋转就是顺时针或者逆时针的旋转,注意在旋转的时候, 最好旋转 90 -180 度否则会出现尺度的问题    缩放 :增强因子任意 图像可以被放大或缩小。放大时,放大后的图像尺寸会大于原始尺寸

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

十年热恋 提交于 2019-12-04 12:17:53
一、研究意义 卷积神经网络(CNN)由于其强大的特征提取能力,近年来被广泛用于计算机视觉领域。1998年Yann LeCun等提出的LeNet-5网络结构,该结构使得卷积神经网络可以端到端的训练,并应用于文档识别。LeNet-5结构是CNN最经典的网络结构,而后发展的卷积神经网络结构都是由此版本衍生而来。 在过去六年中,由于深度学习和卷积网络的发展和进步,基于图像的目标检测和分类能力已经大大提高。而目标检测是计算机视觉领域一个重要的研究方向,是众多高级任务的必备前提,包括场景理解,事件识别等。目前,目标检测也广泛用于安全监控,自动驾驶,人机交互,增强现实等众多领域。目标检测对计算机视觉和产业界实际应用都有十分重要的意义。 然而, 由于视角、遮挡、姿态等因素引起目标发生形变, 导致目标检测成为一个具有挑战性的任务。设计高准确率高效率的目标检测算法仍具有重大意义。 二、研究现状 如今, 基于卷积神经网络的目标检测已经超越传统目标检测方法, 成为当前目标检测的主流方法。本文根据卷积神经网络的使用方式,将基于卷积神经网络的目标检测分为两大类: 基于分类的卷积神经网络目标检测和基于回归的卷积神经网络目标检测。 1. 基于分类的卷积神经网络目标检测 基于分类的CNN也可以成为two-stage检测算法,传统目标检测方法包含预处理、窗口滑动、特 征提取、特征选择、特征分类、后处理等步骤

神经网络中的几种权重初始化方法

别等时光非礼了梦想. 提交于 2019-12-04 06:02:28
神经网络中的几种权重初始化方法 在深度学习中,对神经网络的权重进行初始化(weight initialization)对模型的收敛速度和性能的提升有着重要的影响。 在神经网络在计算过程中需要对权重参数w不断的迭代更新,已达到较好的性能效果。但在训练的过程中,会遇到梯度消失和梯度爆炸等现象。因此,一个好的初始化权重能够对这两个问题有很好的帮助,并且,初始化权重能够有利于模型性能的提升,以及增快收敛速度。 1.是否可以将权重初始化为0 答案是不可能的,如果所有的参数都为0,那么神经元的输出都将会相同,那么在BP的时候同一层的神经元学到的东西相同,gradient相同,weight update也相同。 2.pre-training pre-training是早期训练神经网络的有效初始化方法: pre-training阶段,将神经网络中的每一层取出,构造一个auto-encoder做训练,使得输入层和输出层保持一致。在这一过程中,参数得以更新,形成初始值 fine-tuning阶段,将pre-train过的每一层放回神经网络,利用pre-train阶段得到的参数初始值和训练数据对模型进行整体调整。在这一过程中,参数进一步被更新,形成最终模型。 随着数据量的增加以及activation function的发展,pre-training的概念已经渐渐发生变化。目前

谷歌开源的基于 TensorFlow 的轻量级框架 AdaNet几大优势

不问归期 提交于 2019-12-04 01:02:57
TensorFlow 是相对高阶的机器学习库,用户可以方便地用它设计神经网络结构,而不必为了追求高效率的实现亲自写 C++或 CUDA 代码。它和 Theano 一样都支持自动求导,用户不需要再通过反向传播求解梯度。 而基于 TensorFlow 的轻量级框架 AdaNet,可以使用少量专家干预来自动学习高质量模型。据介绍,AdaNet 在谷歌近期的强化学习和基于进化的 AutoML 的基础上构建,快速灵活同时能够提供学习保证(learning guarantee)。重要的是,AdaNet 提供通用框架,不仅能用于学习神经网络架构,还能学习集成架构以获取更好的模型。 结合不同机器学习模型预测的集成学习在神经网络中得到广泛使用以获得最优性能,它从其悠久历史和理论保证中受益良多,从而在 Netflix Prize 和多项 Kaggle 竞赛等挑战赛中取得胜利。但是,因其训练时间长、机器学习模型的选择要求领域专业知识,它们在实践中并不那么常用。而随着算力、深度学习专用硬件(如 TPU)的发展,机器学习模型将越来越大,集成技术也将越发重要。现在,想象一个工具,它能够自动搜索神经架构,学习将最好的神经架构集成起来构建高质量模型。 刚刚,谷歌发布博客,开源了基于 TensorFlow 的轻量级框架 AdaNet,该框架可以使用少量专家干预来自动学习高质量模型。AdaNet