《TensorFlow 2.0深度学习算法实战教材》学习笔记(一、人工智能绪论)

人工智能绪论

  1. 人工智能,机器学习,神经网络,深度学习之间关系

    在这里插入图片描述

  2. 机器学习分类

    机器学习可以分为有监督学习(Supervised Learning)、无监督学习(Unsupervised
    Learning)和强化学习(Reinforcement Learning)

    在这里插入图片描述

  • 有监督学习 有监督学习的数据集包含了样本𝒙与样本的标签𝒚,算法模型需要学习到映射𝑓𝜃: 𝒙 → 𝒚,其中𝑓𝜃代表模型函数,𝜃为模型的参数。在训练时,通过计算模型的预测值𝑓𝜃(𝒙)与真实标签𝒚之间的误差来优化网络参数𝜃,使得网络下一次能够预测更精准。常见的有监督学习有线性回归,逻辑回归,支持向量机,随机森林等。

  • 无监督学习 收集带标签的数据往往代价较为昂贵,对于只有样本𝒙的数据集,算法需要自行发现数据的模态,这种方式叫做无监督学习。无监督学习中有一类算法将自身作为监督信号,即模型需要学习的映射为𝑓𝜃: 𝒙 → 𝒙,称为自监督学习(Self-supervised Learning)。在训练时,通过计算模型的预测值𝑓𝜃(𝒙)与自身𝒙之间的误差来优化网络参数𝜃。常见的无监督学习算法有自编码器,生成对抗网络等。

  • 强化学习 也称为增强学习,通过与环境进行交互来学习解决问题的策略的一类算法。与有监督、无监督学习不同,强化学习问题并没有明确的“正确的”动作监督信号,算法需要与环境进行交互,获取环境反馈的滞后的奖励信号,因此并不能通过计算动作与“正确动作”之间的误差来优化网络。常见的强化学习算法有DQN,PPO 等。

  1. 深度学习与其它算法比较

    在这里插入图片描述

  2. 浅层神经网络发展时间线

在这里插入图片描述
5. 深度神经网络发展时间线
在这里插入图片描述
6. 深度学习在计算机视觉方面的应用

  • 图片识别(Image Classification) 是常见的分类问题。神经网络的输入为图片数据,输出值为当前样本属于每个类别的概率,通常选取概率值最大的类别作为样本的预测类别。图片识别是最早成功应用深度学习的任务之一,经典的网络模型有VGG 系列、Inception 系列、ResNet 系列等。
  • 目标检测(Object Detection) 是指通过算法自动检测出图片中常见物体的大致位置,通常用边界(Bounding box)表示,并分类出边界框中物体的类别信息,如图 1.15 所示。常见的目标检测算法有RCNN,Fast RCNN,Faster RCNN,Mask RCNN,SSD,YOLO 系列等。
  • 语义分割(Semantic Segmentation) 是通过算法自动分割并识别出图片中的内容,可以将语义分割理解为每个像素点的分类问题,分析每个像素点属于物体的类别,如图1.16 所示。常见的语义分割模型有FCN,U-net,SegNet,DeepLab 系列等。

