李宏毅机器学习笔记【未完】-程序员宅基地

技术标签: 计算机散养  机器学习  人工智能  

李宏毅2021/2022春机器学习课程

【《2021机器学习-李宏毅》学习笔记】

一、机器学习

1.机器学习基本概念

找一个函数。

深度学习:使用类神经网络的函数。

可以有各式各样的输入:向量,矩阵(如图像),序列(如语音,文本);也可以有各式各样的输出:数值(regression),类别(classification),文本图像…

  • 函数类别

Regression(回归):输出是一个数值(scalar)

Classification(分类):给定选项/类别(classes),输出正确的

Structured Learning:创造一些结构(image,document)

  • 如何找一个函数(训练)

1.Function with unknown parameters.

model:
y = b + w x 1 y = b + wx_1 y=b+wx1
x:feature;w:weight;b:bias

2.Define loss from training data.

Loss是未知参数的函数,L(b, w),How good a set of value is.

例如,MAE,MSE;error surface(误差曲面)

3.Optimization 找到一组w和b让loss最小
w ∗ , b ∗ = a r g   m i n w , b   L w^*,b^* = arg\underset{w,b}{\mathrm{\ min}}\ L w,b=argw,b min L

Gradient Descent:w-loss图像,随机选一个初始的点,计算斜线切率(L对w求微分),正的则增大w,负的则减小w;w0 -> w1 步伐大小,斜率大步伐划大,learning rate(超参数hyper parameters);不断更新w,停下来的情况可能是微分为0(local minima,真正loss最小 global minima)

两个变量w和b:w和b的方向结合起来,可以更新新的梯度方向

考虑周期性,更新model(函数)

以上,linear model(线性模型),线性模型的限制:model bias

piecewise linear curves(分段曲线) = constant + sum a set of 平稳的阈值(蓝色function,hard sigmoid)(Sigmoid Function,公式如下)
y = c   1 1 + e − ( b + w x 1 ) = c   s i g m o i d ( b + w x 1 ) y = c\ \frac{1}{1+e^{-(b+wx_1)}} = c\ sigmoid(b + wx_1) y=c 1+e(b+wx1)1=c sigmoid(b+wx1)

