热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DeepLearning——Readingnotes

先导概念人工智能,深度学习,机器学习关系人工智能给个定义:努力将通常由人类完成的治理任务自动化符号主义人工智能适用于解决定义明确的逻辑问题

先导概念

人工智能,深度学习,机器学习关系

人工智能

  • 给个定义:努力将通常由人类完成的治理任务自动化
  • 符号主义人工智能适用于解决定义明确的逻辑问题,但是难以给出明确的规则来解决更加复杂模糊的问题,图像分析,语音识别和语言翻译,因此催生了一种新的方法来代替这种符号主义人工智能,就是机器学习。

深度学习

机器学习

  • 机器学习的概念来自于图灵的问题:对于计算机而言,能否自我学习执行特定任务的方法,假如不存在预先设定的数据处理规则,计算机能否通过观察数据去找出某种规则
  • 旧时,经典的程序时通过输入规则和需要根据这些规则去进行处理数据,系统会输出我们想要的答案,但是对于机器学习而言,人们是输入数据和从这些数据中预期得到的答案,系统输出的是规则,并且这些规则可以往后去适用于新的数据,让计算机自己得出答案。
  • 因此,机器学习系统,是训练出来的,不是由明确的程序规则预先写出来的。
  • 后来的迅速发展得益于更强大的硬件和更庞大的数据集的支持。

从数据中学习表示

  • 机器学习的三个要素:输入数据点,预测输出的示例,衡量算法效果好坏的方法
  1. 输入数据点
  • 图像,语音
  1. 预期输出的示例
  • 语音——文本,图像——标签结果
  1. 衡量算法效果好坏的方法
  • 为了计算算法的当前输出与预期输出的差距,这个结果是一个反馈信号,用来调节算法的工作方式的。
    机器学习的学习就是指,寻找更好数据表示的自动搜索过程。
  • 所有的机器学习算法都包含着自动寻找的一种变换:这种变换可以根据任务将数据转化为更加有用的表示,这些操作是一种坐标变换,可以使线性投影,可以是平移,可以是非线性操作。
  • 由此引出机器学习的技术定义——在预先定义好的可能性空间中,利用反馈信号的指引去寻找输入数据的有用表示。

深度学习之深度

  • 深度在于使用了一片连续的表示层,还可以看做那么多层是在做多级信息蒸馏操作

基本的工作原理

  • 损失函数式用来衡量输出值和预期值之间的距离,也叫目标函数,同时利用这个距离值,去作为反馈信号对权重值进行微调,进而降低对应的损失值,也就是实现的所谓反向传播的算法

机器学习简史

概率建模

  • 早期的机器学习形式当中,朴素贝叶斯算法,是一种基于应用贝叶斯定理的机器学习分类器,假设了输入数据的特征都是独立的,所以才叫朴素。另一个是逻辑回归,被叫做现在机器学习的hello world,是一种分类,不是回归。

早期的神经网络

  • 20年代已经出现单一神经元结构,在80年代中期发生了些许变化,发现出了反向传播算法,一种利用梯度下降优化来训练一系列参数化运算链的方法。89年第一次,于贝尔实验室实现了神经网络的应用,将卷积神经网络的早期思想和反向传播算法相结合,取名LeNet的网络。

核方法

  • 90年代出现一种分类方法,其中最著名的是支持向量机SVM,其现代公式是90年代初在贝尔实验室提出的,发表于1995年。
  • SVM——目标是通过在属于两个不同类别的两组数据点之间找到良好的决策边界。
  • 为了让其思路能够落地,需要利用一些核技巧,只需要在新空间中计算点对之间的距离,利用核函数可以高效完成这种计算,将原始空间中的任意两点映射为这两点在目标表示空间中的距离,避免了对新表示进行直接计算。

决策树,随机森林和梯度提升机

  • 决策树——可以对输入数据点进行分类或者根据给定输入来预测输出值。
  • 随机森林引入了一种健壮且实用的决策树学习方法,先构建许多决策树,将他们输出集中在一起。
  • 梯度提升方法通过迭代地训练新模型来专门解决之前模型的弱点,从而改进任务机器学习模型的效果

回到神经网络

  • 标致事件是12年图像分类大赛跟hinton有关的小组中实现了83.6%的top-5精度,15年去到了96.4%

