阅读视图

发现新文章,点击刷新页面。
🔲 ☆

ChatGPT模型的三层理解

目前chatGPT的论文还没有公布,官方介绍里面讲:“ChatGPT is a sibling model to InstructGPT”,对比ChatGPT官网的模型训练流程和InstructGPT的流程图,基本是一致的,只是ChatGPT基于GPT-3.5进行的训练,我们下面的讲解就暂时以InstructGPT代替ChatGPT展开。

ChatGPT vs InstructGPT

第一层:训练流程

白话讲解ChatGPT的训练流程,不涉及模型训练细节,主要讲解整个训练是如何完成的。

ChatGPT学习的四阶段

1.1 第一步:学习文字接龙

GPT文字接龙
GPT(Generative Pre-trained Transformer)是一个会文字接龙的模型,给他一段文本,他会预测下一个字是什么。

样本生成逻辑
训练一个文字接龙的模型是不需要人工标注的文本的,只需要在网上收集大量的文字,就可以学文字接龙这件事情。

真实的输出
GPT真实的输出是一个概率分布,“你好”的输入,可能跟“高”、“美”、“吗”等等词,每一次的输出都是不同的,出现的概率也不一样。

文字接龙回答问题
文字接龙已经可以用来回答问题了,但是…

每次的输出都不同

GPT输出的是一个概率分布,后面可以接各式各样的句子,很多并不是我们想要的。
那我们如何引导GPT产生有用的输出呢?

1.2 第二步:人类老师引导文字接龙方向

找人来思考想问GPT的问题,并人工提供正确答案。

  • 西安的地标是什么? --> 钟楼
  • 如何学习深度学习? --> 需要先知道基本概念…
  • 请把这句话做翻译…

让原始的GPT模型在这部分质量较高的数据集上学习,多看一些有益的句子,期待他能产生出有用的输出。这里不需要穷尽所有问题,只需要告诉GPT人类的偏好。

1.3 第三步:模仿人类老师的喜好

训练一个模仿老师的模型,学习人类老师评分高低的标准。
模仿人类老师的喜好

如果人类提交的是“钟楼”这个答案好于“谁来告诉我呀”,那么Teacher Model给“钟楼”这个的打分就要比“谁来告诉我呀”的打分高。

1.4 第四步:用强化学习向模拟老师学习

把“接龙模型GPT”和“老师模型Teacher Model”组合起来使用。

强化学习

Teacher Model通过前面的学习已经学到,如果答案是一个问句,它不是一个好的答案,给予低分。这个Teacher Model输出的低分就是强化学习的奖励Reward,强化学习通过调整参数,得到最大的Reward

强化学习
经过强化学习以后,GPT就变成了ChatGPT,能够输出我们想要的答案了。

总结:整个过程就是教GPT从“想说什么就说什么”到“说人类想要他说的”。

第二层:工程实现

重点讲解Instruct GPT的论文,《Training language models to follow instructions with human feedback》(训练语言模型是他能够服从人类的指示)。68页的论文主要内容在讲工程实现,包括怎么挑选合适的标注人员,各个模型都是如何准备训练数据的,甚至还给了很多标注表格的模板和训练样本范例。

大型语言模型中的一致性问题通常表现为:

  • 提供无效帮助:没有遵循用户的明确指示。
  • 内容胡编乱造:虚构不存在或错误事实的模型。
  • 缺乏可解释性:人们很难理解模型是如何得出特定决策或预测的。
  • 内容偏见有害:一个基于有偏见、有害数据训练的语言模型可能会在其输出中出现这种情况,即使它没有明确指示这样做。

three steps of Instruct GPT

InstructGPT/ChatGPT的提出了一种利用人类反馈来解决这一问题的方案,方法总体上可以分成3步:

  • 根据采集的SFT数据集对GPT-3进行有监督的微调(Supervised FineTune,SFT);
  • 收集人工标注的对比数据,训练奖励模型(Reword Model,RM);
  • 使用RM作为强化学习的优化目标,利用PPO算法微调SFT模型。

2.1 数据来源

训练数据有两个来源:

  • 由我们的标注人员编写的Prompt数据集
  • 提交给早期 InstructGPT模型版本API的Prompt数据集

标记人员

OpenAI通过一系列的筛选,找到了40个对不同人口群体的偏好敏感并且善于识别可能有害的输出的全职标记人员。整个过程中,OpenAI的研发人员跟这些标记人员紧密合作,给他们进行了培训,并对他们是否能够代表大众的偏好进行了评测。

标记人员的工作是根据内容自己编写prompt,并且要求编写的Prompt满足下面三点:

  • 简单任务:标记人员给出任意简单的任务,同时要确保任务的多样性;
  • Few-shot任务:标注人员写出一个指示,同时写出其各种不同说法。
  • 用户相关的:从接口中获取用例,然后让标记人员根据这些用例编写prompt。

标记人员分布

40名外包员工来自美国和东南亚,分布比较集中且人数较少, InstructGPT/ChatGPT的目标是训练一个价值观正确的预训练模型,它的价值观是由这40个外包员工的价值观组合而成。而这个比较窄的分布可能会生成一些其他地区比较在意的歧视,偏见问题。

API用户

OpenAI训练了一个早期版本的InstructGPT,开放给了一部分用户,根据他们提问信息构造样本,对数据集做了如下操作:

  • 删除了一些重复的、包含个人信息的prompt;
  • 每个用户只取200条prompt;
  • 按照用户ID划分训练集、验证集和测试集,避免类似问题同时出现在训练集和验证集。

API prompt dataset

prompt种类共有9种,而且绝大多数是生成类任务,可能会导致模型有覆盖不到的任务类型;

2.2 训练数据

基于上面的数据集,生成了三份不同的训练数据集:

数据集生成方法prompt量训练任务
SFT dataset由标记人员编写prompt对应的回答13kSupervised FineTune(SFT)
RM dataset由标记人员对gpt产生的答案进行质量排序33kReword Model(RM)
PPO dataset不需要人工参与,gpt产生结果,RM进行打分31kReinforcement learning (RL)

prompt

数据中96%以上是英文,其它20个语种例如中文,法语,西班牙语等加起来不到4%,这可能导致InstructGPT/ChatGPT能进行其它语种的生成时,效果应该远不如英文;

2.3 模型微调Supervised fine-tuning(SFT)

神经网络可视化
低层的网络主要学习图像的边缘或色斑,中层的网络主要学习物体的局部和纹理,高层的网络识别抽象的语义。

由上面的案例可知,我们可以把一个神经网络分成两块:1)低层的网络进行特征抽取,将原始信息变成容易被后面任务使用的特征;2)输出层的网络进行具体任务的预测。输出层因为涉及到具体任务没办法在不同任务中复用,但是低层的网络是具有通用型的,可以应用到其他任务上。

微调
微调由以下4步构成:

  • 在源数据集上预训练一个神经网络模型,即源模型。
  • 创建一个新的神经网络模型,即目标模型。它复制了源模型上除了输出层外的所有模型设计及其参数。我们假设这些模型参数包含了源数据集上学习到的知识,且这些知识同样适用于目标数据集。我们还假设源模型的输出层与源数据集的标签紧密相关,因此在目标模型中不予采用。
  • 为目标模型添加一个输出大小为目标数据集类别个数的输出层,并随机初始化该层的模型参数。
  • 在目标数据集上训练目标模型。我们将从头训练输出层,而其余层的参数都是基于源模型的参数微调得到的。

SFT

这里的SFT就是基于训练好的GPT-3模型进行的微调,在数据集上面进行了16个epoch的训练,数据量比较小,模型比较大,一个epoch以后就过拟合了,但是论文里面说这个没关系,因为他不是直接拿出去用,而是用来初始化后面的模型。

2.4 训练奖励模型Reward modeling(RM)

一个Response不能给具体的打分值,只能说一个Response比另一个Response更好或者差不多,所以训练奖励模型的数据是一个标注人员根据生成结果排序的形式,它可以看做一个回归模型。

pairwise
奖励模型使用的是PairWise的训练方法,PairWise的基本思路是对样本进行两两比较,构建偏序文档对,从比较中学习顺序。PairWise就是希望通过正确估计一对文档的顺序,而得到整体的正确顺序,比如一个正确的排序为:“A>B>C”,PairWise通过学习两两之间的关系“A>B”,“B>C”和“A>C”来推断“A>B>C”。

RM
奖励模型的结构是将SFT训练后的模型的最后的嵌入层去掉后的模型。它的输入是prompt和Reponse,输出是奖励值。GPT-3最大的模型时175B的,但是发现这种规模的模型训练不稳定,最后才用了6B的版本。

2.5 强化学习Reinforcement learning(RL)

强化学习
强化学习(Reinforcement learning,RL)讨论的问题是一个智能体(agent)怎么在一个复杂不确定的 环境(environment) 里面去极大化它能获得的奖励。通过感知所处环境的 状态(state) 对 动作(action) 的反应(reward),来指导更好的动作,从而获得最大的收益(return),这被称为在交互中学习,这样的学习方法就被称作强化学习。

PPO

PPO(Proximal Policy Optimization)近端策略优化算法,是一种典型的强化学习算法。它通过观测信息选出一个行为直接进行反向传播,当然出人意料的是他并没有误差,而是利用reward奖励直接对选择行为的可能性进行增强和减弱,好的行为会被增加下一次被选中的概率,不好的行为会被减弱下次被选中的概率。

RL
这里我们随机取一个用户的prompt,然后使用SFT模型生成一个response,使用奖励模型对当前的prompt-response对打分作为Reward。

2.6 结论

结论

该模型基于三个标准进行评估:

  • 帮助性:判断模型遵循用户指示以及推断指示的能力。
  • 真实性:判断模型在封闭领域任务中有产生虚构事实的倾向。
  • 无害性:标注者评估模型的输出是否适当、是否包含歧视性内容。

跟SFT 175B的模型对比效果,所以我们可以看到SFT 175B的胜率是0.5。

在对我们的prompt进行人工评估过程中,1.3B个参数的InstructGPT模型的输出优于 175B的GPT-3模型的输出,尽管参数少100倍。此外,InstructGPT模型显示了真实性的提高和有毒输出生成的减少,同时在公共数据集上的性能下降却很小。尽管InstructGPT 仍然会犯一些简单的错误,但我们的结果表明,根据人类反馈进行微调是使语言模型与人类意图保持一致的一个有前途的方向

第三层:发展脉络

任何模型的突破和成功,都不是一蹴而就的,是不断的学习前人的经验和结论,自己一步一步走出来的,这个需要的是厚积薄发。ChatGPT也是一样,要真正理解它,就需要看它之前的工作,从发展脉络的角度去看问题。

模型演进

3.1 Encoder-Decoder

Cho在2014年的《Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation》中提出了Encoder–Decoder结构,它由两个RNN组成,另外本文还提出了GRU的门结构,相比LSTM更加简洁,而且效果不输LSTM。

Encoder-Decoder框架

生成目标句子单词的过程成了下面的形式,其中f1是Decoder的非线性变换函数:

Y1=f1(C)Y2=f1(C,Y1)Y3=f1(C,Y1,Y2)\begin{array}{l}\mathbf{Y}_{\mathbf{1}}=\mathbf{f} \mathbf{1}\left(\mathbf{C}\right) \\\mathbf{Y}_{2}=\mathbf{f} \mathbf{1}\left(\mathbf{C}, \mathbf{Y}_{\mathbf{1}}\right) \\\mathbf{Y}_{3}=\mathbf{f} \mathbf{1}\left(\mathbf{C}, \mathbf{Y}_{\mathbf{1}}, \mathbf{Y}_{2}\right)\end{array}

Encoder和Decoder部分可以是任意的文字、语音、图像和视频数据,模型可以采用CNN,RNN,BiRNN、LSTM、GRU等等,所以基于Encoder-Decoder的结构,我们可以设计出各种各样的应用算法。比如:1)文字-文字:机器翻译,对话机器人,文章摘要,代码补全; 2) 音频-文字:语音识别; 3) 图片-文字:图像描述生成

Encoder-Decoder的出现,对于很多领域的影响是非常深远的,比如机器翻译的任务,再也不需要做词性分析、词典查询、语序调整和隐马尔可夫模型等等方案,几乎都是基于Encoder-Decoder框架的神经网络方案。

3.2 Attention机制

Attention机制最早在视觉领域提出,2014年Google Mind发表了《Recurrent Models of Visual Attention》,使Attention机制流行起来,这篇论文采用了RNN模型,并加入了Attention机制来进行图像的分类。

2015年,Bahdanau等人在论文《Neural Machine Translation by Jointly Learning to Align and Translate》中,将attention机制首次应用在nlp领域,其采用Seq2Seq+Attention模型来进行机器翻译,并且得到了效果的提升。

人类的视觉注意力

语义编码C是由句子Source的每个单词经过Encoder编码产生的,这意味着不论是生成哪个单词,其实句子Source中任意单词对生成某个目标单词来说影响力都是相同的,这是为何说这个模型没有体现出注意力的缘由。这类似于人类看到眼前的画面,但是眼中却没有注意焦点一样。

我们拿机器翻译来解释一下注意力在Encoder-Decoder模型中的作用就更好理解了,比如输入的是英文句子:Tom chase Jerry,Encoder-Decoder框架逐步生成中文单词:“汤姆”,“追逐”,“杰瑞”。

在翻译“杰瑞”这个中文单词的时候,没有注意力的模型里面的每个英文单词对于翻译目标单词“杰瑞”贡献是相同的,很明显这里不太合理,显然“Jerry”对于翻译成“杰瑞”更重要,但是没有注意力的模型是无法体现这一点的。

目标句子中的每个单词都应该学会其对应的源语句子中单词的注意力分配概率信息。这意味着在生成每个单词yi的时候,原先都是相同的中间语义表示C会被替换成根据当前生成单词而不断变化的Ci。理解Attention模型的关键就是这里,即由固定的中间语义表示C换成了根据当前输出单词来调整成加入注意力模型的变化的Ci。增加了注意力模型的Encoder-Decoder框架理解起来如图所示。

引入注意力模型的Encoder-Decoder框架

即生成目标句子单词的过程成了下面的形式:

Y1=f1(C1)Y2=f1(C2,Y1)Y3=f1(C3,Y1,Y2)\begin{array}{l}\mathbf{Y}_{\mathbf{1}}=\mathbf{f} \mathbf{1}\left(\mathbf{C}_{\mathbf{1}}\right) \\\mathbf{Y}_{2}=\mathbf{f} \mathbf{1}\left(\mathbf{C}_{2}, \mathbf{Y}_{\mathbf{1}}\right) \\\mathbf{Y}_{3}=\mathbf{f} \mathbf{1}\left(\mathbf{C}_{3}, \mathbf{Y}_{\mathbf{1}}, \mathbf{Y}_{2}\right)\end{array}

attention机制添加以后的翻译的过程

Attention机制由来已久,真正让其大放异彩的,是后来Google的一篇文章《Attention is All You Need》。

3.3 Transformer

2017年,Google机器翻译团队发表的《Attention is All You Need》中,提出了他们的Transformer架构,Transformer基于经典的机器翻译Seq2Seq框架,完全抛弃了RNN和CNN等网络结构,而仅仅采用Attention机制来进行机器翻译任务,在WMT 2014的数据集上取得了很好的成绩。

Transformer的架构

编码器
编码器由N=6个相同的layer组成,layer指的就是上图左侧的单元,最左边有个“Nx”,这里是x6个。每个Layer由两个子层(Sub-Layer)组成,第一个子层是Multi-head Self-attention Mechanism,第二个子层比较简单,是Fully Connected Feed-Forward Network。其中每个子层都加了残差连接(Residual Connection)和层归一化(Layer Normalisation),因此可以将子层的输出表示为: LayerNorm (x+SubLayer(x))\text { LayerNorm }(x+\operatorname{SubLayer}(x))