在这里插入图片描述

  • 视频理解(Video Understanding) 随着深度学习在2D 图片的相关任务上取得较好的效果,具有时间维度信息的3D 视频理解任务受到越来越多的关注。常见的视频理解任务有视频分类,行为检测,视频主体抽取等。常用的模型有C3D,TSN,DOVF,TS_LSTM等。

  • 图片生成(Image Generation) 通过学习真实图片的分布,并从学习到的分布中采样而获得逼真度较高的生成图片。目前主要的生成模型有VAE 系列,GAN 系列等。其中GAN 系列算法近年来取得了巨大的进展,最新GAN 模型产生的图片样本达到了肉眼难辨真伪的效果,如图 1.17 为GAN 模型的生成图片。

  • 除了上述应用,深度学习还在其他方向上取得了不俗的效果,比如艺术风格迁移(图1.18),超分辨率,图片去燥/去雾,灰度图片着色等等一系列非常实用酷炫的任务,限于篇幅,不再敖述。
    在这里插入图片描述

  1. 深度学习在自然语言处理方面的应用

    • 机器翻译(Machine Translation):常用的机器翻译模型有Seq2Seq,BERT,GPT,GPT-2 等,其中OpenAI 提出的GPT-2 模型参数量高达15 亿个,甚至发布之初以技术安全考虑为由拒绝开源GPT-2 模型。

    • 聊天机器人(Chatbot) :聊天机器人也是自然语言处理的一项主流任务,通过机器自动与人类对话,对于人类的简单诉求提供满意的自动回复,提高客户的服务效率和服务质量。常应用在咨询系统、娱乐系统,智能家居等中。

  2. 深度学习在强化学习方面的应用

    • 虚拟游戏
    • 机器人
    • 自动驾驶
  3. 主流框架

    • Theano 是最早的深度学习框架之一,由Yoshua Bengio 和Ian Goodfellow 等人开发,是一个基于Python 语言、定位底层运算的计算库,Theano 同时支持GPU 和CPU 运算。由于Theano 开发效率较低,模型编译时间较长,同时开发人员转投TensorFlow等原因,Theano 目前已经停止维护。
    • Scikit-learn 是一个完整的面向机器学习算法的计算库,内建了常见的传统机器学习算法支持,文档和案例也较为丰富,但是Scikit-learn 并不是专门面向神经网络而设计的,不支持GPU 加速,对神经网络相关层实现也较欠缺。
    • Caffe 由华人博士贾扬清在2013 年开发,主要面向使用卷积神经网络的应用场合,并不适合其他类型的神经网络的应用。Caffe 的主要开发语言是C++,也提供Python 语言等接口,支持GPU 和CPU。由于开发时间较早,在业界的知名度较高,2017 年Facebook 推出了Caffe 的升级版本Cafffe2,Caffe2 目前已经融入到PyTorch 库中。
    • Torch 是一个非常优秀的科学计算库,基于较冷门的编程语言Lua 开发。Torch 灵活性较高,容易实现自定义网络层,这也是PyTorch 继承获得的优良基因。但是由于Lua语言使用人群较小,Torch 一直未能获得主流应用。
    • MXNET 由华人博士陈天奇和李沐等人开发,已经是亚马逊公司的官方深度学习框架。采用了命令式编程和符号式编程混合方式,灵活性高,运行速度快,文档和案例也较为丰富。
    • PyTorch 是Facebook 基于原有的Torch 框架推出的采用Python 作为主要开发语言的深度学习框架。PyTorch 借鉴了Chainer 的设计风格,采用命令式编程,使得搭建网络调试网络非常方便。尽管PyTorch 在2017 年才发布,但是由于精良紧凑的接口设计,PyTorch 在学术界获得了广泛好评。在PyTorch 1.0 版本后,原来的PyTorch 与Caffe2进行了合并,弥补了PyTorch 在工业部署方面的不足。总的来说,PyTorch 是一个非常优秀的深度学习框架。
    • Keras 是一个基于Theano 和TensorFlow 等框架提供的底层运算而实现的高层框架,提供了大量方便快速训练,测试的高层接口,对于常见应用来说,使用Keras 开发效率非常高。但是由于没有底层实现,需要对底层框架进行抽象,运行效率不高,灵活性一般。
    • TensorFlow 是Google 于2015 年发布的深度学习框架,最初版本只支持符号式编程。得益于发布时间较早,以及Google 在深度学习领域的影响力,TensorFlow 很快成为最流行的深度学习框架。但是由于TensorFlow 接口设计频繁变动,功能设计重复冗余,符号式编程开发和调试非常困难等问题,TensorFlow 1.x 版本一度被业界诟病。2019年,Google 推出TensorFlow 2 正式版本,将以动态图优先模式运行,从而能够避免TensorFlow 1.x 版本的诸多缺陷,已获得业界的广泛认可。
  4. 框架比较

  • TensorFlow 和PyTorch 框架是业界使用最为广泛的两个深度学习框架,TensorFlow 在工业界拥有完备的解决方案和用户基础,PyTorch 得益于其精简灵活的接口设计,可以快速设计调试网络模型,在学术界获得好评如潮。
  • TensorFlow 与Keras 之间的联系与区别。Keras 可以理解为一套高层API 的设计规范,Keras 本身对这套规范有官方的实现,在TensorFlow 中也实现了这套规范,称为tf.keras 模块,并且tf.keras 将作为TensorFlow 2 版本的唯一高层接口,避免出现接口重复冗余的问题
  • TensorFlow 2 与1.x:TensorFlow 2 支持动态图优先模式(在计算时可以同时获得计算图与数值结果,可以代码中调试实时打印数据,搭建网络也像搭积木一样,层层堆叠,非常符合软件开发思维);TensorFlow 1.x使用符号式编程(这种先创建计算图后运行的编程方式叫做符号式编程)。动态图模型开发效率高,但是运行效率可能不如静态图模式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汀桦坞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值