深度学习的特征

  • 深度学习使得特征工程完全自动化,曾经是机器学习工作流程中的最关键的一步。
  • 让初始输入数据使用诸如SVM和决策树进行处理,必须手动去为数据设计好表示层,这叫特征工程,于此相反的是,深度学习完全将这个步骤自动化了。
  • 深度学习从数据中学习的两个基本特征:1.通过渐进的逐层的方式形成越来越复杂的表示,2.对中间这些渐进的表示共同进行学习

神经网络的数学基础

初窥

  • 分类问题中某个类别叫类,数据点叫做样本,某个样本对应的类叫做标签

神经网络的数据表示

张量的维度通常叫轴。

标量——0D张量

向量——1D张量

矩阵——2D张量

3D张量和更高维张量

###张量关键属性

  • 轴的个数(阶)——
  • 形状
  • 数据类型

现实世界数据张量

  • 时间序列数据——3D张量
  • 图像——4D张量
  • 视频——5D张量

深度学习的集合解释

  • 神经网络完全是由一些张量运算组成的,这些张亮运算只是输入数据的几何变换,因此,可以将神经网络解释为高维空间中非常复杂的集合变换。
  • 一个形象的比喻——一张纸放在另一张上,一起揉成一个小球,此为输入的数据,每张纸对应于分类问题的一个类别,神经网络要做的就是找到可以让纸球恢复平整的变换。
  • 为复杂的、高度折叠的数据流形找到简洁的表示,深度学习擅长于将复杂的集合变换逐步分解为一长串基本的几何变换,网络的每一层都通过变换使得数据解开一点点,许多层叠在一起,就可实现很复杂的解开过程。

梯度下降

###随机梯度下降

  • 小批量随机梯度下降流程
  1. 抽取训练样本x和对应目标y组成的数据批量
  2. 在x上运行网络,得到预测值y_pred
  3. 计算网络在这批数据上的损失,用于衡量y_pred和y之间的距离
  4. 计算损失相对于网络参数的梯度【一次反向传播】
  5. 将参数沿着梯度的反方向移动一点
  • 随机是指每批数据都是随机抽取的
  • 小批量SGC算法的一个变体是每次迭代时只抽取一个样本和目标,不是抽取一批数据,这叫真SGD。每一次迭代都在所有数据上运行,叫做批量SGD,计算代价大。
  • 此为最简单的一维单个参数的示意图
  • SGD还会有很多变体,区别在于计算下一次权重更新时候还要考虑上一次权重更新,而不是仅仅考虑当前梯度值,带动量的SGD,Adagrad,RMSProp,这些变体称为优化方法,或者叫优化器
  • 动量解决了两个问题:收敛速度和局部极小点;灵感来源于物理学,如果小球的动量足够 大,就不会卡在峡谷内,最终会到达全局最小点。,就是更新参数w不仅要考虑当前的梯度值,还要考虑上一次的参数更新

#神经网络入门 ##神经网络剖析

  • 简单的向量数据保存在2D张量——全连接层
  • 序列数据保存在3D张量——循环层
  • 图像数据保存在4D张量中——二维卷积层

模型:层构成给的网络

  • 网络拓扑结构
  1. 双分支网络
  2. 多头网络
  3. Inception模块
  • 网络拓扑结构定义了一个假设空间,在预先定义好的可能性空间中,利用反馈信号的指引来寻找输入数据的有用表示。,选定了网络拓扑结构,意味着将可能性空间限定为一系列特定的张量运算将输入数据映射为输出数据,然后,需要为这些张量运算的权重张量找到一组合适的值。

损失函数与优化器:配置学习过程的关键

  • 在确定了网络架构之后,需要选定两个参数——损失函数优化器(决定如何基于损失函数对网络进行更新,执行的是随机梯度下降的某个变体)
  • 二分类——二元交叉熵
  • 多分类——分类交叉熵
  • 回归问题——均方误差
  • 序列学习——联结主义时序分类

##Keras

概述

  • 流程
  1. 定义好训练数据:输入张量和目标张量
  2. 定义层组成的网络,将输入映射到目标
  3. 配置学习过程,选择损失函数,优化器和需要监控的指标
  4. 调用模型的 fit方法在训练数据上进行迭代

机器学习基础

机器学习的四个分支