解码器
解码器同样由N=6个相同layer组成,因为编码器是并行计算一次性将结果直接输出,而解码器是一个词一个词输入,所以解码器除了每个编码器层中的两个子层之外,还插入第三子层,其对编码器堆栈的输出执行multi-head attention。每个子层也都加了残差连接(Residual Connection)和层归一化(Layer Normalisation)。解码器中对self-attention子层进行了修改,以防止引入当前时刻的后续时刻输入,这种屏蔽与输出嵌入偏移一个位置的事实相结合,确保了位置i的预测仅依赖于小于i的位置处的已知输出。

Transformer出现后,开始取代RNN(循环神经网络)和 CNN(卷积神经网络)成为最热门的信息提取工具,以前做NLP(自然语言处理)研究的喜欢用RNN,做CV(计算机视觉)研究的喜欢用CNN,现在大家都用Transformer了,很多研究进展可以同步到另一个领域。

3.4 GPT

传统的NLP模型往往使用大量的数据对有监督的模型进行任务相关的模型训练,但是高质量的标注数据往往很难获得,而且不同任务的模型很难泛化到其他任务上,所以OpenAI在《Imporoving Language Understanding By Generative Pre-training》提出先在大量的无标签数据上训练一个语言模型,然后再在下游具体任务的有标签数据集上进行fine-tune。

GPT是典型的预训练+微调的两阶段模型。预训练阶段就是用海量的文本数据通过无监督学习的方式来获取语言学知识,而微调就是用下游任务的训练数据来获得特定任务的模型。

举一个例子来形容预训练和微调的关系,我们从幼儿园到高中就像预训练过程,不断学习知识,这些知识包罗万象包括语数英物化生等等,最重要的特征就是预训练模型具有很好的通用性;然后读大学的时候需要确定一个专业方向作为未来的职业,所以就会去重点学习专业知识,从而让我们成为更加适合某个专业方向的人才,最重要的特征就是具有极强的专业性。

gpt使用的是transformer的Decoder部分

GPT模型效果还是非常出色的,12个任务数据集中9个达到了最好效果。

3.5 BERT

2018年10月,Google发表《BERT_Pre-training of Deep Bidirectional Transformers for Language Understanding》,提出了类似于GPT的预训练模型BERT。

bert使用的是transformer的Encoder部分

BERT和GPT采用了不同的技术路线,简单理解,BERT是一个双向模型,可以联系上下文进行分析,更擅长完形填空;而GPT是一个单项模型,只能从左到右进行阅读,更擅长写作文

发布更早的GPT-1输给了晚4个月发布的BERT,而且是完败。在当时的竞赛排行榜上,阅读理解领域已经被BERT屠榜了。此后,BERT也成为了NLP领域最常用的模型。
bert on GLUE

3.6 GPT-2 & GPT-3

OpenAI既没有认输,也非常头铁。虽然GPT-1效果不如BERT,但OpenAI没有改变策略,而是坚持走大模型路线。接下来的两年(2019、2020年),在几乎没有改变模型架构的基础上,OpenAI 陆续推出参数更大的迭代版本GPT-2、GPT-3,前者有15亿参数,后者有1750亿参数,最终GPT-3的模型效果震惊世人,成功出圈。

模型发布时间层数头数词向量长度参数量预训练数据量
GPT-12018 年 6 月127687681.17 亿约5GB
GPT-22019 年 2 月48-160015 亿40GB
GPT-32020 年 5 月9696128881750 亿45TB

但是单纯的说用一个更大的模型打败了对手感觉还不够,GPT-2和3开始卷另一个方向,不用做梯度更新和微调依然可以完成很多任务,也就是Zero-shot。在OpenAI眼中,未来的通用人工智能应该长这个样子:有一个任务无关的超大型的语言模型(Large Language Model, LLM),用来从海量数据中学习各种知识,这个LLM以生成一切的方式,来解决各种各样的实际问题,而且它应该能听懂人类的命令,以便于人类使用。

Zero-shot, one-shot and few-shot, contrasted with traditional fine-tuning.

本身在这么大的模型上做梯度更新和微调就是一个门槛很高的事情,GPT-3模型对于Zero-shot、one-shot和few-shot的支持,使得基于他可以衍生出了上百个基于GPT-3的应用。

3.7 instruction Tuning

Google在2021年发表《Finetuned Language Models are Zero-Shot Learners》,提出了一种提高语言模型Zero-shot能力的方法。

比如我们要进行一句话的情感分析,“带女朋友去了一家餐厅,她吃的很开心”,我们可以有两种做法:

  • 利用模型补全的能力,改造prompt:“带女朋友去了一家餐厅,她吃的很开心,这家餐厅太__了!”
  • 直接告诉模型任务:“判断这句话的情感:带女朋友去了一家餐厅,她吃的很开心。选项:A=好,B=一般,C=差”
    instruction Tuning是第二种。

pretrain–finetune and prompting and instruction Tuning

Instruction tuning的动机是为了提高语言模型对instructions的理解和响应能力。其想法是,通过监督来教语言模型执行instructions描述的任务,从而使它将学习到如何遵循instructions,当面对unseen的任务时,模型自然而然地就会遵循instruction做出响应。
instruction-tuning
首先在包括commonsense reasoning、machine translation、sentiment analysis等NLP task上进行微调,然后在从未见过的natural language inference任务上进行zero-shot evaluation

performance of zero-shot FLAN

3.8 InstructGPT/ChatGPT

InstructGPT论文《Training language models to follow instructions with human feedback》,我们已经讲清楚language models和instructions,剩下就是with human feedback。

人工反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF)参考了OpenAI前面的两个工作。

Ziegler在2019年的《Fine-Tuning Language Models from Human Preferences》
Ziegler et al. (2019)

Stiennon在2020年《Learning to summarize from human feedback》
Stiennon et al. (2020),

ChatGPT和InstructGPT在模型结构,训练方式上都完全一致,即都使用了指示学习(Instruction Learning)和人工反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF)来指导模型的训练,它们不同的仅仅是采集数据的方式上有所差异。

写在最后

4.1 安全性

2016年,微软AI Tay,种族歧视,下线。
Microsoft shuts down AI chatbot after it turned into a Nazi。
https://www.cbsnews.com/news/microsoft-shuts-down-ai-chatbot-after-it-turned-into-racist-nazi/

2021年,Facebook,AI将黑人标上了灵长目的标签
Facebook Apologizes After A.I. Puts ‘Primates’ Label on Video of Black Men
Facebook called it “an unacceptable error.” The company has struggled with other issues related to race.
https://www.nytimes.com/2021/09/03/technology/facebook-ai-race-primates.html

语言模型的输出特别灵活,导致出错的概率会更大,OpenAI作为一个创业公司,媒体对于GPT的容忍度大一些,如果是大公司做的GPT模型,可能已经下架了。

4.2 成本

LLM模型

大模型背后离不开大数据、大算力。GPT-2用于训练的数据取自于Reddit上高赞的文章,数据集共有约800万篇文章,累计体积约40G;GPT-3模型的神经网络是在超过45TB的文本上进行训练的,数据相当于整个维基百科英文版的160倍。

在算力方面,GPT-3.5在微软Azure AI超算基础设施(由V100GPU组成的高带宽集群)上进行训练,总算力消耗约3640PF-days(即每秒一千万亿次计算,运行3640天)。可以说,大模型的训练就是靠烧钱烧出来的。据估算,OpenAI的模型训练成本高达1200万美元,GPT-3的单次训练成本高达460万美元。

根据《财富》杂志报道的数据,2022年OpenAI的收入为3000万美元的收入,但净亏损总额预计为5.445亿美元。阿尔特曼在Twitter上回答马斯克的问题时表示,在用户与ChatGPT的每次交互中OpenAI花费的计算成本为“个位数美分”,随着ChatGPT变得流行,每月的计算成本可能达到数百万美元。

大模型高昂的训练成本让普通创业公司难以为继,因此参与者基本都是的科技巨头。

参考资料

🔲 ☆

关于认知的理解

张一鸣说:对事情的认知是最关键的,你对事情的理解,就是你在这件事情上的竞争力,因为理论上其他的生产要素都可以构建。

傅盛说:人与人最大的差别是认知!

认知百度趋势

认知这个词最近几年特别火,越来越多的自媒体喜欢拿这个词来炒作,说认知的最高境界是看透本质,就是要具备上帝思维,要像上帝一样思考,洞悉宇宙规律,顺从自然法则,尊重人性善恶。但认知到底是什么意思?它决定的是什么?怎么提升认知呢?

一、认知是什么

认知这个词来自拉丁词根cognoscere,意思是“知道”。当我们谈论到认知,我们通常指的是与知识相关的一切,即我们已经通过学习和经验获得的资料的积累。认知公认的定义是通过感知处理信息的能力(即我们通过不同的感官得到刺激),是获得知识的重要过程,而我们的主观特征,使我们能够整合所有这些信息分析和解释我们的世界。

1.1 认知过程

认知,是指人们获得知识或应用知识的过程,或信息加工的过程,这是人的最基本的心理过程。它包括感觉、知觉、记忆、思维、想象和语言等。人脑接受外界输入的信息,经过头脑的加工处理,转换成内在的心理活动,进而支配人的行为,这个过程就是信息加工的过程,也就是认知过程

认知过程

人的认知能力与人的认识过程是密切相关的,可以说认知是人的认识过程的一种产物。一般说来,人们对客观事物的感知(感觉、知觉)、思维(想象、联想、思考)等都是认识活动。认识过程是主观客观化的过程,即主观反映客观,使客观表现在主观中。

认知过程指人脑通过感觉、知觉、记忆、思维、想象等形式反映客观对象的性质及对象间关系的过程。

认知过程

1.2 举个例子

同样是参加工作一年的4s店汽修技工A\B\C三人。

  • A想努力多挣点钱,于是每天加班,抢着做那些工时高(工时高,工资多),效率高的维修单。
  • B想努力多挣点钱,于是他每天下班后去研究学习新的技术知识,上班后尽量接技术性高的,跟新技术相关的单子。
  • C想努力多挣点钱,于是他学习技术的同时,还组建了一个微信客户群,把每位接待过的车主都拉进群。并经常在群里更新一些汽车相关常识,新技术等知识,帮客户分析用车问题。

这三人明显在对环境的认知上有很大差别。

  • A认为:多劳即多得。
  • B认为:自我提升重要,价值取决于个体技能。
  • C认为:个人技能、利用环境积累有效客户资源。人与资源的配合重要。

他们之后的发展趋势我们也可以简单地预测一下。

  • A:汽车技术革新是非常快的,随着需求的提升,在传统的机械构造上更新了更多的电子技术,“吃老本”是行不通的。A会逐渐感到技术跟不上需求,变得越来越吃力。
  • B:花费大量的精力在提升自己,工作上会得心应手,随着时间积累技术上明显领先他人。做到大师傅,大组长,技术主管等不难。
  • C:花费部分精力学习,能应对大部分工作,并分出部分精力通过微信群服务得到了大量客户的黏性和信任,业内口碑建立。排除其他因素下,相比A和B,晋升管理层的机会要大很多,积累的客户资源对以后做相关的创业也有很大帮助。

二、认知水平层级

认知上从低到高,是可以分为三个等级。不同的认知,决定了不同的命运。

2.1 第一层:一元思维模式

在非洲的贫民窟里,有位警察打死了一条疯狗。
目击者便将这件事,告诉了当地的一个居民。
“警察打死了……”
目击者刚开口说了前半句,那人就打断他,并发出质问:“警察打死人了?谁给他们的权力?警察就可以为所欲为吗?”
目击者接着说:“打死了的是一条狗。”
那人又怒斥道:“狗怎么了?狗就不是生命吗?一条活生生的生命消失了,就没人为此负责吗?”
目击者连忙解释:“那是一条疯狗。”
那人依旧不依不饶:“是不是疯狗是由你来评定的吗?有经过鉴定吗?鉴定程序合法吗?这里面难道没有别的黑幕吗?”
目击者的声音越来越小:“当时它正在追着路人乱咬,我亲眼看到的,没人招惹它!”
那人依旧不甘示弱:“眼见就一定为实吗?你就不觉得蹊跷吗?这个国家的黑幕还少吗?”
最后,目击者无言以对,只好转身离去。
那人洋洋得意,正大摇大摆地准备离开,结果一不小心,踩到了睡在路边的野狗尾巴。
慌乱之中,野狗起身咬了他一口。
他一边忍痛,一边破口大骂:“谁家的疯狗乱咬人,就没人来管管吗?这个社会究竟是怎么了?”

低认知的人,都是单线思维,常常以自我为中心,无法和外界的观念兼容,一条路走到底。

如同故事里的喷子,他们是网上的键盘侠,也是生活中的杠精。不管你说什么,他们的第一反应就是争辩。

这一认知层次的人,大都自以为是,固执己见,喜欢通过抬杠来显示出自身的存在感和优越感。哪怕是既定的事实,他们也会雄辩滔滔,来获得言语上的胜利。

心理学上有个名词叫“回火效应”,指的就是当一个人遇到事实和自己的认知相违背时,往往拒绝接受这个事实,并强化固守自己最初的立场。

2.2 第二层:二元思维模式

一个老教授带着学生走在路上,打算顺带买一条鱼。
教授停留在小摊面前,反复挑了挑,选了一条鱼刺比较少的清江鱼。
鱼贩看到后说:“你眼光不行啊,这种鱼不好吃,要不要换一条?”
老教授笑着回答:“不用,就这条。”
鱼贩开口嘲笑:“你们这些读书人,认识了几个大字,读了几本书,就觉得自己什么都懂,可买鱼啊,还得听我的。”
一旁的学生看不下去,便上去与之辩驳,双方各自不服气,争吵的声音也越来越大。
教授赶紧拉着学生离开。
学生不解地问:“那位鱼贩如此羞辱咱读书人,老师您不生气吗?”
教授微微一笑说:“我能理解他。卖鱼知道哪些鱼好吃就行了,他不是必须要明白,这个世界上有多少种类的鱼,哪种鱼的鱼刺少,更适合老年人。”

拥有二元思维认知的人,对事物有基础的辨别能力,有理性也有同理心,能站在对方的角度去想问题。

就像故事中的老教授,鱼贩出言嘲讽,他反而站在他人的立场去考虑问题,明白每个人的局限性。

具有二元思维认知的人,听见不同的声音时,往往能够辩证地看待问题。 他们从来不会在无意义的辩解上浪费时间,即使不同意别人的看法,也会对其包容和尊重。

2.3 第三层:多元思维模式

第三个故事,发生在法国的一位著名画家身上。
画家在瑞士度假的时候,常常背着画板四处游走写生。
一天,当他在日内瓦湖边,刚把两岸美景收于画中,旁边走来了三位女游客。
她们边走边聊,对着四周美景就是一顿吐槽:“这个地方也没有想象中那么好看啊……”
声音渐近,当她们路过画家身边时,开始对他的画指手画脚。
“这儿画得不好,明明是棵很挺拔的树,你画得这么歪;
那里颜色也不对,这么蓝的天,你画得一点也不蓝;
还有些东西你根本没画进去,你看,那里漏掉了几个人……”
画家没有反驳,始终保持微笑,还根据她们的建议,稍稍修改了自己的画作。
次日,他去另一处写生,又碰见了那三位女士。
女士们问他:“先生,我们听说大画家贝罗尼在瑞士,想拜访一下他,你应该知道他住在哪里吧?”
画家微微弓腰,客气说道:“不敢当,我就是贝罗尼。”

拥有多元思维认知的人,自带“过滤净化系统”。

