TensorFlow学习笔记------深层神经网络知识点

TensorFlow学习笔记(4)——深层神经网络 1 深度学习与深层神经网络维基百科对深度学习的精确定义为“一类通过多层非线性变换对高复杂性数据建模算法的合集”。可见深度学习的两个重要特性:多层和非线性。1 非线性模型的局限性一个线性模型中通过输入得到输出的函数被称为一个线性变换,线性模型的最大特点是任意线性模型的组合仍是线性模型。而前向传播算法完全符合其定义。因此只通过线性变换,任意层的全连接神经网络和单层神经网络的表达能力没有任何区别,且都是线 阅读详情

深层神经网络:

1、深层神经网络:一个多层、非线性预测模型。
    线性模型具有局限性,假设一个三层的神经网络,每层之间都是线性的,那么有
    output = input * W1 * W2
    W1,W2分别为输入层到唯一的隐藏层,隐藏层到输出层的矩阵
    那么W1*W2是一个定值。所以,如果是线性模型,那么无论有多少层,都可以等效成一个矩阵,和一层是一样的。
    
    但大多数实际问题,都无法直接用线性模型划分。

2、用激活函数去线性化
    非线性激活函数:tf.nn.relu、tf.sigmoid、tf.tanh等
    如下代码实现了去线性化:
    a = tf.nn.relu(tf.matmul(x,w1) + biases1)
    y = tf.nn.relu(tf.matmul(a,w2) + biases2)
    
3、多层神经网络中隐藏层能够提取更高维度的特征信息,所以更容易解决复杂问题

对于分类问题::

4、交叉熵:
    H(p,q) = -Σp(x)log(q(x))
    用于描述概率分布p和q之间的距离。
    H(p,q)≠H(q,p)
    即交叉熵描述的是用概率分布q表达概率分布p的可信程度。交叉熵越小,越可信。
    实现代码为:
    cross_entropy = -tf.reduce_mean( y * tf.log(tf.clip_by_value(y,1e-10,10)))
    

5、神经网络的输出不一定是概率分布,可以用softmax回归转为概率分布
    假设一个n分类问题的输出层为n个节点,那么
        softmax(y) = (e^y)/(Σe^y(i))
    TF中去掉了softmax的单独实现,自己需要实现,可以按照如上公式在神经网络中加入一个softmax层
    
    TF提供了softmax回归和交叉熵一起使用的函数
    cross_entropy = tf.nn.softmax_cross_entropy_with_logits(lables=y_,logits=y)
    
    如果分类问题只有一个正确答案,可以用tf.nn.sparse_softmax_cross_entropy_with_logits(lables=y_,logits=y)加速
    

对于回归问题(预测某一个数值)::
    