监督学习

  • 给定一组样本,可以学会将输入数据映射到已知目标
  • 监督学习的种类
  1. 序列生成——
  2. 语法树预测——给定一个句子,预测分解生成的语法树
  3. 目标检测——给定一张图像,在途中特定目标的周围画一个边界框。也可以是一个分类问题或者分类和回归联合的问题
  4. 图像分割——给定一张图像,在特定的物体上画一个像素级的掩模(mask)

无监督学习

  • 无监督学习指的是在没有目标的情况下寻找输入数据的有趣交换,目的在于数据可视化,数据压缩,数据去燥或者更好理解数据中的相关性。
  • 普遍的无监督——降维和聚类

自监督学习

  • 没有人工标注的标签的监督学习,也可以说成是没有人类参与的监督学习。,标签依然存在,但是从输入数据中生成,通常使用启发式算法生成的。
  • 自编码器是其中一个例子。另一个例子使视频过去的帧预测下一帧,文本中前面出现的词来预测下一个词。

强化学习

  • 强化学习,智能体接收有关其环境的信息,并且学会选择使某种奖励最大化的行动。
  • 例子——神经网络会观察视频游戏的屏幕并输出游戏操作,目的是尽可能得到高分,这种网络可以通过强化学习来训练。

评估机器学习模型

  • 过拟合,随着训练的进行,模型在训练数据上的性能始终在提高,但在前所未见的数据上的性能不再变化或者开始下降。
  • 机器学习的目的是得到可以泛化的模型,即在前所未见的数据上表现很好的模型,而过拟合则是核心难点。

训练集、验证集合测试集

  • 在训练数据上训练模型,在验证数据上评估模型,找到了最佳参数,舅仔测试数据上最后测试一次。
  • 需要三个集的一个原因是,在某个参数空间中寻找良好的模型配置,因此,基于模型在验证集上的性能来调节模型配置,会很快导致模型在验证集上过拟合,即使没有在验证集上直接训练模型也会如此,造成这一现象关键在于信息泄露。
  • 简单的三种经典评估方法
  1. 简单的流程验证——流出一定比例数据做测试集,剩余数据上训练模型,然后在测试集上评估模型;缺点在于如果可用的数据很少,可能验证集和测试集包含的样本就太少,从而无法在统计学上代表数据
  2. K折验证
  3. 打乱数据的重复K折验证

评估模型的注意事项

  • 数据代表性——数据的随机打乱
  • 时间箭头——时间序列相关的数据,在划分数据的时候就不应该随机打乱数据了,会造成时间泄露
  • 数据冗余——数据中某些数据点出现了两次的话,打乱数据并划分成训练集和验证集会导致训练集和验证集之间的数据冗余

数据预处理、特征工程和特征学习

神经网络的数据预处理

  • 预处理的目的在于使得原始数据更适于神经网络处理,包括向量化、标准化、处理缺失值和特征提取。
  • 向量化——首先将数据转换为张量,此为数据向量化
  • 值标准化——将每个也正分别做标准化,使得均值为0标准差为1,过多异质数据输入神经网络是不安全的,会导致较大的梯度更新,进而导致网络无法收敛。输入数据最好具有如下特征:取值较小(大部分值应该在0~1之间)和同质性(所有特征的取值都应该在大致相同的范围内)
  • 处理缺失值——缺失值设为0对神经网络会偏于安全,网络会从数据中学到0是意味着缺失数据,会湖忽略这个值

特征工程

  • 特征工程是指将数据输入模型之前,利用自己关于数据和机器学习算法的知识对数据进行硬编码的变换,以改善模型的效果。
  • 特征工程的本质——用更简单的方式表述问题,从而能使得问题变得更容易,通常需要深入理解问题。
  • 曾经的特征工程是重要的,因为经典的浅层算法没有足够大的假设空间来自己学习有用的标识。但是对于现代的深度学习,大部分的特征工程变得不需要了。

转:https://juejin.im/post/5bd1ca82e51d457aba5e8840



推荐阅读
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 从高级程序员到CTO的4次能力跃迁!如何选择适合的技术负责人?
    本文讲解了从高级程序员到CTO的4次能力跃迁,以及如何选择适合的技术负责人。在初创期、发展期、成熟期的每个阶段,创业公司需要不同级别的技术负责人来实现复杂功能、解决技术难题、提高交付效率和质量。高级程序员的职责是实现复杂功能、编写核心代码、处理线上bug、解决技术难题。而技术经理则需要提高交付效率和质量。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
author-avatar
ARUAN地盘_740
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有