深度学习进阶之路 - 从迁移学习到强化学习

news/2024/5/18 22:54:02 标签: 深度学习, 迁移学习, 机器学习, 强化学习, DRL

一. 深度学习及其适用范围

       大数据造就了深度学习,通过大量的数据训练,我们能够轻易的发现数据的规律,从而实现基于监督学习的数据预测。

        

       没错,这里要强调的是基于监督学习的,也是迄今为止我在讲完深度学习基础所给出的知识范围。

       基于卷积神经网络的深度学习(包括CNN、RNN),主要解决的领域是 图像、文本、语音,问题聚焦在 分类、回归。然而这里并没有提到推理,显然我们用之前的这些知识无法造一个 AlphaGo 出来,通过一张图来了解深度学习的问题域:

        

       2016年的 NIPS 会议上,吴恩达 给出了一个未来 AI方向的技术发展图,还是很客观的:

       

        毋庸置疑,监督学习是目前成熟度最高的,可以说已经成功商用,而下一个商用的技术 将会是 迁移学习(Transfer Learning),这也是 Andrew 预测未来五年最有可能走向商用的 AI技术。


二. 迁移学习(举一反三的智能)

       迁移学习解决的问题是 如何将学习到知识 从一个场景迁移到另一个场景? 

       拿图像识别来说,从白天到晚上,从 Bottom View 到 Top View,从冬天到夏天,从识别中国人到 识别外国人……

       这是一个普遍存在的问题,问题源自于你所关注的场景缺少足够的数据来完成训练,在这种情况下你需要 通过迁移学习来实现 模型本身的泛化能力

       借用一张示意图(From:A Survey on Transfer Learning)来进行说明:

        

       实际上,你可能在不知不觉中使用到了 迁移学习,比如所用到的预训练模型,在此基础所做的 Fine-Turning,再比如你做 Tracking 所用的 online learning。

       迁移学习的必要性和价值体现在:

1. 复用现有知识域数据,已有的大量工作不至于完全丢弃;

2. 不需要再去花费巨大代价去重新采集和标定庞大的新数据集,也有可能数据根本无法获取;

3. 对于快速出现的新领域,能够快速迁移和应用,体现时效性优势;

       关于迁移学习算法 有许多不同的思路,我们总结为:

1. 通过 原有数据 和 少量新领域数据混淆训练;

2. 将原训练模型进行分割,保留基础模型(数据)部分作为新领域的迁移基础;

3. 通过三维仿真来得到新的场景图像(OpenAI的Universe平台借助赛车游戏来训练);

4. 借助对抗网络 GAN 进行迁移学习 的方法;

        


三. 强化学习(反馈,修正)

       强化学习全称是 Deep Reinforcement Learning(DRL),其所带来的推理能力 是智能的一个关键特征衡量,真正的让机器有了自我学习、自我思考的能力,毫无疑问Google DeepMind 是该领域的执牛耳者,其发表的 DQN 堪称是该领域的破冰之作(有时间我们会在后续章节讨论)。

       

       目前强化学习主要用在游戏 AI 领域(有我们老生常谈的 AlphaGo)和 机器人领域,除此之外,Google宣称通过 强化学习 将数据中心的冷却费用降低了 40%,虽无法考证真伪,但我愿意相信他的价值。

       强化学习 是个复杂的命题,Deepmind 大神 David Silver 将其理解为这样一种交叉学科:

        

       实际上,强化学习是一种探索式的学习方法,通过不断 “试错” 来得到改进,不同于监督学习的地方是 强化学习本身没有 Label,每一步的 Action 之后它无法得到明确的反馈(在这一点上,监督学习每一步都能进行 Label 比对,得到 True or False)。

       强化学习是通过以下几个元素来进行组合描述的:

对象(Agent)

     也就是我们的智能主题,比如 AlphaGo。

环境(Environment)

     Agent 所处的场景-比如下围棋的棋盘,以及其所对应的状态(State)-比如当前所对应的棋局。

     Agent 需要从 Environment 感知来获取反馈(当前局势对我是否更有利)。

动作 (Actions) 

    在每个State下,可以采取什么行动,针对每一个 Action 分析其影响。

奖励 (Rewards) 

    执行 Action 之后,得到的奖励或惩罚,Reward 是通过对 环境的观察得到。

       通过强化学习,我们得到的输出就是:Next Action?下一步该怎么走,这就是 AlphaGo 的棋局,你能够想到,对应围棋的 Action 数量吗?

       关于强化学习的具体算法,大多从 马尔可夫链 讲起,本节只做普及性说明,后续会考虑对具体算法进行展开。


http://www.niftyadmin.cn/n/904623.html

相关文章

百度AI之百度图像识别java版本使用

百度AI之百度图像识别java版本使用\ 官网 http://ai.baidu.com/ 创建应用 查看 appid&#xff0c;appkey&#xff0c;sk 下载sdk https://ai.baidu.com/sdk#vis 查看开发文档 http://ai.baidu.com/docs#/ImageClassify-Java-SDK/top sdk的jar包 或者通过maven形式导入 <depe…

目标检测 - Tensorflow Object Detection API

一. 找到最好的工具“工欲善其事&#xff0c;必先利其器”&#xff0c;如果你想找一个深度学习框架来解决深度学习问题&#xff0c;TensorFlow 就是你的不二之选&#xff0c;究其原因&#xff0c;也不必过多解释&#xff0c;看过其优雅的代码架构和工程化实现之后&#xff0c;相…

DM8168硬件平台的简介

DM8168硬件平台简介 作者&#xff1a;上海凯视力成信息科技有限公司 概述 本模块以Ti TMS320DM8168 Davinci数字媒体处理器为核心&#xff0c;该处理器此器件将ARM Cortex A8 RISC CPU、Ti C674x VLIW浮点DSP内核、高清视频及音频协处理器、3D图形加速引擎以及高度集成的外设集…

Java-笔记17-复习

程序、进程、线程的理解01. 程序(programm) 概念&#xff1a;是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码。02. 进程(process) 概念&#xff1a;程序的一次执行过程&#xff0c;或是正在运行的一个程序。 说明&#xff1a;进程作为资源分配的单位&a…

Faster R-CNN改进篇(一): ION ● HyperNet ● MS CNN

一. 源起于Faster深度学习于目标检测的里程碑成果&#xff0c;来自于这篇论文&#xff1a;Ren, Shaoqing, et al. “Faster R-CNN: Towards real-time object detection with region proposal networks.” Advances in Neural Information Processing Systems. 2015.也可以参考…

TMDS协议

1 概述 1.1 连接结构 图1 TMDS连接结构 数据流中包含了像素和控制数据&#xff0c;发送器在任何给定的输入时钟周期&#xff0c;到底是编码像素数据还是控制数据取决于数据使能信号DE&#xff0c;DE有效时&#xff0c;指示像素数据要被发送&#xff0c;注意&#xff0c;当…

Subprocess.Popen() 使用问题解决方案

from subprocess import Popen,PIPE 1.光标处于闪烁等待状态&#xff0c;不能实时输出测试cmd界面. [原因]&#xff1a;使用communicate()函数&#xff0c;需要等脚本执行完才返回。 def communicate(self, inputNone): """Interact with process: Send data to…