就像故事中的画家贝罗尼,面对三位女士的业余指点,他非但没有以专业傲人,反而虚心听取她们的意见。

具有多元思维认知的人,不仅能够兼容不同的观点,还能取其精华去其糟粕,从各种声音中吸收有用的信息。

三、如何提高认知

认知能力受到一系列因素的影响,包括遗传素质和个体经历。

虽然我们无法改变自己的基因,但是我么可以做一些力所能及的事情来保护和最大化自己的认知能力.

3.1 多阅读,多思考,不盲从

多阅读,多思考,不盲从
你曾经读过的书,会体现在你的谈吐、气质、性情、修养等方面,会让你的知识面更宽,思考问题的角度更多元和深刻。

不断提高你的认知层次,让你过上物质和精神更加富足的生活。

多思考,不盲从,你才能有自己人格的独立性,无论与人相处还是一个人独处,都能感到自在从容。

3.2 多见世面,多看世界

多见世面,多看世界

见识见识,有见才能更有识,见多才能识广。

古人说:读万卷书,行万里路。

走出自己的小世界,去看看各地不一样的风景,才能感受到更加丰富的生活,活出人生的高度、宽度和厚度。

眼界狭小,只能让自己的人生受限。

3.3 多与认知水平高的人交流

多与认知水平高的人交流
你的水平,取决于你经常交往的五个人的平均值。

多与认知水平高的人交流,你的认知水平,耳濡目染,潜移默化,不知不觉中就得到了提升。

四、写在最后

人的一生,都在为认知水平买单

《教父》中有一句经典台词:花半秒钟就看透事物本质的人,和花一辈子都看不清事物本质的人,注定是截然不同的命运。

人的一生,都在为认知水平买单

参考资料

认知能力与认知科学 / CogniFit
你觉得你很努力,其实你在逃避—《认知三部曲》
认知水平越低的人,越爱抬杠
提高认知水平的3种路径 / 逆习

🔲 ☆

《这就是OKR》和《ORK工作法》读书笔记

这就是OKR & ORK工作法

今年准备用OKR帮助自己更好的完成工作和生活的年度目标,OKR是一套高效能定制目标的方法,为了系统的学习,我找来 约翰·杜尔(John Doerr)《Measure What Matters》 进行阅读,这本书中文有两个翻译版本,一个是由曹仰锋/王永贵翻译、中信出版社出版的 《这就是OKR|让谷歌、亚马逊实现爆炸性增长的工作法》,一个是由許瑞宋翻译、天下文化出版的 《OKR:做最重要的事》

作者约翰·杜尔是美国最有影响力、最具创意、最不拘传统的冒险资本投资家之一,被誉为“风险投资之王”。2021年4月,他以124亿美元位列《2021福布斯全球富豪榜》第177名。他是OKR目标管理法的早期实践者,更是OKR的布道者。

后来又去读了一下 克里斯蒂娜·沃特克《OKR工作法|谷歌、领英等顶级公司的高绩效秘籍》 ,当然这本书跟谷歌、领英没什么关系,它用了一个非常特别的体裁,以2/3的篇幅构筑了一个虚构商业故事,围绕一家创业公司的试错、困惑、决断和成长的全过程,说明了OKR工作法的基本原理和实施原则。

作者克里斯蒂娜·沃特克是硅谷著名的产品专家,她曾经在Myspace(一家社区交友网站)、领英和Zynga(一家社交游戏公司)负责过重要的产品设计和管理工作。

OKR

OKR是什么

OKR(Objectives and Key Results) 即目标与关键成果法,是一套明确和跟踪目标及其完成情况的管理工具和方法,能够将目标管理自上而下贯穿到基层。

什么是OKR

OKR包含2个组成部分,即目标(Objectives)和关键结果(Key Results)两部分。目标(O)是定性陈述,关键结果(KR)是定量的。设计KR最具挑战的部分是如何把目标中定性的部分翻译为定量的数字化的表示。

目标(Objectives):目标就是你想要实现的东西,不要将其夸大或缩小。根据定义,目标应该是重要的、具体的、具有行动导向并且能鼓舞人心的。

“我们要在中距微型计算机组件业务上占据主导地位。” 这是我们努力要实现的。

关键结果(Key Results):关键结果是检查和监控我们如何达到目标的标准。有效的关键结果应该是具体的、有时限的且具有挑战性的,但又必须是能够实现的。最重要的是,它们必须是可衡量、可验证的。

“为8085型号处理器做出10个新型设计”是关键结果之一,也是一个里程碑。

OKR
OKR在将企业的使命愿景战略具像化并落地,帮助企业聚焦目标(方向一致),激发自驱力(激活个体),处于一个承上启下的位置。

也有一种论调在说:“OKR其实不是管理工具,而是沟通工具”,因为OKR并不是万能的,它不能代替正确的判断、强有力的领导和创造性的企业文化,但是,如果这些基本要素能够到位的话,OKR就能引导个人和团队走向顶峰。

OKR的发展历史

ORK工作法

  • 1968年,安迪·格罗夫在英特尔发明了OKR这套目标管理办法;
  • 1974年,约翰·杜尔加入了英特尔,跟安迪·格罗夫学习了OKR并身体力行的践行着OKR的实施原则;
  • 1999年,在Google成立不到一年的时候,约翰·杜尔投资了他们,并向他们的领导层提出OKR的概念。虽然它的创始人谢尔盖·布林和拉里·佩奇拥有强大的创业能量和雄心勃勃的愿景,但他们没有实现这一目标的管理技术,正是OKR让Google实现了100亿美元收入的雄心勃勃的目标;
  • 2017年,约翰·杜尔发表了他的《Measure What Matters》,并将这一管理智慧,分享给50多家公司和机构。

OKR VS KPI VS MBO

MBO->KPI->OKR的进化历程
彼得·德鲁克在上世纪60年代提出了 目标管理法(Management by Objectives,MBO) 的思想,MBO的原理很简单,它基于两个基本原则:第一个原则可以用乔治·巴顿的名言概括,“不要告诉下属具体怎么做,只要告诉他们你要什么,他们就会给你满意的结果”;第二个原则可以用那个时代一句惠普内部的宣传语概括,“用关键结果衡量工作绩效”,即如果基础的商业问题没有解决,不论实现多少产品功能,团队整体的绩效一定会大打折扣。第一个原则是在说如何调动团队的积极性,第二个原则是在讲怎样评估工作绩效。

此后80年代 SMART原则(Specific、Measurable、Achievable、Relevant、Time-bound)关键绩效指标(Key Performance Indicators,KPI) 开始流行起来。KPI把对绩效的评估简化为对几个关键指标的考核,将关键指标当作评估标准,把员工的绩效与关键指标作出比较地评估方法,在一定程度上可以说是目标管理法与帕累托定律的有效结合。关键指标必须符合SMART原则:具体性(Specific)、衡量性(Measurable)、可达性(Attainable)、现实性(Realistic)、时限性(Time-based)。

后来英特尔公司把结合了前面的多种理论,发展成为OKR,OKR能适度弥补过度强调目标管理和KPI,导致悖离公司愿景的缺陷。1999年John Doerr把OKR引入Google。

一句话概括三者之间的差别:MBO目标管理是「主管和员工都想做的事」,KPI是「主管要员工做的事」,OKR则是「我自己想做的事

MBO vs OKR vs KPI

OKR的实施步骤

确定目标

目标来源于对业务战略或工作计划的分解,同时,也是确定关键成果的唯一依据。知道要去哪里的人,往往会更加清楚如何到达目的地。

确定目标时需要满足如下要求:

  • 目标明确且具有挑战性:目标要有野心,并非百分之百能够完成目标,让员工走出能力“舒适区”,最好达到能力挑战区。
  • 兼顾自上而下与自下而上 : 设定的方式总体而言是自上而下,同时鼓励员工自主发起目标比与直接上级进行讨论。
  • 简洁、聚焦: 每人每个季度目标不超过5个,强调对目标的筛选和重要性的把握,将有限的资源聚焦在最重要的事情上。
  • 公开透明: 任何层级的OKR在全公司内公开透明,保证从组织到个人目标的一致性且互不重叠。
好的目标不好的目标
拿下南湾地区的咖啡直销零售市场销售额提升30%。
推出一个很棒的最小化可行产品(MVP)用户增加一倍。
改变帕洛阿尔托地区的优惠券使用习惯!B系列产品收入增加到500万美元
完成一轮融资。

为什么这些是不太好的目标?因为它们实质上是关键结果。

制定关键结果

关键结果应该是明确的、具体的、可衡量的,产出和投入的组合(匹配)对其有所帮助。每个目标的关键结果都不要超过5个,完成所有关键结果的关键和前提是实现目标,如果目标没有实现,那就不是OKR了。

确定关键结果需要满足的条件:

  • 必须可量化:设定可量化的关键结果能够准确衡量其完成情况,避免人浮于事。
  • 直接性: 每个KR必须是能够直接完成的,不能是间接完成,更不能通过其他协助来完成。
  • 数量精简: 每一个O分解出的KRs不超过5个,避免分散精力。
  • 周期内灵活调整: O一旦确定一般不可改变,但KRs在一个周期内可以酌情及时调整。

差VS好关键结果

追踪成果

不是年末或者整个OKR结束以后才进行结果评估,而是在整个过程中随时的追踪,在这期间,如果发现环境有变化或者某些关键结果亮起了红灯,就需要及时调整方向和资源投入。

CFR
我们需要一个新的人力资源模式来适应新的工作环境。这一模式就是持续性绩效管理体系,用于取代当前的年度评估体系。持续性绩效管理是通过一种叫作 CFR(Conversation,Feedback,Recognition) 的管理工具来实现的:

  • 对话(Conversation):经理与员工之间真实的、高质量的交流,旨在对绩效提升起到驱动作用。
  • 反馈(Feedback):同事之间面对面进行双向沟通或通过网络进行交流,以评估工作进展情况并探讨未来的改进方向。
  • 认可(Recognition):根据个体所做贡献的大小施以对等的表彰。
    CFR

和OKR一样,CFR在组织的各层级都强调透明、问责、授权和团队合作。CFR是有效沟通的“刺激物”,它能激发OKR,并将其送入正确的轨道。CFR是一个完整的交付系统,用于衡量什么才是最重要的事情,让绩效管理“直击要害”。CFR完全体现了安迪·格鲁夫创新方法的精髓和力量,也使得OKR更加人性化。

四象限看板
《OKR工作法》介绍了利用四象限图进行OKR跟踪,以周级别进行本周的回顾,掌握 “承担责任-庆祝成果” 的节奏

  • 每周一,团队一起开会盘点 OKR,来明确本周具体负责完成哪些任务。
  • 每周五,召开“胜利会议”,让每个团队都可以展示本周的工作成果,并准备一些酒水饮料和点心等庆祝这些成果。

四象限看板

  • 第一象限-OKR当前状态:展示目标总进度和关键成果总进度。第一象限的作用是辅助团队重新明确OKR,以及盘点当前关键结果,调整关键结果信心指数。
  • 第二象限-本周关注的任务:列出本周3~4件最重要、只有完成才能推进目标的任务,确定这几件任务的优先级。
  • 第三象限-未来四周的计划:规划近期需要准备或支持的事项。当第二象限的事项发生变化时,第三象限的工作任务也要及时调整。
  • 第四象限-其他状态目标:关键成果当前进展, 直观反应KR上出现的一系列问题,方便及时跟进排除。

关键结果后面的百分数是OKR的信心指数,它是一种自我预估的自信心度量,描述实现KR的信心。在项目推进过程中,根据进展情况,需要不断的调整这个信心指数。

总结评分
给一个目标结果打分最简单、最明确的方法是通过计算其相关关键结果的百分比完成率。
谷歌使用0~1.0分作为计量标准,也就是说的交通灯打分法

  • 0.7~1.0分=绿色(0.7以上则代表完成目标,但是如果是1分,那么需要注意是否目标不够挑战,在下个周期需要加大挑战性;)
  • 0.4~0.6分=黄色(取得了进步,但是并未完成目标)
  • 0.0~0.3分=红色(并未取得进步,也没有完成目标,或者是目标挑战性太强,需要分析找出原因。)

比如我们完成了5个指标中的4个,基准得分为0.8,在绿色区域。

OKR评分

KR的达成要与个人的绩效考核脱钩。

OKR的四大利器

约翰·杜尔在《Measure What Matters》一书中,系统地阐述了OKR系统的四大利器——聚焦、协同、追踪、挑战

聚焦:对优先事项的聚焦和承诺

做正确的事,远比正确做事更重要。每个成员都朝着一个方向使劲,形成合力。

  • 聚焦重要的工作,同时清楚什么是不重要的。
  • OKR是一种精准沟通的工具,能消除困惑,让我们进一步明确目标,聚焦到关键的成功要素上。

OKR系统应该为企业提供最卓越的东西,即“聚焦”。只有当我们将目标的数量保持在很小时,才会真正聚焦于此。季度OKR的理想数量往往介于3个到5个之间

协同:团队工作的协调和联系

OKR对每个成员透明,个人与组织目标一致,相互协作。

  • OKR具有透明性,上自首席执行官,下至一般员工,每个人的目标都是公开的。
  • 每个员工都将个人目标与公司计划紧密联系起来,进而明确两者之间的依赖关系,并与其他团队展开通力协作。
  • 这种自下而上的协同,将个人贡献与组织成功联系起来,为工作赋予了特定的意义。
  • 自下而上的OKR,则通过加深员工的主人翁意识,促进了个人的参与和创新。

不要雇用聪明人,然后告诉他们去做什么;而是要让他们告诉我们,应该做什么。——史蒂夫·乔布斯

追踪:责任追踪

定期检查,阶段复盘,持续改进,自我驱动,这一切都是基于客观、负责的态度。

  • OKR是有数据驱动的
  • 定期检查、目标评分和持续的重新评估可以让OKR充满生机
  • 所有这一切都是基于客观、负责的精神。
  • 危险的关键结果会引发某些行动,应使其回到正轨,或者在必要时对其进行修改或替换。

研究表明,取得可量化的进步相比公众的认可、金钱刺激或实现目标本身,对人更有驱动力。 《驱动力》一书的作者丹尼尔·平克(Daniel Pink)非常认同这一观点,他说:“对个体来说,最大的激励因素是‘在工作中取得进步’。人们取得进步的时候是他们感到最积极、最投入的时候。”

挑战:充分延展进而挑战不可能

允许失败,不作为考核依据,挑战更多“不可能”,释放出无限创造力。

  • OKR激励我们不断超越之前设定的各种可能,甚至超出我们想象力。
  • 通过挑战极限和允许失败,OKR能够促使我们释放出最具创造力的雄心和自我。

埃德温·洛克被誉为结构化目标设定理论之父,他对目标的难易程度与实现程度之间的关系进行了大量实验和实证研究。尽管研究的范围和领域很广泛,但研究结果却出奇一致。洛克写道:“目标设定越具有挑战性,所产生的结果越佳。虽然高难度的目标与其产出结果之间的差距,通常会大于低难度目标与其产出结果之间的差距,但是前者达到的最终结果仍然比后者要好。 ”研究结果显示,设定具有挑战性目标的员工,不仅会取得更好的绩效,还会提高自我驱动力,以及对工作的投入程度。洛克指出:“设定明确而有挑战性的目标不仅可以提高工作的趣味性,同时也可以帮助人们体会到工作带来的愉悦感。

🔲 ☆

强化学习入门:基本思想和经典算法

强化学习

概念定义

强化学习(Reinforcement learning,RL)讨论的问题是一个智能体(agent) 怎么在一个复杂不确定的 环境(environment) 里面去极大化它能获得的奖励。通过感知所处环境的 状态(state)动作(action)反应(reward), 来指导更好的动作,从而获得最大的 收益(return),这被称为在交互中学习,这样的学习方法就被称作强化学习。

