神经网络剖析
 
训练神经网络主要围绕以下四个方面:
  • 层,多个层组合成网络(或模型)
  • 输入数据和相应的目标
  • 损失函数,即用于学习的反馈信号
  • 优化器,决定学习过程如何进行
 
如图 3-1 所示:多个层链接在一起组成了网络,将输入数
据映射为预测值。然后损失函数将这些预测值与目标进行比较,得到损失值,用于衡量网络预
测值与预期结果的匹配程度。优化器使用这个损失值来更新网络的权重。
 
 
层:深度学习的基础组件
层是一个数据处理模块,将一个或多个输入张量转换为一个或多个输出张量。
有些层是无状态的,但大多数的层是有状态的,即层的权重。
权重是利用随机梯度下降学到的一个或多个张量,其中包含网络的知识。
 
不同的张量格式与不同的数据处理类型需要用到不同的层。
  1. 简单的向量数据保存在形状为 (samples, features) 的 2D 张量中,通常用密集连接层[ 也
叫全连接层或密集层,对应于 Keras 的 Dense 类]来处理。
  1. 序列数据保存在形状为 (samples, timesteps, features) 的 3D 张量中,通常用循环
层( recurrent layer,比如 Keras 的 LSTM 层)来处理。
  1. 图像数据保存在 4D 张量中,通常用二维卷积层( Keras 的 Conv2D)来处理。
 
模型:层构成的网络
深度学习模型是层构成的有向无环图。
常见的网络拓扑结构:
1.线性堆叠
2.双分支( two-branch)网络
3.多头( multihead)网络
4.Inception 模块
 
损失函数( 目标函数)
在训练过程中需要将其最小化。它能够衡量当前任务是否已成功完成。
 
优化器
决定如何基于损失函数对网络进行更新。它执行的是随机梯度下降( SGD)
的某个变体。
 
如何选择损失函数
  • 对于二分类问题,你可以使用二元交叉熵( binary crossentropy)损失函数;
  • 对于多分类问题,可以用分类交叉熵( categorical crossentropy)损失函数;
  • 对于回归问题,可以用均方误差( mean-squared error)损失函数;
  • 对于序列学习问题,可以用联结主义时序分类( CTC, connectionist temporal classification)损失函数,
 
 
 
 

Python深度学习读书笔记-4.神经网络入门的更多相关文章

  1. Python深度学习读书笔记-3.神经网络的数据表示

    标量(0D 张量) 仅包含一个数字的张量叫作标量(scalar,也叫标量张量.零维张量.0D 张量).在Numpy 中,一个float32 或float64 的数字就是一个标量张量(或标量数组).你可 ...

  2. Python深度学习读书笔记-1.什么是深度学习

    人工智能 什么是人工智能.机器学习与深度学习(见图1-1)?这三者之间有什么关系?

  3. Python深度学习读书笔记-5.Keras 简介

    Keras 重要特性 相同的代码可以在 CPU 或 GPU 上无缝切换运行. 具有用户友好的 API,便于快速开发深度学习模型的原型. 内置支持卷积网络(用于计算机视觉).循环网络(用于序列处理)以及 ...

  4. Python深度学习读书笔记-2.初识神经网络

    MNIST 数据集 包含60 000 张训练图像和10 000 张测试图像,由美国国家标准与技术研究院(National Institute of Standards and Technology,即 ...

  5. Python深度学习读书笔记-6.二分类问题

    电影评论分类:二分类问题   加载 IMDB 数据集 from keras.datasets import imdb (train_data, train_labels), (test_data, t ...

  6. 深度学习读书笔记之RBM(限制波尔兹曼机)

    深度学习读书笔记之RBM 声明: 1)看到其他博客如@zouxy09都有个声明,老衲也抄袭一下这个东西 2)该博文是整理自网上很大牛和机器学习专家所无私奉献的资料的.具体引用的资料请看参考文献.具体的 ...

  7. [1天搞懂深度学习] 读书笔记 lecture I:Introduction of deep learning

    - 通常机器学习,目的是,找到一个函数,针对任何输入:语音,图片,文字,都能够自动输出正确的结果. - 而我们可以弄一个函数集合,这个集合针对同一个猫的图片的输入,可能有多种输出,比如猫,狗,猴子等, ...

  8. 深度学习课程笔记(一)CNN 卷积神经网络

    深度学习课程笔记(一)CNN 解析篇 相关资料来自:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17_2.html 首先提到 Why CNN for I ...

  9. 关于python深度学习网站

      大数据文摘作品,转载要求见文末 编译团队|姚佳灵 裴迅 简介 ▼ 深度学习,是人工智能领域的一个突出的话题,被众人关注已经有相当长的一段时间了.它备受关注是因为在计算机视觉(Computer Vi ...

随机推荐

  1. 9.css3动画-2D/3D变形--trasform

    transform: None不转换. Translate(x,y)通过设置X轴的值进行移动. translateY(y)通过设置Y轴的值进行移动. Scale(x,y)定义2D缩放. ScaleX( ...

  2. Win7安装Visual Studio 2019闪退问题

    最近在Win7 系统上安装最新版的VS2019发现 每次在这个画面之后就闪退了,即便换了台电脑也是一样的情况,于是我意识到,这应该是系统本身的问题 经过调查发现是只需要安装两个更新就可以了 这两个更新 ...

  3. linux命令详解——tee

    tee 重定向输出到多个文件 在执行Linux命令时,我们既想把输出保存到文件中,又想在屏幕上看到输出内容,就可以使用tee命令 要注意的是:在使用管道线时,前一个命令的标准错误输出不会被tee读取. ...

  4. laravel5.8 源码分析(1) Route

    https://learnku.com/docs/laravel/5.8 源码路径 vendor\laravel\framework\src\Illuminate\Routing\Router.php ...

  5. laravel-admin利用ModelTree实现对分类信息的管理

    根据laravel的基本操作步骤依次完成如下操作:主要是参考laravel-admin内置的Menu菜单管理的功能,利用ModelTree实现业务中的Tree数据管理. 1. 创建模型 php art ...

  6. Qualcomm_Mobile_OpenCL.pdf 翻译-4-Adreno OpenCL的程序开发

    这章将简要讨论一些开发Adreno OpenCL应用程序的基本要求,下面将会介绍如何调试和统计程序性能. 4.1  安卓平台上开发OpenCL程序 目前,Adreno GPU主要是在安卓操作系统和在部 ...

  7. 理解BurpSuit Intruder几种攻击方式

    Intruder标签下有四种攻击方式 Sniper Battering Ram Pitchfork Cluster Bomb 假设用户名密码词典分别如下: user1,user2,usre3 pass ...

  8. Codeforces Round #606 Div. 2 比赛总结

    比赛情况 bq. A题 Wrong Answer on test 2 , E题sb题没切.bqbqbq. 比赛总结 bq. 那就直接上题解吧!^-^ A 数位dp,分类讨论,注意细节. Talk is ...

  9. WebSoket的简单用法

    第一步,在客户端配置 <script> var websocket; if ('WebSocket' in window) { websocket = new WebSocket('ws: ...

  10. selenium操作下拉选和网页提示框

    import time from selenium import webdriver from selenium.webdriver.support.select import Select#处理下拉 ...