目的:使一个3关节(髋骨、膝盖、脚踝)小人学会沿直线走路。
方法:1、对于小人建模;2、使用3层人工神经网络训练小人走路;3、对于每次训练结果评估,奖惩神经网络调整权重。
演示了一个使用深度强化学习(deep deterministicpolicy Gradient,DDPG)算法控制仿人机器人运动的例子。采用Simscape多体系统对机器人进行了仿真™在训练过程中,控制策略是使用强化学习工具箱完成的。
在本视频中,概述Simulink模型强化学习的设置、培训和评估。首先,他介绍了如何为强化学习问题选择状态、动作和奖励函数。然后介绍了神经网络的结构和训练算法参数。最后,展示训练结果,并讨论了强化学习的优缺点。
environment:三轴机器人的行走,并作为神经网络的奖惩;
神经网络:输入当前人的足迹坐标,输出三轴转矩;
如何训练神经网络:除了实际控制人前进的神经网络“actor”,还有一个修正神经网络“critic”,用来估计“actor”网络的正确性并评价,给出奖励。
仿真环境matlab2019a,‘walking robot’模拟3D小人,'RL agent'为两个神经网络。
'calculate reward'功能框内部结构
使用m文件创建神经网络。
除了自己写m文件创建神经网络的方法,还以用图形界面形式创建,比如‘actor network’动作神经网络,用apps‘deep network designer’打开,自己创建的神经网络模型
开始仿真,训练神经网络,使小人自己学会沿直线走路。三个观察奖惩参数,蓝色点表示每次训练得到的奖惩,红色点表示平均奖惩(当红色线平稳表示奖惩平稳意味着小人走路平稳),绿色点表示估计的初始值?
经过3500次训练后,小人学会走路。
人工智能:广义的使机器模拟人的行为
机器学习:机器从人类输入的经验数据中训练
深度学习:机器自我训练
发展历史:
控制论→人工神经网络→深度学习
更多的精准数据、GPU的计算能力提高、更复杂的神经网络,促进深度学习发展
是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift-invariant classification),因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)”。
对卷积神经网络的研究始于二十世纪80至90年代,时间延迟网络和LeNet-5是最早出现的卷积神经网络 ;在二十一世纪后,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被应用于计算机视觉、自然语言处理等领域。
卷积神经网络仿造生物的视知觉(visual perception)机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化(grid-like topology)特征,例如像素和音频进行学习、有稳定的效果且对数据没有额外的特征工程(feature engineering)要求 。
学习工具和平台软件等
学习一般步骤
2种深度神经网络
CNN各层
深度学习的应用
历史
在具体应用领域也出现了不少成功的模型,比如
图像/视频处理:
计算机视觉预处理2-D:计算机视觉需要图像预处理,比如特征提取,包括特征点,边缘和轮廓之类。特征点以前成功的就是SIFT/SURF/FAST之类,现在完全可以通过CNN形成的特征图来定义。边缘和轮廓的提取是一个非常tricky的工作,细节也许就会被过强的图像线条掩盖,纹理(texture)本身就是一种很弱的边缘分布模式,分级(hierarchical)表示是常用的方法,俗称尺度空间(scale space)。以前做移动端的视觉平台,有时候不得不把一些图像处理功能关掉,原因是造成了特征畸变。现在CNN这种天然的特征描述机制,给图像预处理提供了不错的工具,它能将图像处理和视觉预处理合二为一。
2.5-D计算机视觉部分(不是全3-D)。涉及到视差或者2-D运动的部分一般称为2.5-D空间。这个部分和前面的2-D问题是一样的,作为重建任务它也是逆问题,需要约束条件求解优化解,比如TV,GraphCut。一段时间(特别是Marr时代)计算机视觉的工作,就是解决约束条件下的优化问题。后来,随机概率和贝叶斯估计大行其事,约束条件变成了先验知识(prior)。像SVM, Boosting,Graphical Model,Random Forest,BP(Belief Propagation),CRF(Conditional Random Field),Mixture of Gaussians,MCMC,Sparse Coding都曾经是计算机视觉的宠儿,现在轮到CNN。可以说深度学习是相当“暴力”的,约束、先验知识统统扔一边,只要有图像数据就可以。
3-D,基于多视角(MVS)/运动(SFM)的重建,后者也叫SLAM。
这部分就是经典的计算机视觉问题:3-D重建。基本上可以分成两种路径:一是多视角重建,二是运动重建。多视角重建经典的方法MVS(multiple view stereo),就是多帧匹配,是双目匹配的推广,采用CNN来解决也合理。运动重建在机器人领域为SLAM,有滤波法和关键帧法两种,后者精度高,在稀疏特征点的基础上可以采用BA(Bundle Adjustment),著名的方法如PTAM,ORB-SLAM1/2,LSD-SLAM,KinectFusion(RGB-D),LOAM和Velodyne SLAM(LiDAR)等。如今SLAM已经成为AR产业的瓶颈。特征点匹配,帧间运动估计,Loop Closure检测这些模块都可以采用CNN模型解决,那么SLAM/SFM/VO就进入CNN的探索区域。
计算机视觉的高层:环境理解。
这部分是深度学习在计算机视觉最先触及,并展示强大实力的部分。
TensorFlow是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习算法的编程实现,其前身是谷歌的神经网络算法库DistBelief。Tensorflow拥有多层级结构,可部署于各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算。TensorFlow由谷歌开发和维护,拥有多个项目以及各类API。2015年开源。支持C和python。
几种流行的深度学习框架,例如TensorFlow,PyTorch,MXNet和CNTK。 尽管这些框架的优缺点还要取决于设计,互操作性可以减少重复的模型训练工作。
市面上已经有不少公司开发出各种深度学习硬件平台,比如Google TPU,Hisilicon NPU和Apple的Bonic,处理器供应商NVIDIA Turing和Intel NNP,服务提供商Amazon Inferentia和阿里巴巴的含光,甚至是创业公司的Cambricon和Graphcore。一般这些硬件可分为以下几类:1)具有软硬件协同设计的通用硬件; 2)完全为深度学习模型定制的专用硬件;3)受生物脑科学启发的类神经硬件。 举个例子,在通用硬件(CPU/GPU)添加特殊硬件组件以加速DL模型,如AVX512矢量单元和张量核。 Google TPU之类的专用硬件,设计专用集成电路(例如矩阵乘法引擎和高带宽内存)将性能和功耗效率提升到了极致。 在可预见的将来,深度学习硬件的设计将变得更加多样化。
由于硬件多样性,重要的工作就是如何将计算有效地映射。通用硬件对高度优化的线性代数库,例如BLAS库(MKL和cuBLAS)依赖比较多。以卷积运算为例,深度学习框架将卷积转换为矩阵乘法,然后在BLAS库中调用GEMM函数。此外,硬件供应商还发布了特别的优化库(例如MKL-DNN和cuDNN),包括正向和反向卷积、池化、规范化和激活等操作符。他们还开发了更高级的工具来进一步加快深度学习操作。例如,TensorRT支持图形优化(层融合)和基于大量优化GPU内核的低比特量化。专用硬件,则会提供类似的开发库。但是,过于依赖库无法有效利用深度学习芯片。
为解决这些依赖库和工具的缺点,减轻手动优化每个硬件运行模型的负担,深度学习社区诉诸于专门的编译器。已经有几种流行的编译器出现,例如TVM,Tensor Comprehension,Glow,nGraph和Tensorflow XLA(Accelerated Linear Algebra)。 编译器将深度学习框架描述的模型在各种硬件平台上生成有效的代码实现,其完成的模型定义到特定代码实现的转换将针对模型规范和硬件体系结构高度优化。具体来说,它们结合了面向深度学习的优化,例如层融合和操作符融合,实现高效的代码生成。此外,现有的编译器还采用了来自通用编译器(例如LLVM)的成熟工具链,对各种硬件体系结构提供了更好的可移植性。与传统编译器类似,深度学习编译器也采用分层设计,包括前端、中间表示(IR)和后端。但是,这种编译器的独特之处在于多级IR和特定深度学习模型实现优化的设计。深度学习编译器普遍采用的设计架构如图所示:
参考文献:
[1] Deep Reinforcement Learning for Walking Robots Video - MATLAB & Simulink https://ww2.mathworks.cn/videos/deep-reinforcement-learning-for-walking-robots--1551449152203.html
[2]【2019-2020完整合集】【官方】 MATLAB & Simulink 小迈步系列课程 人工智能/深度学习/系统仿真/行业规范 https://www.bilibili.com/medialist/play/ml1238052723/BV1xf4y1i73L?s_eid=PEP_webinarfromILM
[3] 深度学习在计算机视觉领域(包括图像,视频,3-D点云,深度图)的应用一览 - 知乎 https://zhuanlan.zhihu.com/p/55747295
[4] 神经网络深度学习简介 - 神经网络深度学习简介 http://edu.21ic.com/m/video/3408.html
[5] 基于Jacinto™TDA2x SoC和深度学习的实时mmWave和相机传感器融合系统设计 http://edu.21ic.com/m/video/3402.html
6、深度学习在计算机视觉领域(包括图像,视频,3-D点云,深度图)的应用一览 - 知乎 https://zhuanlan.zhihu.com/p/55747295
7、一篇关于深度学习编译器架构的综述论文 - 知乎 https://zhuanlan.zhihu.com/p/139552817
8、
9、
10、
11、
12、
13、
14、