Reinforcement learning is learning what to do—how to map situations to actions——so as to maximize a numerical reward signal.
----- Richard S. Sutton and Andrew G. Barto 《Reinforcement Learning: An Introduction II》

强化学习
在强化学习过程中,智能体跟环境一直在交互。智能体在环境里面获取到状态,智能体会利用这个状态输出一个动作,一个决策。然后这个决策会放到环境之中去,环境会根据智能体采取的决策,输出下一个状态以及当前的这个决策得到的奖励。智能体的目的就是为了尽可能多地从环境中获取奖励。

强化学习,监督学习,非监督学习
强化学习是除了监督学习和非监督学习之外的第三种基本的机器学习方法。

  • 监督学习 是从外部监督者提供的带标注训练集中进行学习。 (任务驱动型)
  • 非监督学习 是一个典型的寻找未标注数据中隐含结构的过程。 (数据驱动型)
  • 强化学习 更偏重于智能体与环境的交互, 这带来了一个独有的挑战 ——“试错(exploration)”与“开发(exploitation)”之间的折中权衡,智能体必须开发已有的经验来获取收益,同时也要进行试探,使得未来可以获得更好的动作选择空间。 (从错误中学习)

强化学习主要有以下几个特点:

  • 试错学习:强化学习一般没有直接的指导信息,Agent 要以不断与 Environment 进行交互,通过试错的方式来获得最佳策略(Policy)。
  • 延迟回报:强化学习的指导信息很少,而且往往是在事后(最后一个状态(State))才给出的。比如 围棋中只有到了最后才能知道胜负。

基本元素

强化学习的两部分和三要素

  • 环境(Environment) 是一个外部系统,智能体处于这个系统中,能够感知到这个系统并且能够基于感知到的状态做出一定的行动。
  • 智能体(Agent) 是一个嵌入到环境中的系统,能够通过采取行动来改变环境的状态。
  • 状态(State)/观察值(Observation):状态是对世界的完整描述,不会隐藏世界的信息。观测是对状态的部分描述,可能会遗漏一些信息。
  • 动作(Action):不同的环境允许不同种类的动作,在给定的环境中,有效动作的集合经常被称为动作空间(action space),包括离散动作空间(discrete action spaces)和连续动作空间(continuous action spaces),例如,走迷宫机器人如果只有东南西北这 4 种移动方式,则其为离散动作空间;如果机器人向 360◦ 中的任意角度都可以移动,则为连续动作空间。
  • 奖励(Reward):是由环境给的一个标量的反馈信号(scalar feedback signal),这个信号显示了智能体在某一步采 取了某个策略的表现如何。

强化学习范例

名称对应上图中的内容
agent
environment鸟周围的环境,水管、天空(包括小鸟本身)
state拍个照(目前的像素)
action向上向下动作
reward距离(越远奖励越高)

应用场景

强化学习应用

游戏
强化学习游戏领域的应用
强化学习游戏领域的应用

机器人
强化学习机器人领域的应用

名称对应上图中的内容
agent策略-保持机器人平衡并行走
environment机器人、地面、外部干扰
state传感器采集的信号
action作用在机器人各个关节的电机扭矩
reward评估控制性能的数值信号

推荐广告
强化学习在推荐中的应用
A Reinforcement Learning Framework for Explainable Recommendation

强化学习在广告中的应用
Deep Reinforcement Learning for Online Advertising in Recommender Systems.
同时解决三个任务:是否插入广告;如果插入,插入哪一条广告;以及插入广告在推荐列表的哪个位置。

相关术语

策略(Policy)
策略是智能体用于决定下一步执行什么行动的规则。可以是确定性的,一般表示为:μ\mu:

at=μ(st)a_t = \mu(s_t)

也可以是随机的,一般表示为 π\pi:

atπ(st)a_t \sim \pi(\cdot | s_t)

状态转移(State Transition)
状态转移,可以是确定的也可以是随机的,一般认为是随机的,其随机性来源于环境。可以用状态密度函数来表示:

p(ss,a)=P(S=sS=s,A=a)p\left(s^{\prime} \mid s, a\right)=\mathbb{P}\left(S^{\prime}=s^{\prime} \mid S=s, A=a\right)

环境可能会变化,在当前环境和行动下,衡量系统状态向某一个状态转移的概率是多少,注意环境的变化通常是未知的。

回报(Return)
回报又称cumulated future reward,一般表示为UU,定义为

Ut=Rt+Rt+1+Rt+2+Rt+3+U_{t}=R_{t}+R_{t+1}+R_{t+2}+R_{t+3}+\cdots

其中RtR_{t}表示第t时刻的奖励,agent的目标就是让Return最大化。

未来的奖励不如现在等值的奖励那么好(比如一年后给100块不如现在就给),所以Rt+1R_{t+1}的权重应该小于RtR_t。因此,强化学习通常用discounted return(折扣回报,又称cumulative discounted future reward),取γ\gamma为discount rate(折扣率),γ(0,1]\gamma\in(0, 1],则有,

Ut=Rt+γRt+1+γ2Rt+2+γ3Rt+3+U_{t}=R_{t}+\gamma R_{t+1}+\gamma^{2} R_{t+2}+\gamma^{3} R_{t+3}+\cdots

价值函数(Value Function)
举例来说,在象棋游戏中,定义赢得游戏得1分,其他动作得0分,状态是棋盘上棋子的位置。仅从1分和0分这两个数值并不能知道智能体在游戏过程中到底下得怎么样,而通过价值函数则可以获得更多洞察。

价值函数使用期望对未来的收益进行预测,一方面不必等待未来的收益实际发生就可以获知当前状态的好坏,另一方面通过期望汇总了未来各种可能的收益情况。使用价值函数可以很方便地评价不同策略的好坏。

价值函数

  • 状态价值函数(State-value Function):用来度量给定策略π\pi的情况下,当前状态sts_t的好坏程度。
  • 动作价值函数(Action-value Function):用来度量给定状态sts_t和策略π\pi的情况下,采用动作ata_t的好坏程度。

算法分类

强化学习算法的分类
按照环境是否已知划分:免模型学习(Model-Free) vs 有模型学习(Model-Based)

  • Model-free就是不去学习和理解环境,环境给出什么信息就是什么信息,常见的方法有policy optimization和Q-learning。
  • Model-Based是去学习和理解环境,学会用一个模型来模拟环境,通过模拟的环境来得到反馈。Model-Based相当于比Model-Free多了模拟环境这个环节,通过模拟环境预判接下来会发生的所有情况,然后选择最佳的情况。

一般情况下,环境都是不可知的,所以这里主要研究无模型问题。

按照学习方式划分:在线策略(On-Policy) vs 离线策略(Off-Policy)

  • On-Policy是指agent必须本人在场, 并且一定是本人边玩边学习。典型的算法为Sarsa。
  • Off-Policy是指agent可以选择自己玩, 也可以选择看着别人玩, 通过看别人玩来学习别人的行为准则, 离线学习同样是从过往的经验中学习, 但是这些过往的经历没必要是自己的经历, 任何人的经历都能被学习,也没有必要是边玩边学习,玩和学习的时间可以不同步。典型的方法是Q-learning,以及Deep-Q-Network。

按照学习目标划分:基于策略(Policy-Based)和基于价值(Value-Based)。
基于策略VS基于价值

  • Policy-Based的方法直接输出下一步动作的概率,根据概率来选取动作。但不一定概率最高就会选择该动作,还是会从整体进行考虑。适用于非连续和连续的动作。常见的方法有Policy gradients。
  • Value-Based的方法输出的是动作的价值,选择价值最高的动作。适用于非连续的动作。常见的方法有Q-learning、Deep Q Network和Sarsa。
  • 更为厉害的方法是二者的结合:Actor-Critic,Actor根据概率做出动作,Critic根据动作给出价值,从而加速学习过程,常见的有A2C,A3C,DDPG等。

经典算法

经典算法:Q-learning,Sarsa,DQN,Policy Gradient,A3C,DDPG,PPO

学习方法说明经典算法
基于价值(Value-Based)通过价值选行为Q Learning, Sarsa, Deep Q Network
基于策略(Policy-Based)直接选最佳行为Policy Gradients
基于模型(Model-Based)想象环境并从中学习Model based RL

Value-Based & Policy-Based & Actor Critic

下面我们挑选一些有代表性的算法进行讲解:

  • 基于表格、没有神经网络参与的Q-Learning算法
  • 基于价值(Value-Based)的Deep Q Network(DQN)算法
  • 基于策略(Policy-Based)的Policy Gradient(PG)算法
  • 结合了Value-Based和Policy-Based的Actor Critic算法。

Q-Learning

在Q-learning中,我们维护一张Q值表,表的维数为:状态数S * 动作数A,表中每个数代表在当前状态S下可以采用动作A可以获得的未来收益的折现和。我们不断的迭代我们的Q值表使其最终收敛,然后根据Q值表我们就可以在每个状态下选取一个最优策略。

Q-Learning场景范例
假设机器人必须越过迷宫并到达终点。有地雷,机器人一次只能移动一个地砖。如果机器人踏上矿井,机器人就死了。机器人必须在尽可能短的时间内到达终点。
得分/奖励系统如下:

  • 机器人在每一步都失去1点。这样做是为了使机器人采用最短路径并尽可能快地到达目标。
  • 如果机器人踩到地雷,则点损失为100并且游戏结束。
  • 如果机器人获得动力⚡️,它会获得1点。
  • 如果机器人达到最终目标,则机器人获得100分。
    现在,显而易见的问题是:我们如何训练机器人以最短的路径到达最终目标而不踩矿井?

Q值表

Q值表(Q-Table)是一个简单查找表的名称,我们计算每个状态的最大预期未来奖励。基本上,这张表将指导我们在每个状态采取最佳行动。
Q-Table

Q函数

Q函数(Q-Function)即为上文提到的动作价值函数,他有两个输入:「状态」和「动作」。它将返回在该状态下执行该动作的未来奖励期望。
Q函数

我们可以把Q函数视为一个在Q-Table上滚动的读取器,用于寻找与当前状态关联的行以及与动作关联的列。它会从相匹配的单元格中返回 Q 值。这就是未来奖励的期望。
Q函数
在我们探索环境(environment)之前,Q-table 会给出相同的任意的设定值(大多数情况下是 0)。随着对环境的持续探索,这个 Q-table 会通过迭代地使用 Bellman 方程(动态规划方程)更新 Q(s,a) 来给出越来越好的近似。

算法流程

Q-learning实现

Q-learning的学习过程

第1步:初始化Q值表
我们将首先构建一个Q值表。有n列,其中n=操作数。有m行,其中m=状态数。我们将值初始化为0
初始化Q表

步骤2和3:选择并执行操作
这些步骤的组合在不确定的时间内完成。这意味着此步骤一直运行,直到我们停止训练,或者训练循环停止。
选择并执行操作

如果每个Q值都等于零,我们就需要权衡探索/利用(exploration/exploitation)的程度了,思路就是,在一开始,我们将使用 epsilon 贪婪策略:

  • 我们指定一个探索速率「epsilon」,一开始将它设定为 1。这个就是我们将随机采用的步长。在一开始,这个速率应该处于最大值,因为我们不知道 Q-table 中任何的值。这意味着,我们需要通过随机选择动作进行大量的探索。
  • 生成一个随机数。如果这个数大于 epsilon,那么我们将会进行「利用」(这意味着我们在每一步利用已经知道的信息选择动作)。否则,我们将继续进行探索。
  • 在刚开始训练 Q 函数时,我们必须有一个大的 epsilon。随着智能体对估算出的 Q 值更有把握,我们将逐渐减小 epsilon。

权衡探索和利用

步骤4和5:评估
现在我们采取了行动并观察了结果和奖励。我们需要更新功能Q(s,a):
更新Q表

最后生成的Q表:
生成的Q表

Deep Q Network

在普通的Q-learning中,当状态和动作空间是离散且维数不高时可使用Q-Table储存每个状态动作对的Q值,而当状态和动作空间是高维连续时,使用Q-Table不现实,我们无法构建可以存储超大状态空间的Q_table。不过,在机器学习中, 有一种方法对这种事情很在行,那就是神经网络,可以将状态和动作当成神经网络的输入,然后经过神经网络分析后得到动作的 Q 值,这样就没必要在表格中记录 Q 值,而是直接使用神经网络预测Q值
Deep Q Network

经验回放

DQN利用Qlearning特点,目标策略与动作策略分离,学习时利用经验池储存的经验取batch更新Q。同时提高了样本的利用率,也打乱了样本状态相关性使其符合神经网络的使用特点。

固定Q目标

神经网络一般学习的是固定的目标,而Qlearning中Q同样为学习的变化量,变动太大不利于学习。所以DQN使Q在一段时间内保持不变,使神经网络更易于学习。

算法流程

DQN算法流程

主要问题

  • 在估计值函数的时候一个任意小的变化可能导致对应动作被选择或者不被选择,这种不连续的变化是致使基于值函数的方法无法得到收敛保证的重要因素。
  • 选择最大的Q值这样一个搜索过程在高纬度或者连续空间是非常困难的;
  • 无法学习到随机策略,有些情况下随机策略往往是最优策略。

Policy Gradient

前面我们介绍的Q-Learning和DQN都是基于价值的强化学习算法,在给定一个状态下,计算采取每个动作的价值,我们选择有最高Q值(在所有状态下最大的期望奖励)的行动。如果我们省略中间的步骤,即直接根据当前的状态来选择动作,也就引出了强化学习中的另一种很重要的算法,即策略梯度(Policy Gradient, PG)

策略梯度不通过误差反向传播,它通过观测信息选出一个行为直接进行反向传播,当然出人意料的是他并没有误差,而是利用reward奖励直接对选择行为的可能性进行增强和减弱,好的行为会被增加下一次被选中的概率,不好的行为会被减弱下次被选中的概率。

举例如下图所示:输入当前的状态,输出action的概率分布,选择概率最大的一个action作为要执行的操作。
Policy Gradient

优缺点

优点

  • 连续的动作空间(或者高维空间)中更加高效;
  • 可以实现随机化的策略;
  • 某种情况下,价值函数可能比较难以计算,而策略函数较容易。

缺点

  • 通常收敛到局部最优而非全局最优
  • 评估一个策略通常低效(这个过程可能慢,但是具有更高的可变性,其中也会出现很多并不有效的尝试,而且方差高)

REINFORCE

蒙特卡罗策略梯度reinforce算法是策略梯度最简单的也是最经典的一个算法。
REINFORCE算法流程

算法流程

REINFORCE流程图
首先我们需要一个 policy model 来输出动作概率,输出动作概率后,我们 sample() 函数去得到一个具体的动作,然后跟环境交互过后,我们可以得到一整个回合的数据。拿到回合数据之后,我再去执行一下 learn() 函数,在 learn() 函数里面,我就可以拿这些数据去构造损失函数,扔给这个优化器去优化,去更新我的 policy model。

Actor Critic

演员-评论家算法(Actor-Critic)是基于策略(Policy Based)和基于价值(Value Based)相结合的方法

演员-评论家算法

  • 演员(Actor)是指策略函数 πθ(as)\pi_{\theta}(a|s),即学习一个策略来得到尽量高的回报。
  • 评论家(Critic)是指值函数 Vπ(s)V^{\pi}(s),对当前策略的值函数进行估计,即评估演员的好坏。
  • 借助于价值函数,演员-评论家算法可以进行单步更新参数,不需要等到回合结束才进行更新。

网络结构

整体结构:
演员-评论家网络结构

Actor和Critic的网络结构:
Actor Critic network

算法流程

Actor Critic Algorithm

问题和改进