6、常见的损失函数是均方误差,也叫均方差
    MSE(y,y')=(Σ(y-y')^2)/n    
    描述了一个batch中,各个预测结果y'和真实结果y之间的误差,数值越大,误差越大。代码为:
    mse = tf.reduce_mean(tf.square(y-y'))

7、针对某些问题的自定义损失函数:比如预测销量对收入的影响,多生产一个,损失生产成本10元,少生产一个,损失利润1元,所以,多和少的loss是不同的。而MSE对预测多和预测少的损失的估计是一样的,因此有时候需要自己定义loss函数。如:
    loss = tf.reduce_sum(tf.where(tf.greater(x,x0),5*(x-x0),1*(x0-x)))
    

8、梯度下降算法:沿着使loss变小的梯度方向,调整参数值。
   学习率:每次调整参数的幅度。


9、神经网络训练的一般过程:
    batch_size = n
    x = tf.placeholder(tf.float32,shape=(batch_size,2),name="x-input")
    y = tf.placeholder(tf.float32,shape=(batch_size,1),name="y-input")
    
    loss = ...
    train_step = tf.train.AdamOptimizer(0.001).minimize(loss)

    with tf.Session() as sess:
        ...
        STEPS = ...
        for i in range(STEPS):
        CURRENT_X = ...
        CURRENT_Y = ...
        sess.run(train_step,feed_dict={x:CURRENT_X,Y:CURRENT_Y})

10、学习率设置:指数衰减法。即训练前期学习率较高,保证迅速接近最优解;训练后期学习率较低,保证训练结果较为稳定。可以使用函数:
    tf.train.exponential_decay()实现指数衰减的学习率,该代码实现了如下功能:
    decayed_learning_rate = learning_rate * decay_rate ^ (global_step/decay_steps)
    其中:learning_rate为初始学习率,decay_rate为衰减系数,global_step正在进行第几轮训练(使用第几个batch),decay_steps为衰减速度。
    
    通过设置该函数的staircase值来确定学习率是连续变化的还是阶梯式变化的。False->连续变化;True->(global_step/decay_steps)这个算式被转化成整数,呈阶梯式变化。
    
    在staircase = True的情况下,decay_steps一般设置为完整训练完一遍数据所需要的轮数。此时,每训练一遍数据就改变一次学习率,使得训练得到的模型适合所有的数据。
    
    演示代码:
    global_steps = tf.Variable(0)
    
    learning_rate = tf.train.exponential_decay(0.1,global_step,100,0.96,staircase=True)
    其中初始学习率为0.1,每训练100轮之后,学习率乘0.96,阶梯化为真。这都TM是通过经验设定的...
    
    learning_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(...my loss...,global_step=global_step)
    传入global_step会使得它得到自动更新。
    
    

 

 

 

TensorFlow学习笔记(2) 深层神经网络 目录 一、深度学习与深层神经网络 二、损失函数定义 交叉熵 均方误差(MSE,mean squared error) 自定义损失函数 三、神经网络优化算法 四、神经网络的进一步优化 1.学习率的设置 2.过拟合问题 3.滑动平均模型 一、深度学习与深层神经网络 深度学习是指一类通过多层非线性变换对高复杂性数据建模算法的合集,深层神经网络就是实现多层非线性变换最常用的一种方法... 阅读详情

相关推荐

【TensorFlow深度学习框架教程四】深层神经网络

深层神经网络(Deep Neural Network)深度学习(Deep Learning)和深层神经网络(DNN)现在很火的深度学习的概念,其实在实际中基本上可以认为是深层神经网络的代名词。那么为什么要叫“深层”呢?与上一篇笔记中的神经网络又有什么区别呢?上一篇笔记中的神经网络,其实使用的是线性模型:y = Σxiwi + b(偏置),任意线性模型组合仍为线性→单层←→多层,线性模型仅可解决线性...

primetong的博客 502

tensorflow学习笔记(三十六):learning rate decay

learning rate decay在训练神经网络的时候,通常在训练刚开始的时候使用较大的learning rate, 随着训练的进行,我们会慢慢的减小learning rate。对于这种常用的训练策略,tensorflow 也提供了相应的API让我们可以更简单的将这个方法应用到我们训练网络的过程中。接口 tf.train.exponential_decay(learning_rate, glo

Keith 3万+

TensorFlow之深层神经网络

前面介绍了TensorFlow的主要概念,并给出了一个完整的TensorFlow程序来训练神经网络.这一章将介绍:如何设计和优化神经网络,使得他能够更好地对未知的样本进行预测。 1.介绍深度学习与深层神经网络的概念,并给出一个实际的样例来说明深层神经网络可以解决部分浅层神经网络解决不了的问题。 2.介绍如何设定神经网络的优化目标。这个优化目标也就是损失函数,所以将分别介绍分类问题和回归问题中比较...

qq_28286027的博客 433

对于tensorflow学习率的理解:global_step;decay_steps

tf.train.exponential_decay( learning_rate, global_step, decay_steps, decay_rate, staircase=False, name=None ) # 学习率迭代公式: decayed_learning_rate = learning_rate * ...

Hero_Never_GIVE_UP的博客 5867

基于STM32和K210的自动驾驶小车设计

自动驾驶技术正在迅速发展,成为了汽车行业和智能交通领域的热点之一。随着科技的发展,STM32和K210这两款芯片为自动驾驶小车提供了优秀的硬件支持。本文我们将学习如何使用STM32和K210打造一个简单的自动驾驶小车。提示:以下是本篇文章正文内容,下面案例可供参考通过这篇文章,掌握了如何使用STM32和K210构建一个简单的自动驾驶小车。通过了解基本的电路设计,并编写了STM32和K210的代码。通过这个例子,可以更好地理解如何在嵌入式系统中使用STM32和K210,以及如何实现自动驾驶小车的简单功能。

Kyle_Chan_zMH的博客 2215

TensorFlow学习--学习率衰减/learning rate decay

学习率衰减 学习率衰减(learning rate decay) 在训练神经网络时,使用学习率控制参数的更新速度.学习率较小时,会大大降低参数的更新速度;学习率较大时,会使搜索过程中发生震荡,导致参数在极优值附近徘徊. 为此,在训练过程中引入学习率衰减,使学习率随着训练的进行逐渐衰减. TensorFlow中实现的学习率衰减方法: tf.train.piecewise_constant...

akadiao的博客 2万+

哨兵1号(Sentinel-1)雷达SAR数据预处理全流程:从下载到精确配准

本文详细介绍了哨兵1号(Sentinel-1)雷达SAR数据从下载到精确配准的全流程预处理方法。内容涵盖SLC与GRD数据选择、ASF平台下载技巧,并重点解析了使用SNAP软件进行几何校正、辐射定标及高精度配准的核心步骤,为InSAR形变监测等应用提供可靠的数据基础。

weixin_29208327的博客 476

decay_rate, decay_steps ,batchsize,iteration,epoch

(1)batchsize:批大小,也就是在一次模型迭代/训练过程中所使用的样本数目 (2)iteration:1个iteration等于使用batchsize个样本训练一次;这里相当于 总样本/batchsize 迭代一遍需要迭代多少轮。 (3)epoch:1个epoch等于使用训练集中的全部样本训练一次;也就是训练整个数据集的重复数。 举个例子,训练集有1000个样本,batchsize...

hellocsz的博客 6154

1.2 从“跟网”到“构网”:技术范式的历史性转变

新型电力系统面临"双高"特征带来的稳定性挑战,促使并网控制技术从"跟网型"向"构网型"范式转变。传统跟网型变流器作为受控电流源依赖强电网,存在短路电流能力有限、易失稳等缺陷;而构网型变流器模拟同步发电机特性,作为受控电压源具备自主建立电压/频率、提供虚拟惯性、增强短路容量和改善系统阻尼四大核心能力。这一技术范式转变使变流器从电网跟随者变为构建支撑者,成为解决新能源大规模接入稳定性的关键。

技术工作者 718

rk3588 LightSensor适配从驱动到应用层

本文详细介绍了在RK3588平台上实现光感驱动的开发流程。主要包括:1) 在设备树中配置I2C5接口挂载光感设备;2) 编写内核驱动代码实现光感数据采集;3) HAL层通过ioctl与驱动交互;4) 在BoardConfig.mk中启用相关宏定义;5) Framework层通过AutomaticBrightnessController实现自动亮度调节算法;6) 应用层可通过监听系统设置获取光感变化并调整屏幕亮度。整个流程涵盖了从底层驱动到上层应用的完整实现方案,重点解决了光感设备注册、数据采集传输和自动亮度