改变w,b,c 的影响

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-upk7HGcK-1652774598419)(https://diamond-mule-bee.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fd52a58b4-465f-485d-a0f2-eeb47134c890%2FUntitled.png?table=block&id=76f26ca5-49eb-416a-9bca-fd3c4327cad0&spaceId=effd33e2-527b-43dc-aef5-7b5ee7b83428&width=1030&userId=&cache=v2)]

  • new model:(可以用线性代数表示)

y = b + ∑ i c i   s i g m o i d ( b i + ∑ j w i j x j ) y = b + \sum \limits_i c_i \ sigmoid(b_i+\sum \limits_j w_{ij}x_j) y=b+ici sigmoid(bi+jwijxj)

y = b + c T σ ( b + W x ) y=b+\pmb{c^T} σ(\pmb b+W\pmb x) y=b+cTcTcTσ(bbb+Wxxx)

所有的参数统称为 θ,所以Loss表示为 L(θ)

  • Optimization of new model(优化过程):

选定初始参数值向量θ0;求微分(梯度向量);更新参数
θ ∗ = a r g   m θ i n   L \pmbθ^*=arg\ \underset{\pmb θ}min\ L θθθ=arg θθθmin L
L对θ微分,拼成向量就是gradient(g),(梯度)
g = ∇ L ( θ 0 ) \pmb g=∇L(\pmbθ^0) ggg=L(θθθ0)

θ 1 ← θ 0 − η   g \pmb\theta^1 \larr \pmb\theta^0 - \eta\ \pmb g θθθ1θθθ0η ggg

……依此类推。

batch:一批,randomly,每次更新参数时使用1歌batch里的数据计算loss求梯度,bitch_size也是超参数

epoch:把所有的batch看一遍

update:每更新一次参数

  • sigmoid → ReLU(Activation Function激活函数)

把两个 ReLU 叠起来,就可以变成 Hard 的 Sigmoid。
y = b + ∑ 2 i c i   m a x ( 0 , b i + ∑ j w i j x j ) y = b + \sum \limits_{2i} c_i \ max(0,b_i+\sum \limits_j w_{ij}x_j) y=b+2ici max(0,bi+jwijxj)
neuron →neural network

layer → deep learning

layer过多的话,会出现 overfitting问题(过拟合),layer层数(做几次sigmoid,ReLU)也是超参数

Back propagation(反向传播):计算梯度的一种有效方法

2.Colab使用教程

https://blog.csdn.net/qq_36890370/article/details/106160805

二、机器学习任务攻略

1.机器学习任务攻略

  • 复习训练的过程

写出一个有未知参数的function,确定损失函数,optimization

  • general guide(如何达到更好的效果)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-loGgZh5J-1652774598420)(https://diamond-mule-bee.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F6586a506-6ac8-43ad-a1d9-28e6de0b1fdb%2FUntitled.png?table=block&id=53a2d275-3157-4673-93d0-c137a8465213&spaceId=effd33e2-527b-43dc-aef5-7b5ee7b83428&width=2000&userId=&cache=v2)]

model bias

the model is too simple. 没有找到一个function可以让loss变小

解决:重新设计model

optimization issue

先跑一些浅层的网络(或者其他不是深度学习的模型)(比较好优化);如果更深的model比浅的比起来loss更大,说明optimization有问题

over fitting

training data上loss小,testing data上loss大

解决:

增加training data,data augmentation(数据增强),

constrained model(给model制造限制,less parameters,sharing parameters,less features,early stopping,regularization,dropout)(给模型太多限制可能会model bias)

Cross Validation

怎样选出有较低testing-loss的模型?

training set分成training set和validation set(训练集,验证集)

N-fold Cross validation(K折交叉验证法)

mismatch

训练资料和测试资料分布不一样(作业11)

2.类神经网络训练不起来怎么办

a.局部最小值和鞍点

  • optimization fails because……

gradient为0:local minima(no way to go),saddle point(鞍点)(escape)

泰勒展开写出附近的loss函数L(θ’)
L ( θ ) ≈ L ( θ ′ ) + ( θ − θ ′ ) T g + 1 2 ( θ − θ ′ ) T H ( θ − θ ′ ) L(\pmb\theta)\approx L(\pmb\theta')+(\pmb\theta-\pmb\theta')^T\pmb g+\frac1 2(\pmb\theta-\pmb\theta')^T H(\pmb\theta-\pmb\theta') L(θθθ)L(θθθ)+(θθθθθθ)Tggg+21(θθθθθθ)TH(θθθθθθ)
g表示梯度,是L的一阶导数,H表示海塞矩阵(Hessian),是L的二阶导数

在critical point附近,第二项为0,根据第三项判断是local min,还是local max,还是saddle point

大于0,local minima;小于0,localmaxima;有正有负,saddle point

判断正负:二次型,算H的特征值就行

H may tell us parameter update direction!

按照海塞矩阵特征值为负的对应特征向量的方向走

Saddle point v.s. Local minima

Loss在高维空间,local minima比saddlepoint少很多

b.批次和动量

  • tips for training: Batch and Momentum

1 epoch = see all the batches once

Shuffle(置乱) after each epoch

Small Batch v.s. Large Batch

比较大的batch size not require longer time to compute gradient(除非太大)

比较小的batch需要更长的时间for one epoch(longer time for seeing all data once)

小的batch size有更好的表现,而batch size大性能不好?Optimization Fails

小的batch size有更好的表现:“Noisy” update is better for training.

small batch is better on testing data?

flat minima,sharp minima(差很多)

batch size也是超参数。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hptQrEUs-1652774598421)(https://diamond-mule-bee.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F3158ec11-5567-4ef4-a7d6-79d3db676675%2FUntitled.png?table=block&id=6160f7de-7bcc-4299-8e1d-39cf98246302&spaceId=effd33e2-527b-43dc-aef5-7b5ee7b83428&width=1090&userId=&cache=v2)]

Momentum(动量) 惯性

Vanilla Gradient Descent(一般的梯度下降),只考虑梯度的方向,向反方向移动

Gradient Descent + Momentum,考虑前一步移动的方向

另一个解读:更新的方向不是只考虑现在的 Gradient,而是考虑过去所有 Gradient 的总合

总结:

  • Critical points have zero gradients.

  • Critical points can be either saddle points or local minima.

    • Can be determined by the Hessian matrix.
    • It is possible to escape saddle points along the direction of eigenvectors of the Hessian matrix
    • Local minima may be rare.
  • Smaller batch size and momentum help escape critical points.

c.自动调整学习率(Adaptive Learning Rate)

Different parameters needs different learning rate.

坡度比较大的时候,learning rate设小一点;坡度比较小的时候,lr设大一点
θ i t + 1 ← θ i t − η σ i t g i t \pmb\theta^{t+1}_i \larr \pmb\theta^t_i-\frac{\eta}{\sigma^t_i} \pmb g^t_i θθθit+1θθθitσitηgggit
求σ:Root Mean Square

Adagrad(考虑之前所有的梯度大小)

坡度小,gradient比较小,σ就小;反之

缺点:不能“实时”考虑梯度的变化情况

RMS Prop(加权重,调整“当前步”梯度与“历史”梯度的重要性)

调整α

Adam:RMSProp + Momentum

调用pytorch的

learning rate scheduling

learning rate dacay(跟时间有关)

Warm up(lr先变大后变小)(限制参数不会走的离初始的地方太远)

RAdam

总结:

  • 使用动量,考虑过去的梯度**“大小”与“方向”**

  • 引入σ,考虑过去梯度的“大小”(RMS)

  • 使用Learning Rate Schedule

d.损失函数

classification as Regression: class as one-hat vector(独热向量)

得到y’:softmax(把它Normalize到0到1之间),sigmoid(两个class)

计算y’跟ŷ之间的距离:MSE,Cross-entropy(常用在分类问题)

minimizing cross-entropy is maximizing likelihood(极大似然)

在pytorch里面,Cross-entropy跟Soft-max,他们是被绑在一起的,他们是一个Set,只要Copy Cross-entropy,里面就自动内建了Soft-max。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JmyiQE8q-1652774598423)(https://diamond-mule-bee.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F1f6dae63-ffbc-41c6-83ee-bcf286ef2764%2FUntitled.png?table=block&id=e028b452-d68c-4a12-be9e-42962d24b75a&spaceId=effd33e2-527b-43dc-aef5-7b5ee7b83428&width=2000&userId=&cache=v2)]

e. batch normalization

给不同的dimention同样的数值范围:Feature Normalization(归一化)

normalization要放在 activation function 之前或之后都是可以的

实际上做Normalization时,只能考虑有限数量的数据:考虑一个Batch内的数据,近似整个数据集(batch size比较大)

testing(inference):μ,σ 算 moving average(加权平均,权值是超参数)

Batch Normalization 可以改变 error surface,让 error surface 比较不崎岖

三、卷积神经网络(CNN)

1.CNN

常用场景:image classification

一张图片是三维的tensor(张量),拉直成一个向量(全连接)

简化1:

Receptive field(感受野),可以重叠(overlapped)

all channels,高宽kernel size,stride(步长),会overlap,超出范围padding

简化2:

共享参数。filter 计算内积

cnn→convolutional layer→局部连接+共享参数

一个图片通过conv得到feature map(特征图,channel变大,filters数)

连续两个3*3,相当于原图上的5*5,一个filter扫过整张图片

简化3:

pooling(池化)(图片变小,channel不变),可以让参数变少

max pooling,mean pooling

其他应用:围棋、语音、文字处理…

围棋:19*19的向量,channel为48,没有用pooling

cnn不能处理图像放大缩小旋转,need data augmentation

2.为什么用了验证集(Validation)结果还是过拟合?

val训练结果不好:H val复杂程度(待选择模型太多),N val大小

3.鱼和熊掌可以兼得的机器学习:深度学习

H小(待选择的模型),Loss低

fat+short 的loss比 thin+tall 大,

产生同样的neural,deep参数远小于shallow,when the reqquired functions are complex and regular

2021李宏毅作业hw3 --食物分类。对比出来的80准确率

作业三

李宏毅2021春机器学习HW1——记录与拓展

四、自注意力机制(self-attention)

1.应用背景

Vector Set as Input

自然语言处理:word表示为向量:one hot,word-embedding

声音信号:frame帧

图:社交网络图,化学分子式(每个节点视为一个向量)

Output

sequence Labeling,输入输出数量相等

one label,一个输出

model decides the number of labels,seq2seq

2.self-attention

paper:Attention is all you need.

每个b都考虑所有a:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rMgFeDxd-1652774598429)(https://diamond-mule-bee.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fa3a65878-e15f-40ac-bdd6-338d081073b8%2FUntitled.png?table=block&id=68d19f7d-44ed-474e-8520-414492b58cc4&spaceId=effd33e2-527b-43dc-aef5-7b5ee7b83428&width=670&userId=&cache=v2)]

计算每两个a之间的相关程度α:Dot-product、Additive

Dot-product:输入的这两个向量分别乘上两个不同的矩阵,左边这个向量乘上矩阵 W^q得到矩阵 q,右边这个向量乘上矩阵 W^k得到矩阵 k;再把 q跟 k做dot product,逐元素相乘后累加得到一个 scalar就是α

Additive:得到 q跟 k后,先串接起来得到 α,再过一个Activation Function(Normalization),然后得到 α‘,α‘和v相乘再相加(加权求和);b可以一次性产生

矩阵乘法角度:q=Wa,k=Wa,v=Wa,三个不同的矩阵W(未知的)

​ α=kq(全是向量/矩阵计算)→α’

​ O=VA‘

Multi-head Self-Attention

使用多个 q,k,v组合,不同的 q,k,v 负责不同种类的相关性

Positional Encoding

为每个位置设定一个positional vector:hand-crafted手工设置、根据资料计算

应用

NLP、语音(Truncated self-attention)、Image图像

Self-attention v.s. CNN

CNN:简化版的self-attention,资料越多self-attention(弹性好)越好

Self-attention v.s. RNN(循环神经网络)

Self-attention 可以平行处理所有的输出,效率更高

Self-attention for Graph:GNN

五、Transformer

Sequence-to-sequence(Seq2seq)

1.应用背景

语音识别、机器翻译、语音翻译、Chatbot、QA、文法分析、multi-label classification、Object Detection

2.结构

  • Encoder:输入一排向量,输出另外一排同样长度的向量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5cGa0msi-1652774598432)(https://diamond-mule-bee.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F3fd757f3-1ee4-4316-9b81-368f982b7626%2FUntitled.png?table=block&id=45d2d5ca-2639-40bb-918d-8634f20bfe4a&spaceId=effd33e2-527b-43dc-aef5-7b5ee7b83428&width=1060&userId=&cache=v2)]

每个Block中的架构:

  • multi self-attention

residual connection:把这个vector加上它的input作为output【残差网络】

layer normalization:对同一个feature,同一个example,不同的dimension,去计算mean跟standard deviation

FC network,也有residual的架构

把residual的结果,再做一次layer normalization得到的输出,才是residual network里面,一个block的输出

  • Decoder:产生输出,常用Autoregressive(AT)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fwg6uTb0-1652774598433)(https://diamond-mule-bee.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F00501b23-5e85-480d-b1e0-324f871e949b%2FUntitled.png?table=block&id=4bfbcb77-9232-4960-a121-f574f4ce1dca&spaceId=effd33e2-527b-43dc-aef5-7b5ee7b83428&width=1170&userId=&cache=v2)]

Transformer中:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qeB97o6p-1652774598434)(https://diamond-mule-bee.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F6fe24f84-7de6-4d5c-b8c6-31cc2e4c7411%2FUntitled.png?table=block&id=4da83c18-cf4a-4d1d-a97b-cf19e0759828&spaceId=effd33e2-527b-43dc-aef5-7b5ee7b83428&width=960&userId=&cache=v2)]

Masked self-attention:产生输出时,不能再看”右边“的部分(一步一步输出)

  • Decoder:Non-Autoregressive(NAT)

一次产生整个句子,并行化,能控制输出的长度,performance不如AT

  • Encoder-Decoder之间的信息传递

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZAAaA0WK-1652774598435)(https://diamond-mule-bee.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fb2dcb41f-01e9-483a-abd9-4d2e94fc6396%2FUntitled.png?table=block&id=2a5f4eb5-99a2-4eae-b928-cecfc8a043b0&spaceId=effd33e2-527b-43dc-aef5-7b5ee7b83428&width=1560&userId=&cache=v2)]

Cross Attention

not transformer

3.训练(Training)

训练数据:一段音频与对应的文字,文字为one-hot编码的向量

训练过程:Decoder输出的是概率分布。可以通过输出的概率分布与Ground Truth之间的计算交叉熵(Cross Entropy)并求梯度实现优化,交叉熵的值越小越好。

Teacher Forcing: using the ground truth as input

  • tips:

Copy Mechanism

复制输入,如,Chatbot,写摘要

Guided Attention

强迫机器要把输入的每一个东西都看过,如 语音识别,语音合成

Beam Search(集束搜索)

每次都选择分数最高的:Greedy Decoding

用比较有效的方法找一个估测的 Solution,不是完全精准的 Solution

需要机器发挥创造力/随机性的时候,beam search就比较没有帮助,如语音合成TTS,续写

评价标准:BLEU Score 是 Decoder产生一个完整的句子以后再去跟正确的答案一整句做比较

训练的时候,是看 Cross Entropy,实际上作业真正评估的时候,看的是 BLEU Score

不能把BLEU作为LOSS:无法微分

解决办法:遇到在 Optimization 无法解决的问题,用 RL 硬 Train 一发。遇到无法 Optimize 的 Loss Function,把它当做是 RL 的 Reward,把你的 Decoder 当做是 Agent。

Scheduled Sampling

给 Decoder 的输入加一些错误的东西

会损害并行化的能力

六、生成式对抗网络GAN

1.基本概念介绍

a. Generator

输入除了x以外,还有从某一简单的(已知)分布中随机采样得到的一个random的z

从network输出的也将是一个分布

b. 机器需要Creativity的时候

画图、聊天机器人

c. GAN

Unconditional generation:没有x,只看z

Discriminator(判别器):输入一张generator的产物,输出一个数字scalar;也是一个神经网络

d. 算法

初始化generator与discriminator,开始以下迭代:

固定G,训练D;固定D,训练G,使之骗过D

Progressive GAN:产生人脸,做内插

2. 理论介绍与WGAN

a. our objective目标

让生成器产生的与真实数据之间的分布接近
G ∗ = a r g   m G i n   D i v ( P G , P d a t a ) G^*=arg\ \underset{G} min\ Div(P_G,P_{data}) G=arg Gmin Div(PG,Pdata)
怎么计算divergence?通过sample数据,借助 Discriminator 来计算

训练Discriminator,真实图和生成图给不同的分数,训练过程等价于训练一个二元分类器

用max_D V(D,G)代替Div(D,G)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vCAJwVPu-1652774598436)(https://diamond-mule-bee.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F6207f090-d8e5-4dd1-a956-d9f1bd5153e6%2FUntitled.png?table=block&id=eaf19fdd-4470-41aa-b6b7-c5932edd8984&spaceId=effd33e2-527b-43dc-aef5-7b5ee7b83428&width=1470&userId=&cache=v2)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h1MMSBK6-1652774598437)(https://diamond-mule-bee.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fa6deb1c3-d57b-4cd8-a7b8-1112cabfc335%2FUntitled.png?table=block&id=27498bc4-314b-4cf9-b1be-d3bcbb68b3b7&spaceId=effd33e2-527b-43dc-aef5-7b5ee7b83428&width=1670&userId=&cache=v2)]

b. 训练技巧——WGAN

P_G和P_Data low-dim manifold in high-dim space. 重叠范围少

JS Divergence 的特性:两个没有重叠的分布算出来的值恒为 log2,无法衡量这类(没有重叠的)分布之间的关系。

使用Wasserstein distance(Earth Mover Distance)替代JS Divergence

推土机推土距离的最小值:穷举/优化问题

  • 计算:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Fh3T4Nb-1652774598437)(https://diamond-mule-bee.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fd8088967-ce00-4d82-affc-f8ff1cc0c3b4%2FUntitled.png?table=block&id=ea5e0e03-0a8b-4acb-aaa9-aa6cdae816ff&spaceId=effd33e2-527b-43dc-aef5-7b5ee7b83428&width=1410&userId=&cache=v2)]

D必须要是一个足够平滑的function,这样即使两个分布没有重叠时,也不会出现“过于剧烈”的D,保证收敛性。避免了JS Divergence出现的问题。

  • 如何实现D的限制条件:

限制参数大小;Gradient Penalty;Spectral Normalization(SNGAN)

3. 生成器效能评估与条件式生成

a. GAN训练困难

困难:Discriminator 跟 Generator,它们互动的过程是自动的。不会在每一次 Train Discriminator 的时候都换 Hyperparameter。如果有一次loss没有下降,那整个训练过程都有可能出现问题。

b. GAN for sequence Generation,不能用GD

使用Reinforcement Learning?:GAN+RL难以训练

其他的生成办法VAE、FLOW-based

有监督学习的生成模型:Generative Latent Optimization (GLO),Gradient Origin Networks

c. Evaluation of Generation(评价指标)

将图片图像影像分类系统

  • Diversity:对所有(一批)图片

Diversity-Mode Collapse(模型崩溃):训练输出的分布局限在很小的范围

Diversity-Mode Dropping(模型丢弃):训练输出的分布范围较大,但没有完全覆盖真实数据分布(多样性减小)

评估多样性:把图像分类系统对所有生成结果的输出平均起来

  • 量化指标

Inception Score(IS),基于CNN的Inception网络

Fréchet Inception Distance (FID),取Softmax 之前的 Hidden Layer 输出的向量,来代表这张图片

利用FID衡量不同GAN的性能——Are GANs Created Equal,A Large Scale Study

  • We don’t want memory GAN.(记忆性)

d. conditional generation(supervised learning)

  • text-to-image

DIscriminator:考虑Condition x,图片跟文字的叙述必须要是相配的,Discriminator 才会给高分

需要“图片-文字”的成对资料:高分;需要准备“好图片-配错文字”的成对资料:低分

  • Image Translation(pix2pix)

会输出“模糊”

  • 声音-图片

  • 产生会动的人像

4. Cycle GAN

  • learning from unpaired data

例如,图片风格转换:两个Domain之间的转换

三个Network:X转成Y;把Y还原回原来的X;discriminator看generator的输出像不像是Y domain的图

问题:两个generator学到的操作不是预期的,比如左右翻转之类的

  • 双向Cycle GAN

把橙色的generator拿来,给它Y domain的图片,让它产生X domain的图片

再把蓝色的generator拿来,把X domain的图片,还原回原来Y domain的图片

  • More style-transfer GAN

StarGAN——多种风格间转换

  • text style transfer

利用RL硬做

负面的句子转换为正面的句子:两个generator,把正面的句子转回原来负面的句子

其他应用:文本摘要,无监督翻译,无监督语音识别

七、自监督式学习

https://diamond-mule-bee.notion.site/07-Self-Supervised-Learning-BERT-fffe64d9c1ec4200a2db33ba911a24c4

https://www.bilibili.com/video/BV1Wv411h7kN?p=71

八、自编码器(Auto-encoder)

https://diamond-mule-bee.notion.site/08-Auto-encoder-57c07342cd7642298e897d0ad04aa502

九、机器学习的可解释性

https://diamond-mule-bee.notion.site/09-Adversarial-Attack-125d90a904ab4c7ab4db7162c9f1cbea

十、来自人类的恶意攻击(adversarial attack)

https://diamond-mule-bee.notion.site/10-Explainable-AI-9ea7e4815dfb4c94bff3e8dd596ded42

十一、概述领域自适应(domain adaption)

https://diamond-mule-bee.notion.site/11-Domain-Adaptation-c6f428ddbe264c878b2fa8bdf2d124dd

十二、概述增强式学习

https://diamond-mule-bee.notion.site/12-Reinforcement-Learning-RL-00c5c8c0e77749e3add1726525467ff5

十三、神经网络压缩

https://diamond-mule-bee.notion.site/13-Life-Long-Learning-LLL-120a6afa51a84f238a3f59a926ae082d

十四、机器终身学习

https://diamond-mule-bee.notion.site/14-Compression-523b9ce9e62640aab94d2e82dc975923

十五、元学习(Meta learning)

https://diamond-mule-bee.notion.site/15-Meta-Learning-b98f8168d4044ad783b6241acd4e666a

十六、

https://diamond-mule-bee.notion.site/16-c6364089b256467b98f3aa1c025d51b6

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/AbyssssssssssS/article/details/124823696

智能推荐

STM32片上外设时钟使能、失能和复位的区别-程序员宅基地

文章浏览阅读4.1k次,点赞5次,收藏28次。置顶/星标公众号,不错过每一条消息! 今天分享的关于时钟知识,可能很多人没有在意过。这也是之前有朋友问过的问题,这里就简单给大家普及一下吧。1RCC时钟说明在STM..._时钟复位和时钟使能

最强下载器idm_idm_v6.38.7.2-程序员宅基地

文章浏览阅读1.5k次,点赞3次,收藏6次。下载:IDM v6.38.7.2 中文绿色特别版https://eli08.118pan.com/b1064872密码:ye79下载: IDM 6.39.7.3https://eli08.118pan.com/b1064872密码:ye79下载好后先点击绿化,然后在点击后缀exe文件进入软件后设置一下这里要改为:softxm;netdisk这里最好设置为4这要就差不多了..._idm_v6.38.7.2

JetBrains产品字体大小调整_jetbrains字体大小设置-程序员宅基地

文章浏览阅读894次。JetBrains产品字体大小调整,如:IDEA,Pycharm的字体大小调整_jetbrains字体大小设置

常见网络协议汇总-程序员宅基地

文章浏览阅读5.3w次,点赞225次,收藏2k次。常用网络协议前言TCP/IP五层网络模型回顾应用层协议DNS协议:HTTP协议HTTPS协议传输层协议UDP协议TCP网络层IP协议ICMP协议数据链路层ARP协议物理层整体的网络传输流程前言本篇博客将对基于 TCP/IP的五层网络模型 中的常见协议做以总结 ,目的通过这些具体的协议更深刻的认识整体网络的传输流程及相关网络原理TCP/IP五层网络模型回顾应用层:为用户为用户的应用进程提供网络通信服务协议——DNS协议、HTTP协议、HTTPS协议传输层:负责两台主机之间的数据传输,将数据从发_网络协议

4.路由守卫控制权限-程序员宅基地

文章浏览阅读265次,点赞2次,收藏5次。1.用v-if控制标签显示2.路由守卫控制权限3.地址栏路由杂乱错误,无法匹配4.解决重复点击当前路由时会出现的错误

随便推点

基于深度正则化的少镜头图像三维高斯溅射优化-程序员宅基地

文章浏览阅读696次,点赞20次,收藏23次。In this paper, we present a method to optimize Gaussian splatting with a limited number of images while avoiding overfitting. Representing a 3D scene by combining numerous Gaussian splats has yielded outstanding visual quality. However, it tends to overfit

Pulsar 2.4 CentOS 7.3 安装及使用_pulsar 2.4.2架包支持服务版本-程序员宅基地

文章浏览阅读1.1k次。下载安装包http://pulsar.apache.org/en/download/使用tar -zxvf解压下载的资源包,目录结构如下显示目录:本地单点运行,使用命令./pulsar standalone即可,这里使用默认配置,暴露端口为6650测试消息发送消息 命令./pulsar-client produce my-topic --messages ..._pulsar 2.4.2架包支持服务版本

python中choice的用法_Python中的choice()方法使用详解-程序员宅基地

文章浏览阅读855次。choice( seq )注意:此函数是无法直接访问的,所以我们需要导入random模块,然后我们需要使用random对象来调用这个函数。参数seq -- 这可能是一个列表,元组或字符串...返回值该方法返回一个随机项。例子下面的例子显示了choice()方法的使用。#!/usr/bin/pythonimport randomprint "choice([1, 2, 3, 5, 9]) : ", ..._pytorch中choice

一个人做饭有哪些推荐?-程序员宅基地

文章浏览阅读2.8w次,点赞3次,收藏3次。Chen Sam ,一个空号。355 人赞同-- 2015.12.28. 一个圣诞节长周末多了100个赞..What's going on here..感恩。有同学私信说需要详细步骤的做饭教程,但是这里篇幅太局限了..如果开一个微信公众号什么的有人会想看吗?第一次认认真真地在知乎回答问题。在美帝读了两年书,除了学术最多的时间就花在做饭上了。回答里有很多很多图..大约

【领域本体】领域本体的构建方法概述-程序员宅基地

文章浏览阅读975次。领域本体构建方法概述 作者 白宁超 2015年11月6日11:07:46 摘要: 领域本体的构建方法是当前本体研究的热点问题之一。但是,目前的领域本体的创建还缺乏系统的、针对所有领域的、工程化的方法。本文介绍了本体的相关理论,和基本构建知识,并结合领域本体一般构建原则,分析了手..._领域实体的构建方法一般放在哪里

java list按照某个字段排序_List集合按某个字段排序(Collections.sort)-程序员宅基地

文章浏览阅读1.7k次。package wjtest_01;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;List list = new ArrayList();// 创建3个学生对象,年龄分别是20、19、21,并将他们依次放入List中Student s..._java 对list集合 中的某一个字段来进行排序

推荐文章

热门文章

相关标签