Actor Critic 取决于 Critic 的价值判断, 但是 Critic 难收敛, 再加上 Actor 的更新, 就更难收敛,为了解决该问题又提出了 A3C 算法和 DDPG 算法。

改进算法1:A3C
异步的优势行动者评论家算法(Asynchronous Advantage Actor-Critic,A3C),相比Actor-Critic,A3C的优化主要有3点,分别是异步训练框架,网络结构优化,Critic评估点的优化。其中异步训练框架是最大的优化。

A3C

改进算法2:DDPG
深度确定性策略梯度(Deep Deterministic Policy Gradient,DDPG),从DDPG这个名字看,它是由D(Deep)+D(Deterministic )+ PG(Policy Gradient)组成。

  • Deep 是因为用了神经网络;
  • Deterministic 表示 DDPG 输出的是一个确定性的动作,可以用于连续动作的一个环境;
  • Policy Gradient 代表的是它用到的是策略网络。REINFORCE 算法每隔一个 episode 就更新一次,但 DDPG 网络是每个 step 都会更新一次 policy 网络,也就是说它是一个单步更新的 policy 网络。

DDPG

参考资料

🔲 ⭐

《如何不靠运气变得富有》读后感

Naval Ravikant为大家所熟知是他成功创立了帮助初创公司融资的平台AngelList,同时他是优步和Twitter的早期投资人。他有一个很有名的长推特,叫做《如何致富,不靠运气》,谈了他的商业观,在网上引起了很多共鸣,被翻译成多国语言。

我读完以后,从财富认知、个人成长和个人选择总结了我从中学到的东西。

如何不靠运气变得富有

财富认知

追求财富

Seek wealth, not money or status. Wealth is having assets that earn while you sleep. Money is how we transfer time and wealth. Status is your place in the social hierarchy.

去寻求财富,而非金钱或地位。财富就是你拥有资产,而资产在你睡觉的时候都还在为你赚钱;金钱是我们转换时间和财富的工具;身份是你在社会等级体系里所处的位置。

  • 财富是一个正和游戏,世界上每个人都可以拥有一所房子,你有房子并不会影响我有房子的能力。财富的终极目标是自由,财富是关于你如何成为你自己的事。
  • 金钱是社会信用,它是一种从别人的时间中获得信用和债务的能力。
  • 地位是一个零和游戏。这是一个非常古老的游戏。我们从原始人部落开始就玩这个游戏了。也就是等级制度。老大是谁?老二是谁?老三是谁?老三打败了老二,老二就必须让位。所以,地位是一个零和游戏。

每个人都可以变得富有,每个人都可以退休,每个人都可以成功。这只是一个教育和欲望的问题。前提是你必须想要它。如果你不想要,没关系,没人强迫你参与游戏,但是不要试图贬低那些积极参与游戏的人。

如何致富

You’re not going to get rich renting out your time. You must own equity — a piece of a business — to gain your financial freedom.

出租时间不会让你变得富有,因为你不能非线性地赚钱,你必须拥有公司的股权,才能获得财务自由。

You will get rich by giving society what it wants but does not yet know how to get. At scale.

提供社会大众想要但是他们还不知道如何获取的东西,你就会因此而致富。但有一点:你必须规模化地供应社会。

  • 第一步:找到“个人-市场-产品”这三者交叉的那个定位。你问问自己,你的竞争力在哪里?市场需要的哪一种产品,可以用到你的这种竞争力?这就是你的定位。
  • 第二步:使用各种杠杆(leverage),使得你的产品可以服务尽可能大的市场。

赚大钱的奥秘就是定位杠杆这两件事。当市场需要你的产品时,如果有办法"放大"产品,服务更多的人,你就成功了。

慢慢变富

There are no get rich quick schemes. That’s just someone else getting rich off you.

这个世界上并没有快速赚钱致富的方法,如果你想要找寻这种方法,那它只会让别人从你身上赚钱致富。

  • 财富不是一步登天,他是一点点堆积起来的。
  • 致富与运气无关,要掌握致富的技能,而且每个人都可以拥有这种技能。
  • 学会如何销售,学会如何创建。如果你同时能做到这两件事,你的成功将无可阻挡。硅谷模式:建造者+销售者=最佳拍档

Naval Ravikant

个人成长

Arm yourself with specific knowledge, accountability, and leverage.

用独到知识,责任感和杠杆武装自己。

独到知识(specific knowledge)

Specific knowledge is knowledge that you cannot be trained for. If society can train you, it can train someone else, and replace you.

独到知识是那种不可以通过培训而获得的知识。这是因为,如果这种知识可以经由培训而得,那么其他人同样也可以,并且以此取代你。你获得的收入=投资培训所产生的回报-培训你的成本。

  • 在真正的好奇心和热情驱使你前进的路上,你更有可能获得独到知识,而不是在追逐潮流热点的闻风起舞脚步里。
  • 创建独到知识的过程对于你就像是在玩,而对于别人则像是工作。
  • 不能通过学校教育教会一个人独到知识,它只能通过学徒制口传身教。
  • 独到知识通常极富技术性和创造性,因此它不能被外包或自动实现。

承担责任(accountability)

Embrace accountability, and take business risks under your own name. Society will reward you with responsibility, equity, and leverage.

拥抱责任感,押上自己的声誉以承担商业风险。社会也会以责任,产权和杠杆作为回报。

  • 劳动者按小时计算薪酬,责任感少。假如你是一名建筑工人,你的工作是修理人们的房屋。有人在周围不断命令你,告诉你:“打破那块石头,磨碎那块木头,把这那东西放在什么什么地方。”。你是建筑工人中的一个不知名的齿轮,房子的主人或买主不知道也不关心你为之工作。
  • 总承包商获得权益,但他们也承担风险。10万美元来装修一栋房子,而实际上总承包商的成本,说来说去都是7万美元,那么承包商会把剩下的3万美元据为己有。他们得到了资产,但也承担了责任和风险。如果项目失败了,有了损失,他们就需要承受损失。但你看,责任感给了他们一些额外的潜在收入。

最具责任感的人都具有独一无二的、世人皆知的、敢于冒险的个性特征,如奥普拉、川普、坎耶、埃隆。

利用杠杆(leverage)

Fortunes require leverage. Business leverage comes from capital, people, and products with no marginal cost of replication (code and media).

财富增长需要使用杠杆。商业杠杆有三个来源:1、资本;2、人力;3、复制起来边际成本为零的产品(如:代码和媒体)。

  • 资本的意思就是钱。想要融资,那就运用你的独到知识,配合你责任感,展示出你良好的判断力。
  • 人力指的就是为你干活的人,它是最古老也是争夺最激烈的杠杆。人力杠杆会让你父母因为你手下有许多人为你工作而感到骄傲,但你不要浪费生命去追求这一点。
  • 代码和媒体是无需要许可即可使用的杠杆。它们是新贵人群背后的杠杆,你可以通过自己创建的软件和媒体,在睡觉时仍然为你干活。

对于劳动杠杆,必须有人决定跟随你。对于资本杠杆来说,必须有人给你钱,给你投资让你做产品。写代码、写书、录制播客、发推特、YouTubing,这些东西,都是无需权限的。你不需要任何人的许可就可以做这些事情,它们非常公平。

杠杆能够成倍地放大你的判断力(所产生的效能)。

判断力需要经验,但它可以通过学习基本技能的方法更快速地建立起来。

  • 阅读你所热爱的内容,直到你爱上阅读。
  • 速食一百本书毫无意义。
  • 学习的手段是丰富的,学习的欲望是稀缺的。
  • 数学和逻辑是理解其他一切事物的基础。
  • 没有所谓的商业技能,少读商业杂志和商业课程。
  • 学习微观经济学、博弈论、心理学、说服力、伦理学、数学和计算机。
  • 学习讲故事和编程。

Naval

个人选择

Pick an industry where you can play long term games with long term people.

选择一个你可以长期从事的产业,寻找一批可以一起长期共事的人。

选择合作伙伴

Pick business partners with high intelligence, energy, and, above all, integrity.

在选择商业合作伙伴的时候,选择那些高智商精力旺盛的家伙,但在这一切之上,他应该是个正直诚实的人。

  • 不要和愤世嫉俗者和悲观主义者合作,因为他们会任由坏事发生,以此证明他们的负面看法是正确的。
  • 与理性的乐观主义者合作,理性的意思是你必须看清世界的真相。但你必须对自己的能力保持乐观,对自己想要完成的使命保持乐观。

选择行业赛道

Play iterated games. All the returns in life, whether in wealth, relationships, or knowledge, come from compound interest.

玩就玩复利游戏。无论是财富,人际关系或者是知识,所有你人生里获得的回报,都来自复利。

  • 选择一个你可以和长期伙伴玩长期游戏的行业,所有的回报都来自于多次游戏的复利。
  • 在长期游戏中,似乎每个人都在让彼此更富有。而在短期游戏中,似乎每个人都在让自己更富有。

复利是一种非常重要的力量,收益来自重复游戏的复利。

选择生活方式

People busy upgrading their lifestyles just can’t fathom this freedom.People living below their means have freedom

我们应该升级自己的自由,而不是生活方式。生活水平远低于其收入水平的人们享受着一种自由,这种自由是那些忙于改善生活方式的人们无法理解的

追求财富是因为它能给你带来自由,也就是说,你不必像白领那样一丝不苟的系领带;你不必早上6点就起床、996挤地铁上下班;你不必把时间浪费在一份没有灵魂,你不喜欢的工作上。而不是去买毛皮大衣,不是去开法拉利,不是去驾驶游艇,也不是去乘坐湾流飞机环游世界。那些东西很快就会变得无聊和愚蠢。

健康的身体,平静的头脑,充满爱的家庭。这些东西是买不来的,必须要经营才能得到。

即使你拥有世界上所有的钱,你也不会拥有这三样东西。Jeff Bezos(亚马逊董事长)还得健身,他也得为他的婚姻努力,他的内在精神状态仍然很难不被外部事件所影响。这将取决于他内心的平静与安宁。因此,我认为这三件事——你的身体健康,你的心理健康和你的亲密关系是你必须要培养的。他们能给你带来比任何金钱都多的安宁和幸福。

参考资料

🔲 ⭐

《进化的力量·刘润年度演讲》观后感

进化的力量

刘润,中国著名商业顾问,润米咨询创始人,“5分钟商学院”主理人,微信公众号“刘润”主理人,微软(中国)有限公司前战略合作总监,曾任百度、海尔、中远国际、五源资本、康宝莱等,现任腾讯、恒基、尚景家居、云汉芯城等多家知名企业的战略顾问。

商业进化和生物进化的底层逻辑是相通的:不是最强壮的,也不是最聪明的,而是最适合的才能生存。我们必须不断地进化,企业如此,个人也如此。

《进化的力量·刘润年度演讲》梳理2022年企业最需要关注的8个方面!帮助你看清世界的变化,不断进化。

进化的力量思维导图

达尔文雀

厄瓜多尔的加拉帕戈斯群岛距离南美大陆约970公里,是一些由海底火山喷发形成的小岛。这些岛上生活着一群看起来不怎么起眼的鸟类,1835年,达尔文随皇家海军“贝格尔”号勘探船造访此地时,第一次采集到了这些鸟类的标本。因为在演化生物学研究领域声名显赫,这些外形各异的鸟类得到了“达尔文雀”(Darwin’s Finches)这一响亮的名称。传说,正是这些鸟儿启发了达尔文,让他领悟了演化理论的关键。

进化论

老龄化

现状

增速放缓(年平均增速:0.57%->0.53%),男女均衡(出生人口性别比:118.1->111.3),家庭缩小(户均人口:3.10->2.62)。这三组数据,是关于中国人的“生命”状态,能不能找到另一半,如何组成家庭。

流动明显(人户分离人口:4.9亿,增长88.52%),城乡转移(城镇人口:9.02亿;乡村人口:5.10亿),人口聚集(东部:2.15% 西部:0.22%;中部:0.79%;东北:1.2%)。这三组数据,是关于“生活”,人们选择在哪里生活,靠什么生活,和谁一起生活。

少子继续(总和生育率:1.3,意愿生育率:1.8),老龄加深(60岁以上:2.64亿;65岁以上:1.91亿),劳力减少(10.06亿->9.68亿),素质提升(9.08年->9.91年)。这四组数据,是关于“生产”,有多少人需要工作,养活另外多少人,用什么方式。

每一年平均年龄增加三个月,我们这一代人大概率可以活到100岁。
中国在2000年,就已经进入轻度老龄化。预计在2022年进入深度老龄化时代,65岁以上人口占比13.5%。

活力老人

日本,1995年进入深度老龄化,26年了。或许可以是我们主要的研究对象。
日本应对老龄化的措施
关于少子化,试过生孩子就给钱啊,生孩子就放假啊,甚至海外移民计划。关于老龄化,试过延迟领取退休金啊,退休再就业啊。有些有效,有些效果不明显。在所有这些制度中,有一项制度,效果越来越突显,越来越突显。
这项制度就是:“活力老人”计划(Power Senior)

适合的岗位:专车司机,客服中心,银行柜员,空乘人员

活力老人的目的是提高生产率,让年轻人去做更有创造力的事情。

科技创新

总财富 = 劳动力 * 生产率, 一个社会所能创造的总财富,等于劳动力总量,乘以每人所创造的财富。这个“每人所能创造的财富”,就是生产率。

劳动力不会高速增长了,要实现生产率的倍速增长,只能靠科技创新。

最好的企业家拿到最先进的科学专利,找到最具行业洞察力和执行力能力的人一起合作,找到最好的协作企业共同开发。 – 王煜全 科技投资人

所有理所当然的现在,都是曾经不可思议的未来,所有现在不可思议的未来,可能都是明天理所当然的现在。

数字化

销售数字告诉你:我想买什么,评论数据告诉你:什么在阻止我付钱

数字化定义
数字化定义:从物理世界中,开采出数据,粗炼出信息,精炼出知识,聚合为智慧

开采数据

真正让iphone成功的,不是能让你感觉到他存在的东西;真正让iphone成功的,是让它能感知到你存在的东西。
你在感知这个世界的时候,这个世界也在感知你。

隐私问题

  • Google读取邮件内容,可以在Google地图中查到酒店入住,可以直接帮你写好回复邮件。
  • 隐私和便利性是相互冲突的
  • 《个人信息保护法》11月1日实施。一个没有法律保护的市场,就是一个劣币驱逐良币的市场。

粗炼信息

妈妈的味道,就是你小时候习惯了的味道。

粗炼:从数据到信息: 从金木水火土,到氢氦锂铍硼。

牛肉的数字化:M1-M9, 钻石的数字化:4C标准

牛肉、玉石、茶叶、沉香、古董。。。所有柠檬市场都值得用数字化重新做一遍。

这里主要指数据标准化的工作。

精炼知识

广告公司:用数字化的方式,把行业信息提炼为知识,提升广告效果。

企业办公:用数字化的方式,把组织信息提炼为知识,提升办公效率。

聚合智慧

智慧,就是用更低的成本,做更好的决策。 – 信也科技创始人

数字化 + 个人信息保护法 = 数字石油时代

新消费

体验 - 只要我喜欢,没有值不值
只要我喜欢,没有值不值
2021年中国人均GDP 1.21w美元,世界高收入标准是1.27w美元。

2021年,我们站在了高收入的边界线上。 – 香帅 著名金融学者

2001年,出口,中国外贸跑赢GDP1.5倍,一直增长到GDP占比36%。
2008年,投资,4万亿计划 地铁、4G、高铁
2020年,消费,大循环,双循环,消费升级,产业升级。

2021年,中国或将成为全球最大的消费市场。 – 迟福林 中国改革发展研究院院长

新消费时代:新模式,新渠道,新品牌

新模式