tzj1058756809的博客 448

学习率的理解和设置以及指数衰减法

目录: 一、什么是学习率(learning rate) 二、学习率过小或过大的问题 三、学习率的设置 四、指数衰减法(exponential decay) 一、什么是学习率(learning rate): 学习率是指导我们该如何通过损失函数的梯度调整网络权重的超参数,通过设置学习率控制参数更新的速度。 我们在做神经网络时,参数权重是通过不断的训练得出的,那么这个参数每一...

Vici__ 1万+

Flink CDC 中 StartupOptions 模式详解

Flink CDC 的 StartupOptions 模式用于指定作业启动时从源数据读取数据的起始位置,不同的模式适用于不同的业务场景,可满足多样化的数据处理需求,主要有 Initial 模式、Earliest 模式、Latest 模式、SpecificOffset 模式和 Timestamp 模式。

RodJohnsonDoctor的专栏 849

使用tensorflow搭建深层神经网络

在吴恩达老师的《深度学习》第二课第三周的课程中,提及到了多种深度学习框架,包括caffe/caffe2,CNTK,DL4J,Keras,Lasagne,mxnet,paddlepadle,tensorflow,Theano,Torch等等,虽然Andrew说不特别推荐某种框架,但因其在谷歌多年的经历在之后的练习中终究还是使用tensorflow框架。下面我们跟着达叔的思路一步一步构建深层神经网络。...

u013093426的博客 8706

在windows中安装并启动ActiveMQ5.16.2

打开ActiveMQ官网 下载ActiveMQ 点击apache-activemq-5.16.2-bin.zip进行下载 下载发后解压到c盘根目录下 在powershell中输入 ./activemq start启动 ActiveMQ服务 htpp://127.0.0.1:8161访问ActiveMQ控制台 ...

934

【目标追踪】python背景模型减除法原理及其实现

python基于背景模型差法的视频目标追踪帧差法的问题:背景模型差法目标追踪原理1. 基本思路:2. 图例讲解:3. 存在的问题&如何解决:4. 最终效果预览第一步——调用摄像头:1. 使用opencv打开视频or摄像头:2. 读取逐帧图片:第二步——处理图片:1. 转换成灰度图:3. 累加权重重构背景:3. 计算像素差:3. 使用中值滤波和膨胀腐蚀去噪:3.1 中值滤波:3.2 图像腐蚀...

梁瑛平的博客 1947

TensorFlow之深层神经网络 学习总结

作者:jliang https://blog.youkuaiyun.com/jliang3 TensorFlow实战Google深度学习框架学习笔记 说明:以下所有代码使用版本TensorFlow1.4.0或1.12.0版本 import tensorflow as tf print(tf.__version__) 1.12.0 4. 深层神经网络 4.1 深度学习与深层神经网络 维基百科对深度学习的精...

