Evaiの基于Interactive Learning的智能交互AI系统
《童年在人间——我的大学》:梦想初开,心血为继
一点前言
在我十分珍贵的大学生涯、在我青春最美好的时候,它出现了,走进了我的生活。可惜岁月荏苒,时光老人留给我的东西寥寥无几,它却是一个,也是最珍贵的一个。燃烧了我本科时所有的热情、凝结了将近四年的青春心血心血。当然,也陪伴了我所有的成功与失败,欢乐与泪水。
从一开始小小的树莓派3B开发板,到2018年盛夏评审台上闪亮登场的智能交互小车,再到EVAI的建立,以及后来参加挑战杯时在会场自由奔跑的智能巡航交互轮椅,到最终由自己拟定出虚拟形象并将其交互可视化后参加的互联网+
在那段仿佛吃住都在34、35号楼(当时的双创基地),北二楼底的学生宿舍研究基地的时光里,我每周都能对作品进行一次比较大的改进,自己学习底层,软硬件,甚至为了提升交互的效果开始跟着教程一步一步搭建机器学习模型并应用到了它的身上,开始学着增加不同的语料库,试着让对话模型不再单一,表达也逐渐变得丰富起来。
我的方法其实很笨,刚开始model还要在实际交互中逐步获取对象的数据来进行更好的自适应,但当看到它开始能够不断地对一些场景做出反应(哪怕一开始是僵硬的,甚至可以被我这个给它编程的人预测到)我突然想到了,这可能才是理解的本质:理解本来对于人来说就是千人千面的存在,我们怎么可以直接要求Ai太多,当我们对Ai的行动也产生了对应的反应,Ai可以捕抓到并且形成反馈通路调整自身的时候,不过结果如何,这都是活生生的交互,是现实里的人机理解~
现在读研后再回想起来,很感慨当时的自己纯真得可爱,有种天不怕地不怕,初生牛犊不怕虎的冲劲。我当时幻想着无人机也能搭载上自己的系统变得“聪明起来”,还为此开发出了语音导航和跟踪功能,没有真正意识到这种效率低下的交互对于实时性要求这么高的飞控来说其实是一种噩梦,当然也没有什么应用场景
可真正令人惋惜的是,那能够完完全全,彻彻底底地掏空所有心思并一股脑的放在一件事情上的日子,好像已经真的回不去了~
故撰此文,祭奠已经逝去的青春
作品展示
智能交互轮椅
智慧生活助手
系统原理介绍
(内容增补自19年我所撰写的“互联网+”项目计划书)
EVAI系统对话结构/技术栈
整体架构:
EVAI系统可以分成三个部分,分别是信号采集部分、中控处理部分和输出执行部分。
- 先通过摄像头和麦克风采集信号,摄像头采集人的面部表情信号,麦克风采集语音信号。采集面部表情后,进行微表情识别处理;采集语音信号后,先对信号进行语音识别,后对文本信号进行情绪分析。将两路信号分析进行拟合分析,从而完成对交互者的情绪感知。
- 由情绪感知参数通过交互控制算法,选定相应的AI模型处理NLP通道的文字信号,得到response(文本/指令)后传输给执行部分执行,从而实现AI系统从感知到决策和行动这一响应模式。具体的交互实现流程如下图所示。
整个系统将框架搭好后,AI将能理解人的自然语言,拥有执行命令和交互的能力,对复杂信息也能进行预处理,且有一定的辅助决策能力。在完成信息的采集后,送到中控处理部分,进行情绪分析,由两个通道得出情绪感知后,AI感知到交互人的情绪,并根据所感应到的情绪经由机器学习算法做出“经验”决策,由决策结果执行交互。
因此,AI可以根据当下交互人的情绪,灵活地仿人式地与交互人进行对话,而不再是将通过的模型死板地应用于某一个具体的场景,它适应力和灵活度使得AI的应用领域也被拓宽。哪怕在相同的场景,感受到交互人的情绪相同,由于丰富的语料,AI也给出不同的回答,会让交互人觉得更自然,AI也显得更人性化,更聪明。
传统策略对话系统:
尽管传统的面向任务的对话系统中有许多特定领域的手工制作,但它们很难适应新的领域,近年来,随着端到端神经生成模型的发展,为面向任务的对话系统构建了端到端的可训练框架。值得注意的是,当我们引入非面向任务的对话系统时,将讨论关于神经生成模型的更多细节。与传统的管道模型不同,端到端模型使用一个模块,并与结构化的外部数据库交互。
任务导向系统:上图的模型是一种基于网络的端到端可训练任务导向型对话系统,将对话系统的学习作为学习从对话历史到系统回复的映射问题,并应用encoder-decoder模型来训练。然而,该系统是在监督的方式下进行训练——不仅需要大量的训练数据,而且由于缺乏对训练数据对话控制的进一步探索,它也可能无法找到一个好的策略。
随着强化学习研究的不断深入,上图的模型首先提出了一种端到端强化学习的方法,在对话管理中联合训练对话状态跟踪和对话策略学习,从而更有力地对系统的动作进行优化。
**非任务导向系统:**不同于任务导向型对话系统,它的目标是为用户完成特定的任务,而非任务导向的对话系统(也称为聊天机器人)专注于在开放的领域与人交谈。一般来说,聊天机器人是通过生成方法或基于检索的方法实现的。生成模型能够生成更合适的回复,而这些回复可能从来没有出现在语料库中,而基于检索的模型则具有信息充裕和响应流畅的优势。
神经生成模型:
深度学习在机器翻译中的成功应用,即神经机器翻译,激发了人们对神经生成对话研究的热情。目前神经生成模型的热门研究课题大概有如下几个方面:- Sequence-to-Sequence Models
给定包含T个词语的输入序列X(message)和长度为T的目标序列Y(response),模型最大化Y在X下的条件概率: P 。具体来说,Seq2Seq模型是在encoder-decoder结构中,下图是这种结构的示意:
编码器将X逐字读入,并通过递归神经网络(RNN)将其表示为上下文向量c, 然后解码器将c 作为输入估计Y的生成概率。Encoder :Encoder过程很简单,直接使用RNN(一般用LSTM)进行语义向量生成:
其中f是非线性函数,例如LSTM,GRU, 是上一隐节点输出, 是当前时刻的输入。向量c 通常为RNN中的最后一个隐节点(h, Hidden state),或者是多个隐节点的加权和。Decoder :模型的decoder过程是使用另一个RNN通过当前隐状态 来预测当前的输出符号 ,这里的 和 都与其前一个隐状态和输出有关,Seq2Seq的目标函数定义为:
- 对话上下文(Dialogue Context)
考虑对话的上下文信息的是构建对话系统的关键所在,它可以使对话保持连贯和增进用户体验。使用层次化的RNN模型,捕捉个体语句的意义,然后将其整合为完整的对话。同时,分别用字级别和句子级别的注意力方法扩展层次化的结构。试验证明:层次化 RNNs的表现通常优于非层次化的RNN
在考虑上下文相关的信息后,神经网络趋向于产生更长的、更有意义和多样性的回复。在上图中,作者通过代表整个对话历史(包括当前的信息),用连续的表示或嵌入单词和短语来解决上下文敏感回复生成的这一难题。
在上图的结构中引入两个层次的Attention机制,让模型能够自动的学到词语与句子级别的重要度信息,从而更好的生成新一轮的对话。
作者在句子级别的信息中,是反向学习的,即认为下一句的信息中更能够包含上一句的信息,所以从总体上来看,其对于对话的学习是逆向使用每一轮对话的内容的。- 回复多样性
在当前Seq2Seq对话系统中,一个具有挑战性的问题是,它们倾向于产生无关紧要的或不明确的、普通的、几乎没有意义的回复,而这些回复常常涉及到一些诸如“I don’t know”,“I am OK”这样的无意义回复。
解决这类问题的一个很有效的方法是找到并设置一个更好的目标函数。除此之外,解决此类问题的一个方法是增加模型的复杂度。在论文中《Building End-To-End Dialogue Systems Using Generative Hierarchical Neural Network Models》使用了 latent variable 来解决无意义回复这个问题。
- 主题和个性化
明确对话的内在属性是提高对话多样性和保证一致性的另一种方法。在不同的属性中,主题和个性被广泛地进行研究探讨。在下图的模型中,作者注意到人们经常把他们的对话与主题相关的概念联系起来,并根据这些概念做出他们的回复。他们使用Twitter LDA模型来获取输入的主题,将主题信息和输入表示输入到一个联合注意模块中,并生成与主题相关的响应。
下图的模型提出了一种两阶段的训练方法,使用大规模数据对模型进行初始化,然后对模型进行微调,生成个性化响应。
- 外部知识库(Outside Knowledge Base)
人类对话与对话系统之间的一个重要区别是它是否与现实相结合。结合外部知识库(KB)是一种很有前途的方法,可以弥补背景知识之间的差距,即对话系统和人之间的差距。
记忆网络(Memory Network)是一种以知识库处理问题的经典方法。因此,它非常直接的别用于在对话生成中。实际研究表明,所提出的模型能够通过参考知识库中的事实来生成对问题的自然和正确答案。
上图提出的完全数据驱动的带有知识的对话模型。其中的 World Facts是一个集合,收集一些经过权威认证过的句子或者不准确的句子,作为知识库。
当个定一个输入S和历史,需要在 Fact 集合里面检索相关的facts,这里采用的IR引擎进行检索,然后经过 Fact Encoder 进行 fact injection。
上图的模型提出了一种全新的、完全由数据驱动的、基于知识的神经对话模型,目的是在没有槽位的情况下产生更多的内容。作者归纳了广泛使用的SEQ2SEQ方法,通过对会话历史和外部“事实”的响应- 评价
评价生成回复的质量是对话系统的一个重要方面。任务导向型的对话系统可以基于人工生成的监督信号进行评估,例如任务完成测试或用户满意度评分等。然而,由于高回复的多样性,自动评估非任务导向的对话系统所产生的响应的质量仍然是一个悬而未决的问题。
目前的方法有以下两种:
计算 BLEU 值,也就是直接计算 word overlap、ground truth和你生成的回复。由于一句话可能存在多种回复,因此从某些方面来看,BLEU 可能不太适用于对话评测。
计算 embedding的距离,这类方法分三种情况:直接相加求平均、先取绝对值再求平均和贪婪匹配。衡量多样性,主要取决于 distinct-ngram 的数量和 entropy 值的大小。进行图灵测试,用 retrieval 的 discriminator 来评价回复生成。
基于检索的方法
基于检索的方法从候选回复中选择回复。检索方法的关键是消息-回复匹配,匹配算法必须克服消息和回复之间的语义鸿沟。
- 轮回复匹配
检索聊天机器人的早期研究主要集中在反应选择单轮的谈话,只有消息用于选择一个合适的回复。目前比较新的方法如下图,利用深度卷积神经网络体系结构改进模型,学习消息和响应的表示,或直接学习两个句子的相互作用表示,然后用多层感知器来计算匹配的分数。
- 轮回复匹配机制
近年来,基于检索的多轮会话越来越受到人们的关注,在多轮回答选择中,将当前的消息和先前的话语作为输入。
模型选择一个自然的、与整个上下文相关的响应。重要的是要在之前的话语中找出重要的信息,并恰当地模仿话语的关系,以确保谈话的连贯性。多轮对话的难点在于不仅要考虑当前的问题,也要考虑前几轮的对话情景。多轮对话的难点主要有两点:a.如何明确上下文的关键信息(关键词,关键短语或关键句);b.上下文中如何模拟多轮对话间的关系。现有检索模型的缺陷:在上下文中容易丢失重要信息,因为它们首先将整个上下文表示为向量,然后将该上下文向量与响应sentence向量进行匹配。下图的方法通过RNN/LSTM的结构将上下文(所有之前的话语和当前消息的连接)和候选响应分别编码到上下文向量和回复向量中,然后根据这两个向量计算出匹配度分数。
目前关于检索模型的闲聊还停留在单轮对话中,下面提出了基于检索的多轮对话闲聊。并提出一个基于检索的多轮闲聊架构,进一步改进了话语关系和上下文信息的利用,通过将上下文中的语句与卷积神经网络的不同层级进行匹配,然后通过一个递归的神经网络在时间序列中堆积这些向量,以建立对话之间的关系。
- 混合的方法(Hybrid Methods)
将生成和检索方法结合起来能对系统性能起到显著的提升作用。基于检索的系统通常给出精确但是较为生硬的答案,而基于生成的系统则倾向于给出流畅但却是毫无意义的回答。在集成模型中,被抽取的候选对象和原始消息一起被输入到基于RNN的回复生成器中。这种方法结合了检索和生成模型的优点,这在性能上具备很大的优势。
多模态深度理解交互技术
基础语义理解技术
ASR(自动语音识别)技术
在系统中,涉及到的关键语义理解技术有ASR(自动语音识别)技术、意图识别技术。
- 在采集语音信号时,自然而然,要能够识别语音,知道交互人在说什么,这是交互重要的一步,如果不能理解交互人传达的意思,那么这一路信号毫无作用。自动语音识别技术的目标是让计算机能够“听写”出不同人所说出连续语音,也就是俗称的“语音听写机”,是实现“声音”到“文字”转换的技术。一般来说,语音识别的方法有三种:基于声道模型和语音知识的方法、模板匹配的方法以及利用人工神经网络的方法。基于语音学和声学的方法,在语音识别技术提出的开始,但由于其模型及语音知识过于复杂,现阶段没有达到实用的阶段。模板匹配的方法则用得比较多,常用的技术有三种:动态时间规整(DTW)、隐马尔可夫(HMM)理论、矢量量化(VQ)技术。我们以模板匹配方法为基础以及对识别算法加以改进,从而实现了双工方式的自动语音识别技术。
意图识别
一般采用词袋模型以及Attention-Based RNN模型以及槽填充(slot filling)方法[1]意图识别通常使用分类的方法将句子分为相应的意图种类。槽填充则可以看做是序列标注问题,即对于给定的句子中的每个词分别打上相应的标签。例如句子“first/class/fares/from/boston/to/denver.”,每个词对应的标签为”B-class_type/I-class_type/O/O/B-fromloc/B-toloc”。槽填充既可以用RNN模型也可以用encoder-dedoder 模型解决。即源输入是句子序列,目标输出则是标注序列,同时意图识别也可以用encoder-dedoder 模型解决。即源输入是句子序列,目标输出则是意图种类。
但是对与槽填充来说,句子与相应的标签是一 一对应的,也就是说有“explicit alignment”。作者提出了两种模型,一种是将“alignment information”加入到encoder-dedoder 模型中,另一种就是将“alignment information”和”attention“加入到RNN模型中来解决槽填充和意图识别问题。
多模态深度语义理解技术
视觉微表情的引入
OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库,它基于Intel处理器指令集开发的优化代码。在信息采集部分,我们需要采集交互人的表情,那么就不可避免地要用到人脸识别技术。近年来,OpenCV在人脸识别方面大显身手,拥有丰富的开发经验。所以我们选择了基于OpenCV的微表情识别。微表情识别的流程图如下:
微表情是人类试图压抑或隐藏真实情感时泄露的非常短暂的、不能自主控制的面部表情。它与普通表情的区别在于,微表情持续时间很短,仅为1/25秒至1/5秒。这种快速出现不易被察觉的面部表情被认为与自我防御机制有关,表达了被压抑的情绪。这种表情是下意识展开,表达了人们此刻的真是想法。同时,个体微表情的表达会受到自身撒谎动机的影响:一个人越是想掩饰自身真实情绪,其微表情就越可能暴露他的谎言,测谎仪也因此而生。在美国,针对微表情的研究已经应用到国家安全、司法系统、医学临床和政治选举等领域。因此,微表情与情绪有着密不可分的关系。
多模态的效果
现如今,语音技术发达,但受到发音不标准、环境嘈杂、特定语境、个性化词汇等众多因素的影响下,语音交互也存在语音识别不准、语义理解不对等问题。这些问题都影响到了语言情感交互的准确性。微表情识别的引入则缓解了这些问题。通过微表情识别,我们可以了解使用者的面部情绪,这能为我们缩小语言识别的判定范围,更准确的判断用户情绪,为用户提供更好的服务。
在对微表情识别的研究中,我们成功将由表情识别出的情绪分为七类:愤怒、厌恶、恐惧、高兴、伤心、惊讶、无情绪。可以通过抓取人脸部的微表情变化进一步提高系统对人情绪和心理的感知能力,在此基础上搭建的分析网络和价值网络可以赋予AI主动关心交互者般的主动性和“创造力”。既可以满足部分对此有特殊需求的群体的需要,又可以进一步提高对话交互的质量。
除此之外,还有交互人语音所传达出的情绪,由这两路信号得到的情绪状态,对其进行数学建模,强化学习,综合判断得到当前交互人情绪状态,而不是直接由表情识别或者语音中得出的情绪直接进行交互。
类人情感交互模型
交互设计
在对话框架的训练设计上,我们设计了不同的交互模型。项目在能通过对话交互的基础上尝试进一步延伸人工智能的“智能”。通过情绪分析、数据拟合、强化学习和概率的方式,让机器可以根据交互者的情绪状态智能地选择交互人更希望的交互模型。如果识别到的语音内容相同,但交互人所处的情绪状态不同,那么模型给出的答复也不同,这使得AI更加具有针对性,也更加拟人化,尽可能自然随机而不是单一死板地回复。
在模型设计上,我们以心理学理论为指导进行自然交互的场景建模。进一步还原和带给交互者最真实的AI谈话交互体验。用智能的方法控制智能的模型是本项目的独特之处。
在与模型对话过程中,我们不断改进模型训练方法,探索反馈式学习机制,让模型在对话中不断学习改进,以达到优化模型效果的目的。再配合业务代码层的数据分析和机器学习技术,让AI模型具有信息预处理和初步的辅助决策的能力,而现有的AI产品很多属于跟随代码“思考”的伪人工智能产品,难以做到泛化理解和反馈学习。而本作品的思路很有可能是目前AI应用产品中的一类创新形式。模型的训练采用了像人类一样理解与学习的Interactive Learning机制、机器学习以及微表情识别技术,最后为了统筹和利用好这些技术和能力而尝试自主开发的交互智能控制算法属更为先进的一种技术。
项目是以NLP(自然语言处理)相关理论为支撑,以UNIT为对话核心框架搭建而成的对话交互系统,能深入分析多种对话场景并智能匹配语料。基于大数据和深度学习,自动学习词义及词序关系,具备较强的泛化能力,情绪识别精度高。在大数据训练模型的支持下,可以使系统具有较好的对自然语言的处理和解析理解的能力。“双闭环”学习框架设计
在系统的开发过程中,我们不断对智能算法进行优化创新,用自主开发的改进型随机森林辅助AI做出交互决策。在我们的不断努力下,少量的样本就即可使得随机森林模型的判别偏差率接近20%,这使得AI已经十分接近人们对于复杂感情的判别率。
除了随机森林算法外,我们还基于表情和对话开发了情感计算和情感分析算法作为“判定基石”,新的算法与实际交互状态的高感知度和高拟合性让AI与人类的交互更加有灵性,并且通过“双闭环”反馈再学习机制(见图11)实现了系统的自调整以及自适应学习。
实物终端的实现架构
信号采集部分
在整个系统中,我们要采集的信号有两部分,一是交互人的表情,而是交互人的语言,因此,我们在这一部分采用CMOS高清双目摄像头、和专为AI识别语言设计的respeaker4mic麦克风阵列版作为信号采集器。之所以采用麦克风阵列,是因为我们需要采集交互人的语音。当然,在交互时,我们可以选择文字输入的方式进行交互,但是采用语音交互远远比文字输入更方便。举个例子,很多老人都会有眼部疾病,他们可能很难看清文字,文字输入对于他们来说会很费力。还有就是,语音交互会让整个系统的使用更加方便,操作更加快捷。
CMOS高清双目摄像头具有很好的光学信号采集能力和高传输速度。它采用UVC架构,可以兼容多系统并支持SDK二次开发。图像信号采集完毕后采用opencv人脸检测先进行人脸识别,后用Keras(基于Keras的深层卷积神经网络)情绪分类等方法处理采集好的信号。其处理流程大致如下
respeaker4mic麦克风阵列专门为AI而研制,4MIC设计使得其具有了一般麦克风不具有的远场识音和声源检测的功能,例如采用 DoA(到达方向),BF(波束形成),AEC(声学回声消除)等多种语音算法处理信号。
同时设备兼容多类平台,有利于搭建基础的语音服务,同时方便进行开发。在语音信号的采集中,我们设计了相应的算法,当交互人开始说话时,麦克风阵列开始进行语音信号采集;当交互人停止说话时,开始计时,如果四秒后,交互人不再说话,麦克风阵列停止采集语音信号,而不是一直处在等待采集信号状态,这样也能减少一定的功耗,这样实现了随讲随录的比较好跟随状态。
中控处理部分
在中控处理部分,硬件上我们选择的是有较强开发和DIY能力的嵌入式Linux主板。与其它嵌入式操作系统相比,Linux可使用于多种硬件平台,它的源代码是开放的,不存在黑箱技术。经过综合考虑,对于小型开发设备,我们采用的是树莓派3B开发板;对于大中型设备,我们选择NVIDIA Jetson TX2作为开发板。Jetson TX2拥有更加强大的计算能力,主要被用来实现计算机视觉,深度学习之类的需要大量密集计算的领域。但是它的价格不菲,所以在考虑性价比和成本后,我们觉得小型开发设备,树莓派开发板即可完成所需的功能,而大中型设备则需选择功能更加强大的NVIDIA Jetson TX2。
信号采集并经过初步的转化后传输到中控部分进行处理。在这里我们采集了两路信号,一路是交互人输入的语音信号,另一路是交互人的面部表情,通过对这两路信号进行分析,在python SDK的框架下、通过数学建模和强化学习的方法进行信号的分析处理以及拟合,能更准确得到交互人此时的情绪状态,得到交互人的情绪状态后。起初我们选择交互控制算法和估值网络分析处理,选择相对应的模型,智能交互控制算法融合了交互的心理学模型。给出输出信号后,信号传给输出执行部分。
输出执行部分
输出执行部分,我们将AI给出的回答合成语音,让交互变得更简单快捷,故在输出执行部分,硬件上需要一个通用的扬声器。至于系统载体,可以根据不同的需求选择不同的载体,如移动小车、无人机、轮椅或者移动机器人。当系统得到载体的相应权限,且载体有对应的硬件,如扬声器等,那么系统就可以在载体上实现它所拥有的功能。例如,将AI系统安装至可嵌入式设备上时,它通过GPIO或者USB通信的方法沟通中控和设备的控制器,使得系统给出的输出信号能够顺利送到设备的控制器,能够在不同的设备上实现它所具有的功能。
在python-IO模块的支持下,两者可以高效地完成指令信号的DA-AD传输,保证载体准确地完成指令任务。而现在的大多数电子产品都具有通用的I/O口或者USB接口,这为系统安装在不同载体上提供了硬件基础。
核心算法原理解明
以下拆解系统的各个子系统部分:
因篇幅不宜过长,这部分会分开博文进行阐述,传送门如下
CV | NLU:一种CNN/CTC的端到端语音识别方法 | NLP | NLG | MMDL
无高亮显示即为待补充中
代码搭建实现
基于linux系统进行搭建
通过API服务以及Ubuntu系统搭建了一份可用于语音交互的AI软件代码
Install process for Ubuntu 16.04 LTS
安装系统运行依赖,完成语音唤醒步骤程序(基础组件搭建)
参考DuerOS源码 和 https://developer.baidu.com/forum/topic/show/244881
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
sudo apt-get update
sudo apt-get install python-dateutil
sudo apt-get install gir1.2-gstreamer-1.0 #唤醒组件
sudo apt-get install python-pyaudio #录音组件
sudo apt-get install libatlas-base-dev
sudo apt-get install python-dev
##新系统在此可以先安装pip(以下是针对Ubuntu16自带的python2.7.12安装pip)
sudo apt-get install python-setuptools python-dev build-essential
sudo easy_install pip
sudo pip install baidu-aip
sudo pip install tornado
sudo pip install hyper
如果有安装不上的建议到https://pypi.python.org/pypi找相应的二进制包安装,或者更换国内的源。
安装python机器学习依赖(加入智能交互控制)
1 |
|
安装界面播放动态图交互插件
1 |
|
最后在源地址克隆本代码仓库
2019年基于baiduUNIT时的代码结构,后续开发暂未开源
1 |
|
代码结构
代码逻辑
RFUNITrobot.py 为主函数位置调用后进行循环:
- 交互程序大循环:
- 唤醒等待
- 识别语音和人脸检测
- 计算交互使用模型
- 交互动作产生
- 获得反馈信号并返回步骤二
- 双循环:
- 交互学习循环(接收语料进语料库训练)
- 语言理解模型循环(学习响应方式)
对话交互实验
昔日荣光不复:漫漫长征路
2021年上半年有一个好消息,申请的发明专利获得授权了(当时要会写英文论文就好了,也不至于等这么久,本科时看同班同学用论文拿一些大额奖学金馋哭了(灬ꈍ ꈍ灬))过程还蛮顺利的,审查员并没有提出技术问题,只是让我修改了一下说明书上的矩阵下标表述。2019年6月申请,2021年3月拿到授权,很知足啦~也算是给我的肝力满满但又稍微显得有点无趣的大学本科时光画上了圆满的句号。
或许在将来的某些日子里,我回忆起我的大学,里面没有自由与浪漫,没有花前与月下,没有青涩与爱情,没有分别与重逢。我对世界,对人的领悟相比于同龄人来说实在是少了很多很多。这也是我在遇到蜜柑星之后才如此地恍然大悟……我当场就表了白,但说实话我不知道为什么表白,却也奇妙地知道,我肯定不会后悔!
就像如今的我,依然会不时地想起17年的晚秋、18年的盛夏、19年的早春、20年的凛冬。我开始憧憬未来世界的真实色彩,却也能始终相信着人的可能性~