看上去,我们是在帮开发商买房子,其实上,我们是在帮消费者买房子。 – 胡炜 若缺科技创始人。
基本上不赚钱,交个朋友。 – 罗永浩 [帮用户消费,大型团购]
面向超级用户,春暖花开。 – 罗振宇 得到APP创始人 [对用户好]

新渠道

消费者决策的唯一依据:信息,文字->图文时代->视频时代

视频,可能是“经典互联网”的终极形态,直到元宇宙出现。经典互联网:听觉,视觉,元宇宙:触觉、味觉、嗅觉。

用短视频+直播,把所有产品都重新卖一遍。

新品牌

品牌的基础是信任 – 未来设计
炮制虽繁,必不敢省人工,品味虽贵,必不敢减物力。 – 同仁堂

品牌可能有点贵,但是被“骗”的成本更高。

新国货:经济自信 + 制度自信 = 文化自信

Z0时代

22年,00后大学毕业了。

时代划分

  • X世纪(1965~1980):科技发展,社会巨变,经济危机。 – 迷茫
  • Y时代(1980~1995):千禧一代,个人电脑,互联网。 – 自信
  • Z时代(1995~2009):数字时代原住民,看重体验,挖掘更好。 – 独立

人群特点

  • 富足:他们能赚,他们更敢花。
  • 感性:有表情包广告文案,比没有表情包的,多33%的关注。
  • 颜值:买基金看基金经理的颜值。
  • 爱国:他们长大时,国家已经强大。
  • 独立:不喜欢团建,反对加班。
  • 懒宅:追求生活最优解,买衣服买最省事的。懒得社交,懒得点赞,懒得恋爱,懒得出门。
  • 养宠:我可以得过且过,但主子必须应有尽有。
  • 养生:啤酒里面加枸杞,可乐里面加党参。 – 朋克
  • 意义:不是被缺钱的焦虑驱动,而是被意义的动力驱动。

我们必须理解他们,只有理解了他们,我们才理解了未来。我们必须和他们做朋友,只有和他们做朋友,才是时间的朋友。

流量

产品生意和流量生意,前者是把产品做出来,后者是把产品卖出去。

流量生态

流量生态的第一次打通

  • 线下:一铺养三代,流量成本高
  • 线上:天下没有难做的生意,流量成本低。

流量生态的第二次打通

  • 公域:付费用水,价高者得。
  • 私域:打井很贵,用水免费。

私域就是那些你直接拥有的、可重复低成本甚至免费触达的用户
私域模型

私有化

临沂君悦购物中心

  • 用拼团,建立信任,团购转化率22%
  • 用内容,降低成本,节约了90%以上的海报印刷费
  • 用倾听,改进服务,从反馈中,创新产品。

复购率

用覆盖率,来摊薄越来越贵的初次获客成本。

花400元留住老客户,比花4000元获得新客户,便宜太多了。 – 小鹅通

转介绍

高频低频
高价苹果手机/茅台
太爽了
房子/装修
私域:转介绍
低价生鲜,订阅服务
私域:复购率
针/指甲刀
太难了

同行已经做了的服务,就不是服务,是义务。 – 纪文华 豪车毒

私域带来了8%的时间增量,和11%的空间增量。

跨境

跨境
行业挣钱,看“红利”,企业挣钱,看“稀缺”。

把红利变成利润,把“不得不来”变成“不想离开”。

跨境加时赛: 专业化 品牌化 本土化

专业化

吴三柜,遇到了张三封。

你明明知道我在做什么,但是就是干不过我。

品牌化

在美国人心中最知名的品牌:1.大疆,2.联想,3.安克Anker, 4.海尔, 5.青岛啤酒 – 郭杰瑞

当消费者在平台上搜你的品牌,而不是品类时,你就获得了溢价。

本土化

物物交易 - 外汇储备限制。

东南亚招商,菲利宾:我们这里罢工少

所谓全球化,就是在每个国家的本土化

我们的星辰大海,不是跨境电商,而是全球化品牌。

疯狂生长

这个世界在哪里被撕裂,就会在哪里迎来一轮疯狂生长。

教培新规

曾经的爬竿选手拿到关键,被取消的原因是,都会去买更贵的杆,更好的老师学爬竿。

反垄断

2021年4月,阿里被罚182亿
2021年10月,美团被罚34亿

流量生态的第三次打通:平台壁垒
渐变,是大公司的小机会;突变,是小公司的大机会。2022年,平台壁垒打破,万物疯狂生长。

我们用微软的软件武装了iPhone,我用的是iPhone Pro。 – 微软CEO

进化的力量:用“海量”的物竞, 应对“复杂“的天择。

参考资料

🔲 ⭐

我的2021年年终总结

真的觉得自己不适合写这种文章,总结用词上需要考量和斟酌的地方太多了。

2021年终总结

从下面几个角度总结一下自己的2021年吧

工作

今年自己的研究兴趣和工作内容发生了挺大的变换。

  • 研究兴趣:传统搜广推算法 -> 大规模预训练模型
  • 工作内容:程序化广告算法前沿探索 -> 增加仿真支撑和变现探索的工作。

列一下今年做的项目方向,以及收获和经验吧。

  • 临时需求:做了一个短视频打标的项目,最终准确率达到了业务提出的要求,顺道复习了一下CV相关的知识。
  • 程序化相关:这个方向其实很成熟,我司无论人力还是实力都不是第一梯队的,大方向其实非常清晰,针对我们的数据集实验和探索就行了,今年我主要在做多目标模型方面的实验。
  • 仿真相关:非标准机器学习项目,行业知识方面需要补课,让我更加深刻的认识了广告这个行业,22年重点提升的方向。

工作总结放一张年底在公司内部做分享的照片结束吧。
技术分享

生活

运动
年初开始运动,坚持了一两个月以后,得了足底筋膜炎,疼了半年时间,最近才感觉完全恢复。
运动

饮食
看到一句话:“想减肥,靠吃就可以了;运动的目的是让你有线条。”,开始减少吃面的频率,发现体重真的下来了。
体重从年初的90公斤,变成了现在的85公斤,这段时间隔离,在家动的少,吃的多,有破防的风险 = =!

陪伴
小孩两岁多了,觉得自己有责任花一些时间陪伴孩子,小孩睡得早,每天基本都是八点半到家,高质量陪伴家里的孩子半个小时到一个小时。现在他越来越喜欢跟我玩了~

学习

9月份开始做尝试做一些内容的输出,输出倒逼输入,强制自己对一些问题深入思考。目前基本能保证两周一篇文章的节奏。

读书方面,渐渐适应了看电子书,打开了新世界,把大量的碎片时间都利用起来了,看书速度提高了不少。

2022年规划

  • 对工作:以价值输出为导向,多思考,勤沟通,做真正能够推动业务的事情。
  • 对家庭:多陪伴,做到高质量陪伴。
  • 对个人:健康的身体,有趣的灵魂,保持好奇心。

看到张辉的《用OKR改变工作和生活》以及大伟的《以OKR的方式回顾我的2021》,我也考虑用OKR帮助自己实现22年的个人目标。

鉴于OKR我还在学习当中,这部分内容等我梳理好以后再说吧。。

🔲 ⭐

机器学习的建模流程和Pipeline搭建

机器学习

经典编程方法 VS 机器学习方法

业务需求:购物网站产品推荐,假设您需要创建一款后端应用程序,使其根据客户过去的购买记录向他们推荐产品。

经典编程:根据数据(输入)进行预测(输出),需要对数据应用一些规则,在经典编程中,这些规则由人根据业务需求和领域知识等因素制定。

机器学习:利用过去收集的各种数据,自动推导出数据中隐藏的模式。然后,利用模式创建模型,应用于新数据,从而提供更明智的自适应预测。

机器学习VS经典编程

什么是模型?

机器学习中的模型是指经过训练的算法,用于识别数据中的模式。关键在于,他是通过机器学习过程来训练的,而不像经典编程一样,是由编程人员通过设置规则手动创建的。

ML管道

机器学习管道

  • 业务问题:需要确定能够从机器学习中受益的业务问题。
  • 定义问题:需要理清业务问题并将其转化为机器学习问题。
  • 数据收集和整合:确保原始数据位于一个集中且易于访问的地方。
  • 预处理和可视化数据:将原始数据转换为易于理解的格式并从数据中提取重要特征。
  • 模型训练和优化:这是一个迭代的过程,可以在整个工作流程中多次执行。刚开始模型可能不会产生期望的结果,需要设计更多特征并优化模型超参数,然后重新训练。
  • 模型评估:持续的进行模型训练和优化,直到模型的评估结果显示模型的性能符合业务案例的要求。如果模型不符合业务目标,则需要重新评估一些东西,再次审视一下数据和特征,寻找改进模型的方法。
  • 模型部署:如果对训练结果感到满意,就可以部署模型来交付最佳预测结果,这通常是一项繁重的体力劳动。

问题定义

问题定义
问题定义是管道中研究性阶段,是对需要解决的问题进行分析和定义的过程。这项工作是所有ML项目的起始点,因为我们需要充分确定某个问题,才能制造确定出相应的解决方案。

确定问题

示例:某些产品库存挤压,某些产品库存不足,分别导致开销增加和错过销售机会。

  • 业务问题:需求预测不准确,让企业蒙受损失。
  • 业务目标:减少未销售的库存的数量,同时不因库存不足而错过销售机会。
  • 成功指标:每月月底未销售出的库存不超过15%,同时不存在库存不足的问题。

确定问题在业务方面的信息后,接下来需要确定使用那种ML模型。
我们要预测每种产品的具体销量,因此这最有可能是一种回归问题。

确定成功标准

  • 模型效果指标
    • 在ML管道的测试和评估环节使用
    • 一般通过准确性来体现
  • 业务目标指标
    • 部署模型后使用
    • 衡量模型在真实环境中的效果
    • 可以识别出不当的模型效果指标

数据收集和整合

数据收集和整合

选择数据

  • 了解数据:有多少数据,位于哪里,数据量,数据位置以及可否访问。
  • 寻找领域专家:是否拥有解决问题所需的数据?数据是否有代表性
  • 评估数据质量:好的数据会包含与我们希望预测的现象有关的信号,是否具有足够的特征和标签。

数据湖

了解了你需要的数据以后,现实场景中,机器学习项目的数据来自多个数据源,并呈现为不同类型的数据,包括结构化、半结构化和非结构化的数据。例如数据可以来自CSV文件和传统数据库。

当数据以不同格式存储在各个不同的位置时,组织经常会面临访问和分析其数据的挑战。随着数据不断收集自各种来源,如果不能妥善处理,这一挑战只会随着组织的成熟和发展而变得越来越严峻。无法轻松访问数据会导致工作流程出现瓶颈,因为员工经常需要向IT部门寻求帮助,以访问构建、训练和部署机器学习模型所需的信息。为了应对这些挑战,组织不得不寻求这样一种解决方案:能够提供单一数据来源,让员工能够随时根据需要轻松访问数据。 本地解决方案通常很难做到这一点,而且维护成本很高。

数据湖
数据湖架构可以提供一个坚实的基础,用于构建解决方案应对这一挑战。借助数据湖, 可以将大量数据存储在一个集中存储库,以便组织内的各个团队随时对其进行分类、处理、扩充和使用。
但是,建立数据湖并没有什么灵丹妙药。在大多数情况下,构建数据湖需要使用多种 技术、工具和环境,包括来自第三方的数据。如果操作正确,数据湖将为全新的高级 分析方法打开一扇大门,从而推动数据科学和机器学习。

数据预处理和可视化

数据预处理和可视化

重新格式化数据

  • Pandas:Pandas 是一个开源 Python 库,可用于重新格式化特定数据。Pandas 将 CSV、JSON、 Excel、Pickle 等各种格式的数据重新格式化为表格形式,以行和列的形式呈现出来。Pandas将数据格式化后得出的表格格式称为DataFrame,可以进行计算统计信息,清理数据,对其进行可视化,甚至将清理或转换后的数据重新以其原始格式存储。
  • NumPy:NumPy是一个Python库,可在与 Python 搭配使用进行科学计算时用作基础 软件包。这是一个通用的数组处理程序包,可提供高性能的多维数组对象以及用于处理这些数组的工具。
  • Scikit-learn:Scikit-learn是一个开源Python库,其中包括用于数据挖掘和数据分析的 各种工具。它基于NumPy、SciPy 和Matplotilb库而构建,可用于机器学习管道的每个阶段,包括数据预处理。我们将在管道的模型训练阶段回过头来学习Scitkit,因为该库包含了线性回归和随机森林等监督算法,以及集群和K-means等非监督算法。
  • Matplotlib:Matplotlib 是 Python 中的可视化库,用于NumPy数组的二维图。借助 Matplotlib,您可以通过多种方式可视化数据,其中包括线形图和条形图、散点图和直方图。您可以直接在 Python 脚本、Jupyter笔记本、iPython Shell 和其他平台中利用该库。
  • Seaborn:Seaborn 是另一个Python数据可视化库。它基于Matplotlib构建,并与Pandas DataFrame紧密集成。它提供了一个高级界面,可绘制有吸引力且内容丰富的统计图形。

数据预处理

数据会出现多种形式混乱

  • 算法希望看到使用英语编写的数据,但数据中的有些单词使用了其他语言
  • 某些单词中包含特殊字符,单词之间有多个空格,大小写混用。
  • 数据有多个不同的数据单位,比如公里、米、英尺混用。
  • 因为录入问题,某列中包含其他列中的数据。

异常值

产生异常值的原因:

  • 自然的异常值 不是人为的错误结果,而是反应了数据中的一些事实。
  • 人为错误的异常值 数据输入错误,以及其他错误类型。

处理异常值的方法:

  • 删除异常值:这种方法特别适合在人为错误导致异常值的情况下使用。
  • 转变异常值:您可以通过取一个值的自然对数进行这一操作,这将减少由极端异 常值引起的变化,从而减少异常值对整个数据集的影响。
  • 为异常值输入新值:例如,您可以使用特征的平均值,然后输入该值以替换异常值。同样,如果异常值是由人为错误引起的,那么这种方法非常合适。

缺失值

由于数据收集错误,数据集中的某些列可能会缺失数据,或者直到进入数据收集过程之前才收集具有特定特征的数据。缺失数据会导致很难准确解读相关特征和目标变量之间的关系,因此,无论数据到底是怎么缺失的,处理这一问题都很重要。

缺失几个值可能不是问题,但如果一列中缺失的值过多,您可能会发现很难解读该特 征和目标(与模型需要预测的内容对应的该行中的值)之间的关系。

缺失值统计
pandas检查确实值或者NULL值

  • 检查每一列有多少缺失值:df.isnull().sum()
  • 检查每一行有多少缺失值:df.isnull().sum(axis=1)

缺失值处理

  • 替换缺失值:如果缺失值在整个数据集中随机分布,可能是由于数据捕获机制出现故障,并不代表其相应行或列的大部分,因为数据在很大程度是随机缺失的。这种情况下,替换是更好的选择。
    • 离散特征:使用出现最频繁的值来替换
    • 连续特征:使用平均值或者中位数来替换
  • 删除缺失值:如果列或者行的缺失占很大比例,则优先考虑删除整个行或列,而不是替换。
    • 删除行的风险:a.训练数据不足,过拟合。b.可能会偏向样本
    • 删除列的风险:可能会丢失特征中的信息,欠拟合。

数据可视化

分类数据可视化

使用条形图可视化分类数据

1
2
3
4
5
6
7
speed = [0.1, 17.5, 40, 48, 52, 69, 88]
lifespan = [2, 8, 70, 1.5, 25, 12, 28]
index = ['snail', 'pig', 'elephant',
'rabbit', 'giraffe', 'coyote', 'horse']
df = pd.DataFrame({'speed': speed,
'lifespan': lifespan}, index=index)
ax = df.plot.bar(rot=0)