jliang3的博客 410

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

TensorFlow深层神经网络

学习笔记,内容和代码来自书《TensorFlow实战Google深度学习框架》 目录 深度学习与深层神经网络 使用激活函数实现去线性化 如何选择激活函数 多层网络解决异或运算 损失函数 经典损失函数 自定义损失函数 神经网络优化算法 梯度下降算法 神经网络进一步优化 学习率的设置 过拟合问题 滑动平均模型 深度学习与深层神经网络 深度学习是一类通过多层非线性变换对...

mxb1234567的博客 637

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【Tensorflow】TensorFlow深层神经网络学习笔记

TensorFlow深层神经网络学习笔记1. 深度学习与深层神经网络1.1 线性模型的局限性1.2 激活函数实现去线性化1.3 多层网络解决异或运算2. 损失函数定义2.1 经典损失函数2.2 自定义损失函数参考资料 1. 深度学习与深层神经网络 深度学习是一类通过多层非线性变换对高复杂性数据建模算法的合集。 深度学习有两个重要的特性——多层和非线性。所以基本上可以认为深度学习是深层神经网络的代名词。 1.1 线性模型的局限性 在线性模型中,模型的输出为输入的加权和。一个线性模型中通过输入得到输出的函数被称

小哲的博客 751

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

TensorFlow学习笔记(三):深层神经网络

一、深度学习与深层神经网络 维基百科对深度学习的定义为“一层通过多层非线性变换对高复杂性数据建模算法的合集”。实际上可以认为深度学习就是深层神经网络的代名词。深度学习有两个非常重要的特性,多层和非线性。 1. 线性模型的局限性 线性模型的输出为输入的加权和。当模型的输入只有一个时,x和y形成了二维坐标系上的一条直线。当模型有n个输入时,x和y形成了n+1维空间中的一个平面。线性模型的最大特点

以梦为马,不负韶华 1461

[Tensorflow][4]深层神经网络

第四章 深层神经网络 4.1 深度学习与深层网络 深度学习的精确定义:一类通过多层非线性变换对高复杂性数据建模算法的合集 深层神经网络 深层神经网络是实现“多层非线性变换”最常用的一种方法 实际中深度学习基本上就是深层神经网络的代名词 深度学习的两个特性 多层 非线性 4.1.1 线性模型的局限性 线性模型定义:假设...

T0UGH 262

Tensorflow——深层神经网络

一 深度学习与深层神经网络 深度学习有两个非常重要的特性:多层和非线性。 1 线性模型的局限性 线性模型的最大特点是任意线性模型的组合仍然还是线性模型。 只通过线性变换,任意层的全连接神经网络和单层的神经网络模型的表达能力没有任何区别,他们都是线性模型。 如果一个问题可以通过一条直线来划分,那么线性模型就可以用来解决这个问题。 2 激活函数 激活函数的主要作用就是去线性化。 常用...

chang的博客 243

TensorFlow学习笔记——深层神经网络

本文详细讲解了使用神经网络解决实际问题中的各个环节。包括如何设计损失函数,优化神经网络最常用的梯度下降法,最后介绍了如何解决在优化过程中遇到的问题。

日积月累,天道酬勤 779

【Python】TensorFlow第四章 深层神经网络(1)

【Python】TensorFlow第四章 深层神经网络(1) 【例子】TensorFlow 游乐场:http://playground.tensorflow.org/ 直接上代码: 【401】TensorFlow运算 import tensorflow as tf # tensorflow 实现交叉熵 # y_ : 正确结果 # y : 预测结果 # tf.clip_by_value(y, ...

JM_4539的博客 259

Tensorflow训练MNIST数据集(由浅层到深层神经网络的构建和调参)

本文简单介绍了用Tensorflow训练MNIST数据集的神经网络的构建过程以及加深神经网络后的调参过程。

深度学习记录 828

【tensorflow】如何理解深层神经网络(DNN)?(第二课)

搞懂深度学习的原理--深层神经网络的通俗讲解 1、深层神经网络是深度学习的特点。 1.1、因为线性模型有局限性 1.2、所以通过‘激活函数’去线性化 1.3、多层网络的好处---解决异或运算 2、损失函数的定义 2.1、经典损失函数 2.2、自定义损失函数 3.神经网络优化算法 4.神经网络进一步优化 4.1、如何设置学习率? 4.2、过拟合问题 4.3、滑动平均模型 ...

a_123456598的博客 1250
上一篇: TensorFlow学习笔记------前向传播算法知识点
下一篇: python学习笔记:linux基础与python基础
WilliamCode
博客等级 码龄11年 118粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值