Category: AI/ML/DL/CV/NLP/RL/Robotics/BigModels/AIGC
-
马尔可夫决策过程相关算法简介-强化学习技术系列1
马尔可夫决策过程是强化学习的基本的算法,一些强化学习的概念知识点都在马尔可夫决策过程中有体现。强化学习是决策智能实现的一大类算法的统称,在游戏,智能辅助决策等场景下也有很多成功的应用。 马尔可夫性是概率论里边的一种特性,描述系统当前的状态概率只与上一个状态有关,而与之前的状态无关(或者说由于上一个状态的存在,之前的状态不会直接影响到当前状态)。用公式表示为: 马尔可夫决策过程是对具有离散状态的环境下的决策行为序列进行优化的建模方法。在马尔可夫决策过程中,问题被建模为一个包含以下要素的数学结构: 我们通常称的策略(policy)指的是当前系统环境处于s的情况下,采取某种行为a去执行,这种根据状态去执行特定的行为称为策略,一个策略下的价值函数(value function)定义为: 其中s为起始状态,pi为策略,因为在状态s下执行策略pi后下一个状态是概率分布,因此上述公式是期望值。价值函数更有价值的公式为下面的贝尔曼方程。其为一种递归定义: 上述公式的最右边可以理解为在当前状态为s的情况下执行策略pi后到达状态s’(满足上述的转移概率)后的价值函数,因为是满足概率分布,所以在不同s‘下求得价值函数的期望值即为结果。最优价值函数即为获取价值最大的策略。这里只关心其贝尔曼方程的表达(因为其方便用程序来实现,后面链接会有相关示例代码去进一步加深理解)。 通过上述的价值函数和最优价值函数的递归定义,我们就可以通过迭代算法去找到最优价值函数,并同时能找到其对应的最优策略。这里介绍两种迭代算法来找出最优的策略,第一种为policy iteration,第二种为value iteration。policy iteration首先通过迭代算法找出最优价值函数,然后通过迭代找出最优策略,而value iteration则是直接在迭代找出最优价值函数的过程中同时将最优策略的逻辑一并耦合在一起。 在这里有一个简单的演示示例,为一行五个格子对应五个状态,可以想象成一个五个格子的魔方,只有一个方块,其余为空格,方块可以向左或向右移动,目标是移动到中间的格子上。我们怎么去通过上述的迭代方法找出最优策略(在每一个状态下执行向左或向右行为为最优?)在这里需要注意几个关键的变量的定义,状态,当前状态价值以及状态转移矩阵。可以参考代码链接及里边的代码注解。 ai/samples/RL/MDP at master · kindlytree/ai (github.com)。 上述MDP的最优策略是在状态当前价值和状态转移矩阵已知的情况下的最优策略求解,实际过程中这些并不是已知的。这里也简要介绍一下MDP在状态转移矩阵未知情况下的求解方法,其也是基于迭代贪婪的思想,从一个随机的策略开始,然后逐步迭代找到更好的策略,在每一个中间策略迭代的开始,要做一些self play,积累一些数据,然后通过value iteration去找到更好的策略,流程伪代码如下所示:
-
einsum is all you need-einsum函数在数值计算中的应用示例说明
在深度学习框架和numpy等数值计算库中,记住不同的矩阵计算,如内积(dot products)、外积(outer products)、矩阵转置(transposes ),矩阵和向量相乘,以及矩阵和矩阵的乘法这些运算的函数名称和参数是容易混淆的一件事情,而爱因斯坦和(einsum)是通过一种领域语言(domain-specific language),用一种优雅的方式去解决这个问题,同时更进一步还可以描述更复杂的tensor的操作。 einsum函数采用如下的格式,einsum(equation,operands),下面为一个模板:result=einsum(“□□,□□□,□□->□□”,arg1,arg2,arg3)。其中□为占位符,表示张量的一个维度,如前面的equation的形式为“□□,□□□,□□->□□”,表示的含义为由三个输入参数,第一个和第三个为矩阵,第二是阶数为3的张量。计算的结果为矩阵。 下面将解释一些使用示例: 其中张量的缩并(tensor contraction)操作是两个多维张量中的分别两个大小相同的维度的内积,具体可以参考链接1中的示例。其中广播操作(broadcast)的实现方式可以参考引文7中的示例说明。 关于示例和相关说明,后面再根据实践会进一步补充更新或进行相关的修正,欢迎读者提出问题意见和建议。 References
-
关于ML/DL的一些基本问题的汇总及其解答-part2
机器学习/深度学习(ML/DL)是当前人工智能的核心基础课程和知识点,只有在充分理解了这些核心基础的内容后才能做好更多相关的研究和工程研发,这里收集汇总了之前回答一些基础的相关问题,以备后续查阅。 准备从1、通用的基本问题,2、回归和分类的基本问题,3、Cost Function(objective fuction,loss,error surface),4、Quality metric,5、Neural Network,6、CNN,7、RNN,8、Transformer,9、Reinforcement Learning等等方面进行汇总,后面欠缺的部分后面将要去进一步更新。 这是第二部分的内容。 References 六、CNN 七、RNN 八、Transformer 九、Reinforcement Learning 十、Feature Engineering(Data augumentation) 十一、Clustering Algorithm 十二、Trees 十三、Optimization Algorithms
-
关于ML/DL的一些基本问题的汇总及其解答-part1
机器学习/深度学习(ML/DL)是当前人工智能的核心基础课程和知识点,只有在充分理解了这些核心基础的内容后才能做好更多相关的研究和工程研发,这里收集汇总了之前回答一些基础的相关问题,以备后续查阅。 准备从1、通用的基本问题,2、回归和分类的基本问题,3、Cost Function(objective fuction,loss,error surface),4、Quality metric,5、Neural Network,6、CNN,7,RNN,8,Transformer,9,Reinforcement Learning等等方面进行汇总,后面欠缺的部分后面将要去进一步更新。 这是第一部分的内容。 References 一、通用的基本问题 二、回归和分类的基本问题 三、Cost Function(objective fuction,loss,error surface) 四、Quality metric 五、Neural Network
-
深度学习框架中自动微分的实现
自动微分的实现为深度学习的框架的梯度回传的计算提供了很大的便捷,我们只需定义好算子(operator),搭建好整个深度神经网络的网络结构后,就可以通过拓扑序构建好(具体拓扑排序方法可以参考引文中的深度优先搜索方法DFS)计算图,然后就可以根据偏微分的链式法则,就可以依次反向计算节点的数值结果,参数梯度等数值了。 在不同的深度学习的框架中,神经网络反向传播的算法实现会存在着一些差异,以早期的比较有影响力的caffe举例说明,caffe的实现中没有算子,而是blob(tensor)和layer,Net三种粒度的结构,各种不同的计算方法的layer(类似于各种不同的operator,如加减乘除)中计算前向和反向的结果,layer的输入为bottom blob,输出为top blob(也有可能存在着inplace的操作)其计算流图的关系是通过Net类中的相关函数进行静态计算的(Init函数)。 深度学习框架经过技术的发展,早期的caffe已经淡出了研发者的视线,不过在当时(还没有出现tensorflow,caffe2,以及pytorch)是相当有影响力的,其中的设计思想也是比较优秀的,有兴趣的读者可以阅读某些layer的forward,backward函数(基于cpu和gpu(cublas库)的矩阵计算)的实现都可以具体阅读源码加以具体深入的理解。不过由于其python的接口支持不是特别丰富,一些特殊的层的自定义实现和框架的重编译门槛比较高,相比pytorch要繁琐很多。 现在基于pytorch的深度学习框架由于其简洁易用而广受欢迎,其网络的定义也更加自由灵活(代码定义网络结构也很方便),基于pytorch的深度学习应用框架也有很多,纷繁多样,比如openmmlab等等。 Reference
-
具身智能(Embodied AI)开源数据集Open X-Embodiment简介
为了训练一个通用的机器人策略,Google推出了Open X-Embodiment数据集,通过在全球机器人实验室收集机械臂操作的数据集,历时大半年,一共得到了大大小小60多个来自21个组织结构34个机器人研究实验室的数据集,包含在22个机器人上采集的能够完成527种不同技能(skills)的16万个任务(160266 tasks)的上百万条数据。60个已有数据集中涉及到的机器人有单臂、双臂和四足,Franka占多数。下图为数据集的来源组织单位,可以看出诸多著名高校和研究结构都有参与其中。 可以看到除了这前面的一些动作有一定数量之外,其他的几百个动作的数量都非常少,技能数据呈现长尾分布(如下图中d所示)。 机器人大模型有两个典型代表,RT-1是高效的为机器人控制(robotic control)设计的基于transformer架构的模型,RT-2是一个大的视觉语言模型联合微调训练( co-fine-tuned)以输出机器人动作(以自然语言的表现形式,natural language tokens)。RT为Robotics Transformer的简称。RT1使用130k条机器人遥操作数据训练,展示出了其处理多种任务的能力和很强的泛化能力。但其通用性仍受限于数据集的大小。RT-1 的输入由图片序列、自然语言指令构成,输出由机械臂运动的目标位姿( Toll , pitch gaw , gripper stαtus)、基座的运动 、模式转换指令构成( The robot action is a 7-dimensional vector consisting of x, y, z, roll, pitch, yaw, and gripper opening or the rates of these quantities.)。RT-2抛弃了RT-1的设计,采用了利用网络上海量图文数据预训练出的图文模型,这些模型的规模可以最大达到55B的参数量,远远超过RT-1的35M的规模。这些图文模型被训练来回答关于图片的问题,原本的输出是文字,RT-2创造性的将机器人动作重新编码,使得编码为“文字”的机器人动作作为图文模型的输出。RT-X把提高扩展的目标放在了指令中的“动作”。 基于RT-1模型用该混合的机器人数据训练的结果模型为RT-1-X,基于RT-2模型用该混合的机器人数据训练的结果模型为RT-2-X,RT-1-X和RT-2-X比RT-1和RT-2模型性能优越了很多。得到的RT-1-X和RT-2-X模型表现出了很强的泛化能力和涌现能力(跨机器人实体学习的能力)。是以后更加通用智能的机器人的技术实现的曙光。 Open X-Embodiment数据集采用RLDS格式进行描述,RLDS为Reinforcement Learning Datasets的缩写,是一个用来存储,检索和操作序列的决策制订和执行的剧集数据(episodic data in the context of Sequential Decision Making),剧集一般记录一个完整的任务轨迹过程,比如一盘棋的下棋的步骤序列,在这里为机器人的一个任务的数据序列。如下图所示为一个episode数据的图像序列。如需了解数据集的更多的细节,可以参考引文中github里相关的代码链接。 行业内开源的好的数据集对于推动整个方向的发展起到了非常重要的作用,之前也有介绍过数据要素方面的博客短文(参考引文链接),具身机器人在将来将可以实现更多的任务,也可以在更多的应用场景中得到应用,数据集也可能会进一步扩充和丰富,以后如家务机器人,教育机器人等等也许会在不久后能够在实际生活中得到较好的应用。期待越来越多的算法和应用创新来丰富数字化场景的应用和数字化产业的发展,为社会经济提供新的增长动力,为人们的生活带来更多的便利和福祉。…
-
视觉生成式AI技术简介及可能的应用创新点
最近几年生成式AI(generative AI)的技术很火,和人类的大脑类比,生成式AI类比于人类的文档撰写,绘画设计和视频制作等,好的AI技术可以服务人类,将人类从一部分的工作中解放出来,去做更有创造性和创新型的事情。这里简要阐述一下视觉生成模型技术的一些技术思路,不正确的地方欢迎批评指正。 在图像生成方面,生成式AI经历了几次技术方案的迭代,从VAE,GAN,到diffusion models,效果越来越好,而且已经在视频生成领域取得了很大的技术进步,如最近的sora模型,效果好,是最近很热门的话题,小视频的介绍也有不少。图像生成都是从一个二维的随机高斯分布的image作为输入,通过模型的计算得出最后生成的模型,生成的结果的多样性在于输入中高斯输入的随机性以及训练数据的多样性。独立高斯分布可以理解为输入中的每一个像素点的值服从高斯分布,每一个像素点可以理解为图像中对应位置特征的值,不同点的独立高斯分布作为输入说明每一次输入的对应特征不一样,从而会带来丰富多样的结果。从随机的输入(根据训练集的特性随机效果的生成)或者再加上有意义的prompt生成满足特定场景的视觉效果。 1、VAE,VAE生成式算法主要是生成一个隐空间(latent space)假设隐变量服从高斯分布,而且尽可能的接近均值为0,标准差为1的标准正态分布(可以通过KL loss进行约束)而且在VAE中,隐变量的值也是通过训练集中数据的输入通过网络计算得出的,从数据输入到隐空间的计算相当于一种编码器,然后隐空间经过解码器恢复到原始数据空间。在生成的时候可以通过随机生成器生成隐空间的数据后再decode即可; 2、GAN,一度非常火热的算法,根据高斯随机分布的输入数据或条件数据通过生成网络和判别网络间的相互博弈交替训练去动态生成。大概轮流交替训练过程如下:(1)、先训练生成式网络,生成网络的loss,以及生成的结果在判别网络中的输出为true为ground truth;(2)、然后训练判别式网络,将生成网络的结果(fake)在判别网络中的输出为false为ground truth,而真实的数据在判别网络中的数据结果为true。具体一点的说明为:在训练生成式网络阶段(判别器网络参数固定),判别器尽可能将任务生成的结果判别为真实的,并且满足生成的条件(如条件生成,如风格迁移等),而在训练判别式网络阶段(生成式网络参数固定),判别器尽可能将生成网络生成的结果判别为fake,而真实的数据结果判别为true,这样在生成网络训练过程中,生成的结果越来越和真实的接近,生成的能力越来越强,而且判别式网络训练的过程中,生成的结果和真实的结果尽可能区分开,判别式网络的能力越来越强,这样不断的在生成网络和判别网络相互不段变强博弈的过程中,最后达到判别器网络”真假不分”的状态,也就是判别器区分不了是ground truth还是生成器生成的结果。 3,diffusion models,采用迭代的去噪过程,从原始的高斯随机数据一步步去噪生成结果的图像数据,数学推导比较繁琐,可以参考引文。其中stable diffusion models在图像生成领域是一个里程碑式的结果,其首先将图像用VAE模型将其转换到隐空间,然后在压缩后的隐空间进行模型的训练,并根据transformer的kv特性将条件prompt进行(CLIP进行text encoding)融合,从而实现文生图的功能。最近的sora的原理没有看到,但感觉应该是二维图像空间的扩展,据说也是在隐空间进行的训练。具体细节以后有机会再去详细了解。 最后总结畅想一下,未来视觉生成领域的可能创新和进步:(1)、条件视觉生成,这个可以用来一致性视觉生成的实现,如现在生成一段文字描述的视频,其中的人物或场景能否提取作为条件作为后续文字的背景条件生成?如果可以实现,生成长剧本的影视场景倒也是有可能的;(2)、多模态生成,影视短视频中视频加语音混合生成,比如人说话,或者和环境交互产生的动作和语音效果;(3)、可编辑式视频生成,生成的视频可能大部分满足自己的要求,但有些内容和场景需要进一步去编辑调整,可以通过文字表达的方式,也比如基于视频的control net的约束生成实现。 References
-
大模型的可能应用方向简要汇总
今天有幸和云计算专业企业合作方进行了线下详细讨论,后面会推动产业班的招生和联合培养,希望能在大家通力合作下,云计算专业的学生有机会在学校向产业界的资深工程师学习丰富的工程经验,并和实际项目相结合,充分锻炼分析问题解决问题的工程思维习惯和实践动手能力,毕业即步入工作岗位胜任相关方向工程师,给企业直接带来高效益,进入社会工作有一个很好的起步台阶。 其中和合作企业谈到了云计算的应用方向的问题,合作方比较有项目经验,对大模型也有不少接触和相关经验,提供了一些信息和思路,我简单的记录一下并加以自己的扩充和思考。 大模型的应用方向很多,这里说说几个可能的垂直方向的大模型应用:1、医疗大模型,可以针对问题给出医疗建议,比如脑电图,心电图,各种CT,甚至中医的望闻问切等都可以大模型化,给出医生专业水平的回答;2,法律专业,可以根据问题给出律师水平的回答,甚至可以做出大模型的法律文书;3,日常事务,如会议语音记录转文字并自动生成会议纪要,根据数据自动生成图表,自动分析长文文档提炼摘要等;4,各个工科应用方向的专业知识大模型,如云计算专业本身,可以针对云计算的技术栈的知识点去对大模型做微调;5,文档撰写大模型,如教师的PPT讲稿,可以让大模型帮忙生成初稿,然后老师在此基础上进行修改,省去了大量的时间,做研究的老师在写论文时,除了核心的算法和实验部分的描述外,如abstract可以让大模型提炼,相关工作以及总结可以让大模型写初稿也是比较省精力的。6,金融大模型,可以实现金融方向的专家知识库系统,根据个人的背景给出投资建议等;7,以后5G,6G网络成熟后,以人形机器人为硬件设备,在云端部署大模型,辅助个人进行问答,并可能将问答结果和用户反馈进行进行记录,在云端同时保持在线的微调,达到实现自适应性的个人智能助手的能力,一定程度上实现了在线自适应性AI;8,教育机器人,面向学科根据同学的个人学习情况合理问答和引导,成为学生的个人智能导师。 可以想象的场景还有很多,希望后面也能够有机会接触一些,比如教育类的机器人可以和大模型结合等,算力环境有限,但也希望能理解大模型算法的实现原理细节,并能做一些垂直方向的finetune的工作,任何工程技术类的研发,最好就是深入一线,make your hands dirty,才能更能具体有效把握细节,理解深入。 Reference
-
浅说数据要素
在人工智能和大数据时代,数据是很重要的资产,是模型赖以产生的源头。在各行各业,都需要开始积累相关的行业数据,为后续的模型不断的更新和快速的迭代做准备。 行业或领域内好的数据可以加快相关技术的迭代发展速度,就拿图像视觉领域来说,由于开源了ImageNet数据集,在上一个十年期间,图像识别竞赛具有显著影响力,催生了深度学习的快速发展,如卷积神经网络,深度网络VGG,深度残差网络ResNet等等关键的深度学习网络backbone,图像视觉成为了发展最快的人工智能应用领域。 其他垂直行业或相关领域的公开数据集也有很多,如目标检测和语义分割的coco,pascal voc,NLP,Speech里边也开源了很多数据集供竞赛打榜和科研论文的算法比较等,为相关行业建立基准的benchmark。 Nature子刊现在也有Scientific Data子刊,可以发布不同行业的标准的数据集,方便相关行业的科研人员能够较快从事相关领域的算法研发和验证。 随着行业发展的需要,数据的体量也在不断的增长,相关行业产业的公司和研究机构也在不断积累数据,将数据保存好不断积累保证安全和便捷检索和访问,可以保证在科技不断发展的同时,“粮草”是足够的,技术更新迭代不会受到数据欠缺导致的生产力滞后的问题。所以相关行业还是要充分重视数据的积累和标记检索。可以将数据作为企事业的“后勤粮草”战略储备。 国家现在也成立了数据局,以后的数据的管理和存储也将会更加的规范科学。云计算技术里边就有大容量存储的技术,随着云计算技术的不断普及和发展,大数据量的存储将不再是什么技术问题,甚至以后也许我们每个人从出生后所有积累的数据都可以访问,如区块链等相关技术的进一步成熟和推广,以后的数据存取访问的模式也会发生变化。随着工程技术的发展,云计算也许能够和区块链技术更好的结合起来,后面我们的云计算专业也可以考虑紧跟时代步伐,将最新的技术进行介绍和引入,期待更加成熟和安全便捷的数据存储和访问技术,为相关产业的数字化的快速发展提供良好的保障。 References
-
再说人类智能的优越性
和人工智能相比,基于人脑的生物智能的复杂度要高得多,现在的人工智能的技术在近一二十年取得了长足的发展和进步,但相对于人脑的智能程度来说,还有很长的技术发展空间。这里说说几点来分析一下。 1、人脑智能的多通道混合感知特性,从感知功能来说,人类的视觉,听觉等多通道同步感受能力相对于AI来说有遥遥领先的优越性,仅从视觉来看,人脑能够分割任何全景场景,人脑能够脑补遮挡部分,识别未见过的物体,实时tracking能力等都非常强,人脑的视觉时间分辨率,颜色分辨率,物理空间大小分辨率都挺高。这些AI的能力现在还距离比较远; 2、人脑的决策能力也非常独特,虽然在某些单项的游戏场景中,AI已经超过人脑,但是人脑的决策能力贯穿于生活工作社交的方方面面,如日常生活的衣食住行,工作中的设想,规划和执行以及社会交往中的沟通交流,活动组织,宣传外交等等的决策都由每个人的人脑去执行,而且人类是群体性社会性的生物,智能的决策很多时候不仅仅由一个人来执行,而且集思广益后做出的选择性的较优决策,而集这些能力于一体的AI的决策智能体的实现可能还有些路程要走; 3、人脑也有生成式AI的功能,而且是复合式生成的智能,如既可以说话(语音生成),也可以写撰写文章(如chatgpt),还可以唱歌(AI music),舞蹈,绘画等等,人类大脑最强大的生成能力在于人类的艺术创造力和科学创造力。而集成如此多项能力于一体的生成式AI的模型的研发也不是那么容易实现; 4、人脑也是一个GAN网络,GAN网络其实也是生成式AI的一种技术实现,不过GAN网络也可以用作判别。比如某人当前生成了一个想法观点,待实践验证发现和想法不太一致的时候,下次可能就会动态调整生成策略。这个时候实践验证就可以理解为物理世界帮我们生成了训练集,而观点想法则可以理解为生成式网络。我们的想法和判断不停的去动态的博弈,最终我们的想法会越来越和实际世界接近,这个时候我们可以说我们的大脑的GAN网络的生成网络训练就比较成功了;还有我们接受信息也是会加以自己的理解和判断的,怎么解读也是判别式网络,如果解读的和后面发现的物理世界的实际发生不一致时,也相当于为我们生成了训练集,我们也可以训练我们的判别式网络,解读的越合理我们的判断就越准确,以便后面的决策; 5、人脑也具备动作规划和执行功能,手脚的精细运动,现在的机器人的能力也差距比较远;斯坦福的aloha的机器人做家务的场景也是后面人为的精细操作的动作捕捉的复现; 6、人脑的自主性,人类可以自主的学习生活工作和与人交往,能自主感觉饥饿,自主看书学习和进化,这也是现在的AI所达不到的。 说几点主要的AI优势: 1、精确快速大算力的数值计算和表示;2、AI for science在分子材料设计药物设计和其他科学方面的效率比人类要强;3、AI在人类不太适合的工作场景下能够工作等等。 综合上述的分析,虽然AI在某些方面比人类的能力强,但综合来看达到人类的智能还比较遥远,AI在不断延申人类能力辅助人们更好生活工作的同时,也在不断的随着科学家和工程师的努力在进化和发展,期待AI给人类带来更多的便利和福祉。