条形图

数值数据可视化

直方图
使用直方图进行数据可视化时会对值进行分箱,直方图中较高的峰值表示最常见的值。

1
2
3
4
5
df = pd.DataFrame({
'length': [1.5, 0.5, 1.2, 0.9, 3],
'width': [0.7, 0.2, 0.15, 0.2, 1.1]
}, index=['pig', 'rabbit', 'duck', 'chicken', 'horse'])
hist = df.hist(bins=3)

直方图

密度图
密度图展示了单个特征的分布,密度图类似于直方图,但它使用核密度函数展示了平滑版的直方图密度。

1
2
s = pd.Series([1, 2, 2.5, 3, 3.5, 4, 5])
ax = s.plot.kde()

密度图

箱线图
箱线图使用四分位间距来描绘特征的分布。

1
2
3
data = np.random.randn(25, 4)
df = pd.DataFrame(data, columns=list('ABCD'))
ax = df.plot.box()

箱线图

属性之间的关系

对于具有多个变量或特征的情况,您可能需要查看它们之间的相关性。确定属性之间 的相关性很重要,因为两个属性之间的高相关性有时会导致模型性能较差。如果特征 之间密切相关,并且全都用于同一个模型中以预测响应变量,就可能会出现问题,例 如,模型损失不能收敛到最小状态。因此,请注意数据集中高度相关的特征。

散点图和散点图矩阵

1
2
3
4
5
6
df = pd.DataFrame([[5.1, 3.5, 0], [4.9, 3.0, 0], [7.0, 3.2, 1],
[6.4, 3.2, 1], [5.9, 3.0, 2]],
columns=['length', 'width', 'species'])
ax1 = df.plot.scatter(x='length',
y='width',
c='DarkBlue')

散点图

1
2
df = pd.DataFrame(np.random.randn(1000, 4), columns=['A','B','C','D'])
pd.plotting.scatter_matrix(df, alpha=0.2)

散点图矩阵

相关性矩阵热图
numpy.corrcoef 计算相关性矩阵,使用Matplotlib或者Seaborn进行可视化。
相关性矩阵热图

模型训练和优化

模型训练和优化
在训练过程中,机器学习算法会更新一组称为参数或权重的数字。目标是更新模型中 的参数,使计算或预测的输出尽可能接近真实的输出(就像在数据中看到的一样)。

一次迭代无法完成,因为算法还没有学会;它不知道改变权重会如何使输出更接近期望值。因此,它会观察之前迭代中的权重和输出,使权重降低生成的输出的误差。执 行完定义的迭代次数后或当误差变化低于目标值时,此迭代过程将会停止。

如果输出误差随着每次连续迭代逐渐减小,则我们可以说该模型已收敛,训练成功。 但如果误差在迭代之间增大或随机变化,则需要重新评估构建模型时的假设。

模型训练过程

数据拆分

对数据进行预处理之后,就可以开始训练了。首先需要确定拆分数据的最佳方式,一般而言,机器学习目标是构建一个泛化能力较强的模型。换句话说,模型不仅要能处理已知数据,还要能处理未知数据。因此拆分数据很重要。

拆分数据有助于确保数据块有资格成为未来的生成数据,还有助于保证模型预测未知数据的准确率和预测已知数据的准确率类似。这有助于提高模型的泛化能力。

测试和验证方法

  • 简单留出验证:将数据拆分为多个数据集,通常为训练集、验证集和测试集。
    简单留出验证
  • K折交叉验证:把数据集分成K份,每个子集互不相交且大小相同,依次从K份中选出1份作为验证集,其余K-1份作为训练集,这样进行K次单独的模型训练和验证,最后将K次验证结果取平均值,作为此模型的验证误差。
    K折交叉验证
  • 留一交叉验证:测试集是一个数据点,适用于非常小的数据集
  • 分层K折交叉验证:训练集和测试集平衡类别分布,适用于不平衡的数据。
  • 打乱数据的迭代K折验证

损失函数

模型训练的目标是创建一个准确的模型,让他根据需求正确地解答业务问题。

损失函数用来评价模型的预测值和真实值不一样的程度,损失函数越好,通常模型的性能越好。不同的模型用的损失函数一般也不一样。

损失函数分为经验风险损失函数和结构风险损失函数。经验风险损失函数指预测结果和实际结果的差别,结构风险损失函数是指经验风险损失函数加上正则项。

损失函数

优化器

梯度下降

  • 批量梯度下降法(Batch Gradient Descent):批量梯度下降法,是梯度下降法最常用的形式,具体做法也就是在更新参数时使用所有的样本来进行更新,
  • 随机梯度下降法(Stochastic Gradient Descent):随机梯度下降法,其实和批量梯度下降法原理类似,区别在与求梯度时没有用所有的m个样本的数据,而是仅仅选取一个样本j来求梯度。
  • 小批量梯度下降法(Mini-batch Gradient Descent):小批量梯度下降法是批量梯度下降法和随机梯度下降法的折衷,也就是对于m个样本,我们采用x个样子来迭代,1<x<m。一般可以取x=10,当然根据样本的数据,可以调整这个x的值。

步长/学习速率
步长的大小至关重要,因为步长较大可能会导致模型超过最低点,从而使模型来回摆动,永远不会达到最小值。但是,步长较小可能会导致模型非常缓慢地朝着最小值移动,在给定时间内无法达到最小值。步长大小又称“学习速率”,它是模型的超参数。

模型评估

模型评估

过拟合和欠拟合

过拟合和欠拟合

  • 欠拟合是指模型不能在训练集上获得足够低的误差。换句换说,就是模型复杂度低,模型在训练集上就表现很差,没法学习到数据背后的规律。
  • 过拟合是指训练误差和测试误差之间的差距太大。换句换说,就是模型复杂度高于实际问题,模型在训练集上表现很好,但在测试集上却表现很差。模型对训练集"死记硬背",没有理解数据背后的规律,泛化能力差。

过拟合和欠拟合

解决方案

  • 欠拟合
    • 增加模型复杂度
    • 增加模型的特征
  • 过拟合
    • 正则化(Regularization)(L1和L2)
    • 数据扩增,即增加训练数据样本
    • Dropout
    • Early stopping

方差和偏差

  • 偏差:预测值于真实值之间的差距,即学习算法的拟合能力。
  • 方差:预测值的分散程度,训练集与验证集的差异造成的模型表现的差异。

方差和偏差

低偏差高偏差
低方差射手很稳,枪的准星也很准。射手很稳,但是枪的准星有问题,所有子弹都固定地偏向一侧。
高方差射手不太稳,但枪的准星没问题,虽然弹着点分布很散,但没有整体偏移。射手不稳,而且枪的准星也有问题,弹着点分布很散且有规律地偏向一侧。

偏差和方差

我们希望偏差与方差越小越好,但实际并非如此。一般来说,偏差与方差是有冲突的,称为偏差-方差窘境 (bias-variance dilemma)

  • 给定一个学习任务,在训练初期,由于训练不足,网络的拟合能力不够强,偏差比较大,也是由于拟合能力不强,数据集的特征也无法使网络产生显著变化,也就是欠拟合的情况。
  • 随着训练程度的加深,网络的拟合能力逐渐增强,训练数据的特征也能够渐渐被网络学到。
  • 充分训练后,网络的拟合能力已非常强,训练数据的微小特征都会导致网络发生显著变化,当训练数据自身的、非全局的特征被网络学到了,则将发生过拟合。

评估指标

分类问题指标

混淆矩阵
标签解释

  • P:样本数据中的正例数。
  • N:样本数据中的负例数。
  • Y:通过模型预测出来的正例数。
  • N:通过模型预测出来的负例数。

组合解释

  • 真阳性:True Positives,表示实际是正样本预测成正样本的样本数,真实为1,预测也为1。
  • 假阳性:False Positives,表示实际是负样本预测成正样本的样本数,真实为0,预测为1。
  • 假阴性:False Negatives,表示实际是正样本预测成负样本的样本数,真实为1,预测为0。
  • 真阴性:True Negatives,表示实际是负样本预测成负样本的样本数,真实为0,预测也为0。

计算公式

  • 准确率Accuracy:分类模型总体判断的准确率(包括了所有class的总体准确率)。 Accuracy =TP+TNTP+TN+FP+FN\text { Accuracy }=\frac{T P+T N}{T P+T N+F P+F N}
  • 精确率Precision: 预测为1的准确率。  Precision =TPTP+FP\text { Precision }=\frac{T P}{T P+F P}
  • 召回率ReCall:真实为1的准确率。 Recall =TPTP+FN\text { Recall }=\frac{T P}{T P+F N}
  • F1:对于某个分类,综合了Precision和Recall的一个判断指标,F1-Score的值是从0到1的,1是最好,0是最差。F1 Score =2 Precision  Recall  Precision + Recall F_{1} \text { Score }=\frac{2 * \text { Precision } * \text { Recall }}{\text { Precision }+\text { Recall }}
  • AUC-ROC:反映的是对于任意一对正负例样本,模型将正样本预测为正例的可能性大于将负例预测为正例的可能性的概率。

回归问题指标

  • 均方差
    Mean Squared Error叫做均方误差,用真实值-预测值,然后平方之后求和平均。

MSE=1mi=1m(yiy^i)2\mathrm{MSE}=\frac{1}{m} \sum_{i=1}^{m}\left(y_{i}-\hat{y}_{i}\right)^{2}

  • R平方
    Coefficient of Determination,也叫R Squared,翻译为拟合系数。其定义是,对于某个变量yiy_i有一系列观测值yiy_i(比如某个区域的100套房子价格),和对应的预测值y^i\hat{y}_{i}(比如根据房型和面积预测出的房子价格

R2=1i(y^iyi)2i(yiyˉ)2R^{2}=1-\frac{\sum_{i}\left(\hat{y}_{i}-y_{i}\right)^{2}}{\sum_{i}\left(y_{i}-\bar{y}\right)^{2}}

其中, yˉ\bar{y}是100套房子的平均价格。
R方的含义是,该预测模型解释了变量的方差的比例。方差衡量的是变量取值的分散程度或者波动范围,方差越小,说明变量值波动越小,换言之,变量的取值越容易被预测和猜中。假设R方=0.8,则说明拟合之后,变量的方差减小了80%,则变量的取值更容易被确定。比如,我们需要对房子进行估价,采用房型和面积对房子价格进行拟合之后,发现房屋价格的方差减小了80%,那么我们更容易得到房子价格的准确估计。

特征设计和模型优化

特征设计和模型优化

特征工程是从现有数据中提取更多信息,以便提高模型的预测能力和学习速度的一门科学。在特征工程中,我们不会添加任何新的数据,而是让已有的数据发挥更大的作用。这一过程往往需要依靠数据领域的知识才能设计更有效的特征。

特征抽取特征选择是DimensionalityReduction(降维)的两种方法。

维数灾难:当维数增大时,空间数据会变得更稀疏,这将导致bias和variance的增加,最后影响模型的预测效果。
维数灾难

特征抽取

特征抽取:从现有特征中创建新特征来自动降低数据集中维数的过程,特征抽取后的新特征是原来特征的一个映射。
Feature Extraction: Creatting a subset of new features by combinations of the exsiting features

  • 目的:减少特征数据集中的属性(或者称为特征)的数目,DimensionalityReduction(降维)
  • 手段:通过属性间的关系,如组合不同的属性得新的属性,这样就改变了原来的特征空间

特征抽取

特征选择

特征选择:根据预测的重要性对现有属性进行排序,然后选择最相关的属性。特征选择后的特征是原来特征的一个子集。
Feature Selection: Choosing a subset of all the features(the ones more informative)

  • 目的:减少特征数据集中的属性(或者称为特征)的数目,DimensionalityReduction(降维)
  • 手段:从原始特征数据集中选择出子集,是一种包含的关系,没有更改原始的特征空间。

特征选择

特征创建和转换

于特征提取和特征选择不同,特征创建和转换不是一个减少维数的方法,相反,特征创建和转换是从现有特征中生成新特征的过程。

举个例子,加入我们将日期作为一个特征,其格式为两位数日期、两位数月份和两位数年份(日日-月月-年年),我们发现,将日期、月份和年份整合成一项特征对预测并没有太大帮助。相反,我们可以生成三项不同的特征,分别对应着日期,月份和年份,进而可能会发现其中某项特征和目标之间存在着有用的关系。

数值数据

  • 对数转换
  • 平方或立方
  • 分箱
  • 缩放
    • 均值/方差标准化xi,j=xi,jμjσjx_{i, j}^{*}=\frac{x_{i, j}-\mu_{j}}{\sigma_{j}}
    • 最大最小缩放 xi,j=ximinxjmaxxjminxjx_{i, j}^{*}=\frac{x_{i}-\min x_{j}}{\max x_{j}-\min x_{j}}
    • 最大绝对值缩放 xi,j=xi,jmax(xj)x_{i, j}^{*}=\frac{x_{i, j}}{\max \left(\left|x_{j}\right|\right)}
    • 稳健缩放 xi=xiQ25(x)Q75(x)Q25(x)x_{i}^{*}=\frac{x_{i}-Q_{25}(x)}{Q_{75}(x)-Q_{25}(x)}
    • 归一化

分类数据

  • 顺序:分类区分顺序,将定序变量中不同分类定义相对差值。
  • 名目:分类不区分顺序,采用独热码进行编码。

模型优化-超参优化

超参的三种类型

超参数的类型

  • 模型超参数:可以帮助定义模型本身。例如,某些基于神经网络的模型需要我们在开始训练前先定义一个架构。这个架构会包含神经网络中特定数量的层,以及在其中使用的激活函数。以处理计算机视觉问题的神经网 络为例,我们需要定义架构的其他属性,例如筛选器大小、池化、步长和填充。
  • 优化器超参数:与模型如何根据数据来确定模式相关,用于神经网络模型。这种类型的超参数包含梯度下降和随机梯度下降等优化器。还可以包含Adam等使用动量的优化器,或者使用Xavier初始化或He初始化等方法将参数权重初始化的优化器。
  • 数据超参数:与数据本身的属性相关。这些属性包括定义不同的数据扩增方法(例如用于图像相关问题的裁剪或大小调整)的属性。这种参数一般在没有足够数 据或数据中没有足够变量时使用。

超参的优化类型

  • 网格搜索(grid search)是超参数优化的传统方法,是对超参数组合的子集进行穷举搜索,找到表现最佳的超参数子集。
  • 随机搜索(random search),是对超参数组合的子集简单地做固定次数的随机搜索,找到表现最佳的超参数子集。对于规模较大的参数空间,采用随机搜索往往效率更高。
  • 贝叶斯优化(Bayesian Optimization) 与网格/随机搜索最大的不同,在于考虑了历史调参的信息,使得调参更有效率。(但在高维参数空间下,贝叶斯优化复杂度较高,效果会近似随机搜索。)
    网格搜索和随机搜索
    贝叶斯优化

模型部署

模型部署
模型部署指的是将模型及其资源集成到一个生产环境中,用于创建预测。

生产环境基础设置

生产环境基础设施

推理类型

批处理

  • 模型在批量预测时可用
  • 推理分批进行
  • 数据集有多个行
  • 作业完成后按计划获取结果

实时

  • 模型始终可用
  • 推理实时进行
  • 对数据进行单次观察
  • 用户交互时可实时获得结果

推理VS训练

推理是使用经训练的模型进行推断或预测测试样本的阶段,它与训练一样,包括用于预测值的前向传递。与训练不同的是,它不包括用于计算误差和更新权重的反向传递。

推理训练
通常在单个输入上实时进行需要高并行度和大规模批处理能力,以提高吞吐量
非计算/内存密集型计算/内存密集型
集成到应用程序推展工作流程独立,未集成到应用程序堆栈
在边缘和云中的不同设备上运行在云中运行
持续运行运行频率通常较低(只训练一次,不经常训练)

监控

监控预测的性能并触发告警从而采取进一步的行动,它对模型的进化至关重要。
监控关键的特征变化也很重要。

参考资料

🔲 ☆

自然语言处理预训练技术综述

预训练

预训练(Pre-trained Models,PTMs)的实施过程跟迁移学习是一样的,一般是先在一个基础数据集上进行任务训练,生成一个基础网络,然后将学习到的特征重新进行微调或者迁移到另一个目标网络上,用来训练新目标任务。

预训练是在大量常规数据集上学习数据中的“共性”,然后在特定领域的少量标注数据学习“特性”,这样子模型只需要从“共性”出发,去学习特定任务的“特性”部分即可。

预训练模型

这和小孩子读书一样,一开始语文、数学、化学都学,读书、网上游戏等,在脑子里积攒了很多。当他学习计算机时,实际上把他以前学到的所有知识都带进去了。如果他以前没上过中学,没上过小学,突然学计算机就不懂这里有什么道理。预训练模型就意味着把人类的语言知识,先学了一个东西,然后再代入到某个具体任务,就顺手了,就是这么一个简单的道理。

为什么需要预训练

  • 预训练模型中的参数都是从大量数据中训练得来,比起在自己的数据集上从头开始训练参数,在预训练模型参数基础上继续训练的方式肯定要快一些。
  • 预训练模型是通过海量数据训练得来,更好地学到了数据中的普遍特征,比起在自己的数据集上从头开始训练参数,使用预训练模型参数通常会有更好的泛化效果。

计算机视觉上的预训练

预训练首先是在计算机视觉方向取得较好效果并实现大规模应用的,我们会在庞大的ImageNet语料库上预训练模型,然后针对不同的任务在较小的数据上进一步微调。这比随机初始化要好得多,因为模型学习了一般的图像特征,然后可以将其用于各种视觉任务。
ImageNet这个数据集,数据量足够大,而且分类齐全,不限定领域,具有很好的通用型,使用范式一般如下图所示:
ImageNet预训练

自然语言处理上的预训练

借鉴视觉领域的做法,自然语言处理领域开始尝试使用预训练技术实现迁移学习,但是预训练在自然语言处理领域大爆发会缓慢很多,主要是因为自然语言处理任务(除机器翻译)没有计算机视觉方面那么多的标注好的数据集,而且没有很好的特征提取器,直到最近几年几个关键技术的成熟,神经网络才开始全面引入到了自然语言理解。从大规模的语言数据到强有力的算力,加上深度学习,把整个自然语言带到一个新的阶段。

自然语言处理预训练在不同时期有不同的称谓,但是,本质是使用大量语料预测相应单词或词组,生成一个半成品用以训练后续任务

自然语言处理任务可以分为以下3个模块:数据处理、文本表征和特定任务模型。其中,数据处理模块特定任务模型模块需要根据具体任务的不同做相应设计,而文本表征模块则可以作为一个相对通用的模块来使用。类似于计算机视觉领域中基于ImageNet预训练模型的做法,自然语言处理领域也可以预训练一个通用的文本表征模块,这种通用的文本表征模块对于文本的迁移学习具有重要意义。

发展历史

自然语言处理的预训练方法属于自然语言的表示学习,自然语言表示学习的形成已经经过了长期的历史发展。

  • 1948年N-gram分布式模型被提出来,使用one-hot对单词进行编码,这是最初的语言模型,存在维度灾难和语义鸿沟等问题。
  • 1986年出现了分布式语义表示,即用一个词的上下文来表示该词的词义,他在one-hot的基础上压缩了描述语料库的维度,从原先的V-dim降低为了自己设定的K值。当时通用的方案是基于向量空间模型(Vector Space Model,VSM)的词袋假说(Bag of Words Hypothesis),即一篇文档的词频(而不是词序)代表了文档的主题,我们可以构造一个term-document矩阵,提取行向量做为word的语义向量,或者提取列向量作为文档的主题向量,使用奇异值分解(SVD)的进行计算。
  • 2003年经典的NNLM神经语言模型被提出,开始使用神经网络来进行语言建模。更早期百度 IDL(深度学习研究院)的徐伟在他2000年发表的文章《Can Artificial Neural Networks Learn Language Models?》中也有相似方向的探索。
  • 2013年word2vec被提出并在NLP领域大获成功,他基于向量空间模型的分布假说(Distributional Hypothesis),即上下文环境相似的两个词有着相近的语义,构造一个word-context的矩阵,矩阵的列变成了context里的word,矩阵的元素也变成了一个context窗口里word的共现次数。Word Embedding是Word2Vec模型的中间产物,是在不断最小化损失函数时候,不断迭代更新生成的。
  • 2018年出现了预训练语言模型。

传统的预训练技术 VS 神经网络预训练技术

传统的预训练技术
传统预训练技术与模型耦合较为紧密,该技术与模型之间并没有明确的区分界限,为了方便阐述,将语料送入模型到生成词向量的这一过程称为传统预训练技术。
传统的预训练技术

神经网络预训练技术
神经网络预训练技术是在预训练阶段采用神经网络模型进行预训练的技术统称,由于预训练与后续任务耦合性不强,能单独成为一个模型,因此也称为预训练语言模型,这一称谓是区别于传统预训练技术的叫法。

神经网络自然语言处理的预训练发展经历从浅层的词嵌入到深层编码两个阶段,按照这两个主要的发展阶段,我们归纳出预训练的两大范式:「浅层词嵌入」和「上下文的词嵌入」。

  • 第一代预训练旨在学习浅层词嵌入(Word Embeddings)。由于下游的任务不再需要这些模型的帮助,因此为了计算效率,它们通常采用浅层模型,如 Skip-Gram 和 GloVe。尽管这些经过预训练的嵌入向量也可以捕捉单词的语义,但它们却不受上下文限制,只是简单地学习「共现词频」。这样的方法明显无法理解更高层次的文本概念,如句法结构、语义角色、指代等等。
  • 第二代预训练专注于学习上下文的词嵌入(Contextual Embeddings),如CoVe、ELMo、GPT以及BERT。它们会学习更合理的词表征,这些表征囊括了词的上下文信息,可以用于问答系统、机器翻译等后续任务。另一层面,这些模型还提出了各种语言任务来训练,以便支持更广泛的应用,因此它们也可以称为预训练语言模型。

本文重点讲解基于神经网络模型在自然语言处理领域的预训练技术

关键技术

Transfromer

Google 2017年提出了Transformer模型,之后席卷了整个NLP领域,红极一时的BERT、GPT-2都采用了基于Transformer的架构,现在都用到CV领域了,用于目标检测和全景分割的DETR就是代表。Transfromer的特征提取能力显著强于以往常用的CNN和RNN,这可以让我们更快更好的在样本上学习知识

Transformer之所以表现优异有以下几点原因:

  • 模型并行度高,使得训练时间大幅度降低。
  • 可以直接捕获序列中的长距离依赖关系。
  • 可以产生更具可解释性的模型。

想详细了解Transfromer,可以参考我以前的文章《Attention Is All You Need – Transformer》

自监督学习

自监督学习是无监督学习的一种特殊方式,这些自监督的方法的核心是一个叫做 “pretext task” 的框架,它允许我们使用数据本身来生成标签,并使用监督的方法来解决非监督的问题。NLP预训练模型,就是利用自监督学习实现的,可以看做是一种去噪自编码器denoising Auto-Encoder。这可以让我们在大规模无标注数据集上学习知识。

在预训练模型中,最常用的自监督学习方法是自回归语言模型(AutoRegressive LM,AR)和自编码语言模型(AutoEncoder LM,AE)。 自回归语言模型根据上文内容预测下一个可能跟随的单词,就是常说的自左向右的语言模型任务,或者反过来也行,就是根据下文预测前面的单词。 自编码语言模型根据上下文内容预测随机Mask掉的一些单词。

微调

微调旨在利用其标注样本对预训练网络的参数进行调整,可以将预训练的模型结果在新的任务上利用起来。
微调

第一代技术预训练技术:Word Embeddings

NNLM

神经网络语言模型(Neural Network Language Model,NNLM)是2003年蒙特利尔大学的Yoshua Bengio教授在《A Neural Probabilistic Language Model》中提出来的模型,这个模型第一次用神经网络来解决语言模型的问题,虽然在当时并没有得到太多的重视,却为后来深度学习在解决语言模型问题甚至很多别的nlp问题时奠定了坚实的基础,后人站在Yoshua Bengio的肩膀上,做出了更多的成就。
NNLM
模型一共三层,第一层是映射层,将n个单词映射为对应word embeddings的拼接,其实这一层就是MLP的输入层;第二层是隐藏层,激活函数用tanh;第三层是输出层,因为是语言模型,需要根据前n个单词预测下一个单词,所以是一个多分类器,用softmax。整个模型最大的计算量集中在最后一层上,因为一般来说词汇表都很大,需要计算每个单词的条件概率,是整个模型的计算瓶颈。

评价

  • NNLM模型是第一次使用神经网络对语言建模
  • 由于模型使用的是全连接神经网络,所以只能处理定长序列。
  • 由于模型最后一层使用softmax进行计算,参数空间巨大,训练速度极慢。

Word2Vec

Word2Vec是从大量文本语料中以无监督的方式学习语义知识的一种模型,将单词从原先所属的空间映射到新的多维空间中,即把原先词所在空间嵌入(Embedding)到一个新的空间中去,用词向量的方式表征词的语义信息,通过一个嵌入空间使得语义上相似的单词在该空间内距离很近。

Word2Vec模型中,主要有Skip-Gram和CBOW两种模型,从直观上理解,Skip-Gram是给定input word来预测上下文。而CBOW是给定上下文,来预测input word。
CBOW&Skip-Gram

评价

  • 优化了计算效率,特别是google同时开源了工具包,使得其在工业界能够大规模使用。
  • Word2vec并没有考虑到词序信息以及全局的统计信息等

GloVe

Glove(Global Vectors for Word Representation)是一种无监督的词嵌入方法,该模型用到了语料库的全局特征,即单词的共现频次矩阵,来学习词表征(word representation)。

第一步统计共现矩阵:下面给出了三句话,假设这就是我们全部的语料。我们使用一个size=1的窗口,对每句话依次进行滑动,相当于只统计紧邻的词。这样就可以得到一个共现矩阵。共现矩阵的每一列,自然可以当做这个词的一个向量表示。这样的表示明显优于one-hot表示,因为它的每一维都有含义——共现次数,因此这样的向量表示可以求词语之间的相似度。
共现矩阵

第二步训练词向量:共现矩阵维度是词汇量的大小,维度是很大的,并且也存在过于稀疏的问题,这里我们使用SVD矩阵分解来进降维。
SVD求解

评价

  • 利用词共现矩阵,词向量能够充分考虑到语料库的全局特征,直观上来说比Word2Vec更合理。
  • GloVe中的很多推导都是intuitive的,实际使用中,GloVe还是没有Word2vec来的广泛。

第二代技术预训练技术: Contextual Embeddings

通过预训练得到高质量的词向量一直是具有挑战性的问题,主要有两方面的难点,一个是词本身具有的语法语义复杂属性,另一个是这些语法语义的复杂属性如何随着上下文语境产生变化,也就是一词多义性问题。传统的词向量方法例如word2vec、GloVe等都是训练完之后,每个词向量就固定下来,这样就无法解决一词多义的问题。接下来的模型就是基于解决这个问题展开的。

ELMo

ELMo(Embeddings from Language Models)是有AI2提出,该模型不仅去学习单词特征,还有句法特征语义特征。其通过在大型语料上预训练一个深度BiLSTM语言模型网络来获取词向量,也就是每次输入一句话,可以根据这句话的上下文语境获得每个词的向量,这样子就可以解决一词多义问题。

ELMo

Elmo模型的本质思想是先用语言模型学习一个单词的 Word Embedding,此时无法区分一词多义问题。在实际使用Word Embedding的时候,单词已经具备特定的上下文,这时可以根据上下文单词的语义调整单词的 Word Embedding 表示,这样经过调整后的 Word Embedding 更能表达上下文信息,自然就解决了多义词问题。

评价

  • 在模型层面解决了一词多义的问题,最终得到的词向量能够随着上下文变化而变化。
  • LSTM抽取特征的能力远弱于Transformer
  • 拼接方式双向融合特征融合能力偏弱。

GPT

GPT(Generative Pre-Training)模型用单向Transformer代替ELMo的LSTM来完成预训练任务,其将12个Transformer叠加起来。训练的过程较简单,将句子的n个词向量加上位置编码(positional encoding)后输入到 Transformer中 ,n个输出分别预测该位置的下一个词。

GPT的单项Transformer结构和GPT的模型结构,如图所示:
GPT

评价

  • 第一个结合 Transformer 架构(Decoder)和自监督预训练目标的模型
  • 语言模型使用的是单行语言模型为目标任务。

BERT

BERT采用和GPT完全相同的两阶段模型,首先是语言模型预训练,其次是后续任务的拟合训练。和GPT最主要不同在于预训练阶段采了类似ELMo的双向语言模型技术、MLM(mask language model)技术以及 NSP(next sentence prediction) 机制。

BERT

评价

  • 采用了Transformer结构能够更好的捕捉全局信息。
  • 采用双向语言模型,能够更好的利用了上下文的双向信息。
  • mask不适用于自编码模型,[Mask]的标记在训练阶段引入,但是微调阶段看不到。

延伸方向

研究方向

预训练模型延伸出了很多新的研究方向。包括了:

  • 基于知识增强的预训练模型,Knowledge-enriched PTMs
  • 跨语言或语言特定的预训练模型,multilingual or language-specific PTMs
  • 多模态预训练模型,multi-modal PTMs
  • 领域特定的预训练模型,domain-specific PTMs
  • 压缩预训练模型,compressed PTMs
    预训练的延伸方向
    摘自《Pre-trained models for natural language processing: A survey》

模型衍生

模型衍生
摘自《Pre-Trained Models: Past, Present and Future》

应用于下游任务

迁移学习

迁移学习

  • 不同的PTMs在相同的下游任务上有着不同的效果,这是因为PTMs有着不同的预训练任务,模型架构和语料。针对不同的下游任务需要选择合适的预训练任务、模型架构和语料库
  • 给定一个预训练的模型,不同的网络层捕获了不同的信息,基础的句法信息出现在浅层的网络中,高级的语义信息出现在更高的层级中。针对不通的任务需要选择合适的网络层
  • 主要有两种方式进行模型迁移:特征提取(预训练模型的参数是固定的)和模型微调(预训练模型的参数是经过微调的)。当采用特征提取时,预训练模型可以被看作是一个特征提取器,但以特征提取的方式需要更复杂的特定任务的架构。除此之外,我们应该采用内部层作为特征,因为他们通常是最适合迁移的特征。所以微调是一种更加通用和方便的处理下游任务的方式

微调策略

微调的过程通常是比较不好预估的,即使采用相同的超参数,不同的随机数种子也可能导致差异较大的结果。除了标准的微调外,如下为一些有用的微调策略:

  • 两步骤微调:两阶段的迁移,在预训练和微调之间引入了一个中间阶段。在第一个阶段,PTM 通过一个中间任务或语料转换为一个微调后的模型,在第二个阶段,再利用目标任务进行微调。
  • 多任务微调:在多任务学习框架下对其进行微调。
  • 利用额外模块进行微调:微调的主要缺点就是其参数的低效性。每个下游模型都有其自己微调好的参数,因此一个更好的解决方案是将一些微调好的适配模块注入到PTMs中,同时固定原始参数。

参考资料

❌