0%

MachineLearning-机器学习-课程笔记

在YouTube上学习李宏毅的机器学习课程。

1、学习这门课的出发点。

1)为以后找到一份跟机器学习算法相关的工作。

2)在TN神经痛课题上,运用机器学习相关技术,挖掘数据背后的规律。

​ 第一个需要挖掘的规律是,利用颌面部表情,挖掘疼痛强度之间的关系;

​ 第二个需要挖掘的规律是,利用小鼠的神经元,挖掘和疼痛强度之间的关系;

2、希望达到的水平

1)理论层面,对于如何构建机器学习模型有系统的认知。(掌握几个主流的Machine Learning框架,Support Vector Machine、CNN、RNN、LSTM);

2)实践层面,熟悉tensorflow框架,能够搭建、修改深度学习模型;

3)像使用PPT一样,使用深度学习模型。

https://www.youtube.com/watch?v=CXgbekl66jc&list=PLJV_el3uVTsPy9oCRY30oBPNLCo89yu49&ab_channel=Hung-yiLee

机器学习2017

课程网站:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17_2.html

开源笔记网站:https://datawhalechina.github.io/leeml-notes/#/

3、开始课程吧~

【機器學習2021】預測本頻道觀看人數 (上) - 機器學習基本概念簡介

https://youtu.be/Ye018rCVvOo?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=930

机器学习能够解决的问题:回归(预测明天股票的价格)、分类(n个类别)、Structured Learning(让机器产生一个有结构的东西,比如绘制一张图、写一段话)。

  • 机器学习 training 的三个关键步骤:

    第一步:定义模型model,(说白了,就是带有参数的函数)。$y = b + w x$​​
    第二步:定义模型的评价函数Loss Function(Loss是一个跟参数相关的函数)。选择Loss函数$L$​

    ​ loss is a function of parameters。L(b,w),模型的输出和真实label之间的差异。

    • Mean Absolute Error (平均绝对误差)、Mean Square Erroe(平均均方误差)、交叉熵(Cross-Entropy)
    • error surface(通过调整不同参数,绘制出的loss结果);

    第三步:优化(optimization) $w^, b^ = arg\ \mathop{min}\limits_{w,b}\ L$​​

    ​ 使用梯度下降法,找到使得$L$​最小的$w^*$​ 和$

  • Model Bias:来自model本身的限制

https://youtu.be/bHcJCp2Fyxs?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=115

  • Sigmoid函数,多个sigmoid函数叠加起来可以逼近任何函数。

https://youtu.be/bHcJCp2Fyxs?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=544

【機器學習2021】預測本頻道觀看人數 (下) - 深度學習基本概念簡介

  • 课程笔记:关于epoch和batch size的区别:

https://youtu.be/bHcJCp2Fyxs?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=2378

  • ReLu函数

https://youtu.be/bHcJCp2Fyxs?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=2520

两个ReLU函数加起来,等于一个soft sigmoid函数

机器学习中的Activation Function

https://youtu.be/bHcJCp2Fyxs?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=2622

  • 为什么深度学习不横向发展,而要纵向发展?(为啥不搞fat netkwork ,而叫deep network)

https://youtu.be/bHcJCp2Fyxs?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=3194

层数越深,越容易过拟合。

机器学习三步走:

https://youtu.be/WeHM2xpYQpw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=248

1、function with unknow;$y = f_\theta(x)$

2、define loss function;$L(\theta)$

3、optimization;$\theta^* = arg\ \mathop{min}\limits_{\theta}\ L$​

4、使用模型进行预测 $y{predict} = f{\theta^*}(x)$

  • 如何做一个调参师:(调整模型结构、调整loss function、通过做batch normolization使得error surface更加平坦、做数据增强、增加训练集的样本)

https://youtu.be/WeHM2xpYQpw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=312

  • 什么时候才需要增加训练集的样本?

当你的模型出现Overfitting的时候才需要增加训练样本。overfitting的症状是,模型在train dataset上的loss非常低,但是在test dataset上的loss非常高。

https://youtu.be/WeHM2xpYQpw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1285

在无法收集资料的前提下,该如何增加模型在test dataset上表现呢?答案有:数据增强(data augmentation)、对模型施加约束(更少的参数、参数共享、less feature、early stopping、regularization、drop)

  • 为什么要把training set分成两份(training set和validation set)

https://youtu.be/WeHM2xpYQpw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=2466

  • 什么是mismatch(训练样本的分布和预测样本的分布不一样)

https://youtu.be/WeHM2xpYQpw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=2933

  • 如何知道是不是mismatch?(要理解训练资料和测试资料的产生方式)

https://youtu.be/WeHM2xpYQpw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=3061

  • 模型都不知道,函数都不清楚,如何计算梯度?

https://datawhalechina.github.io/leeml-notes/#/chapter3/chapter3

【機器學習2021】類神經網路訓練不起來怎麼辦 (一): 局部最小值 (local minima) 與鞍點 (saddle point)

  • 梯度为零的点包括local minimun、saddle point —->统称为critical point

  • 海森矩阵的eign value有正有负,代表saddle point

https://youtu.be/QW6uINn7uGk?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1158

  • 用海森矩阵的方法逃离saddle point,是实际情况中并不常用。

https://youtu.be/QW6uINn7uGk?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1514

  • 关于优化函数的小结:

https://youtu.be/HYUXEeh3kwY?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=2197

  • 能不能把error surface 给“炸”平?

通过修改loss function 能够改变optimization的难度

https://youtu.be/O2VkP8dJ5FE?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1165

  • 分类问题的标签如何打?one-hot vector

https://youtu.be/O2VkP8dJ5FE?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=214

  • 什么是softmax function?

https://youtu.be/O2VkP8dJ5FE?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=365

softmax的输入叫logit

  • 两个class的时候,sigmoid和softmax是一样的。

https://youtu.be/O2VkP8dJ5FE?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=653

  • classficition的loss(MSE、和cross entropy)

https://youtu.be/O2VkP8dJ5FE?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=723

  • 最小化 cross-entropy 和最大化 likelyhood是一模一样的东西。

https://youtu.be/O2VkP8dJ5FE?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=723

  • softmax和cross entropy在pytorch中被绑定在一次。

  • 什么是batch normalization

https://youtu.be/BABPWOkSbLE?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1047

  • batch normaization能够是的error face变得更加光滑

https://youtu.be/BABPWOkSbLE?t=1725

  • 各种各样的normalization方法:

https://youtu.be/BABPWOkSbLE?t=1725

network的设计,有什么想法。

【機器學習2021】卷積神經網路 (Convolutional Neural Networks, CNN)

https://youtu.be/OP5HcXJg2Aw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1644

  • 什么是Feature Map(假设你有一张图片100×100×3的图片,然后有64个3×3×3(chanel)的filter,经过一个卷积层之后得到98×98*64的Feature Map,然后这个Feature Map,你可以再看成是一张图像,只不过这张图片的chanel不是3了,是64个channel)。当然convolution layer可以叠很多层,那么第二层里的filter呢,它的大小就是3×3×64了

https://youtu.be/OP5HcXJg2Aw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=2052

  • 换一种方式理解CNN,convolution 由各种各样的filter构成,每个filter的功能是从图像中抓feature

https://youtu.be/OP5HcXJg2Aw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1836

  • pooling存在的目的是为了减少运算量,一般做两层卷积,做一次pooling。

https://youtu.be/OP5HcXJg2Aw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=2611

但是有些场景就不能用pooling,比如AlphaGo里边,就没有pooling,因为pooling之后,把某些列删掉后,对围棋来说就没道理了。

https://youtu.be/OP5HcXJg2Aw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=3164

  • Flatten是干什么的?把排成矩阵的tensor,拉直成一个向量。然后丢给fully connection layer,再过一个softmax,最终得到输出。

https://youtu.be/OP5HcXJg2Aw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=2648

  • 将CNN运用到语音识别、自然语言处理上时,需要注意的点有:receptive field设计、参数共享设计等注意事项。

https://youtu.be/OP5HcXJg2Aw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=3207

  • CNN不能处理图片放大缩小的问题;(训练前,做图像增强)

https://youtu.be/OP5HcXJg2Aw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=3310

【機器學習2021】自注意力機制 (Self-attention) (上)

  • Self-attention神经网络解决什么问题?

https://youtu.be/hYdO9CscNes?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=14

现在的网络,输入是一个向量,输出是一个标量或者类别。但是很多任务中,输入是一堆向量,而且输入向量的长度还会发生改变。该怎么办?(比如输入一个句子,句子的长短不是固定的,而且每个单词之间是有联系的。要求输出句子中每个单词的词性,该怎么弄?one-hot的编码格式,使得单词之间的关联性消失)。但是需要注意的是,这类任务中,输入和输出的长度是一样的。(输入几个向量,输出几个向量)

还有一种可能,输入是多个向量,但只需要输出一个label。(比如语句分析,给一个句子,输出是积极的评价,还是消极的评价)

还有一个可能,输入是多个向量。输出也是多个向量。但是输出的个数不是固定的。这类任务是seq2seq任务。

以上总结了三种任务:N对N,N对1,N对M(M是机器决定的);

本节课的内容,针对的是第一类问题:N对N;(sequence labeling任务)

解决“I saw a saw”这样的问题。如何解决?

1、加窗(考虑前后5个vector);

2、考虑整个sequence;如何做到呢?就需要用到self attention技术了;self -attention 会吃掉整个sequence的信息;Input结果Vector,就输出几个Vector;

  • 如何更好地考虑整个input的信息?

https://youtu.be/hYdO9CscNes?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=966

1、第一步,根据$a^1$找出整个sequence中哪些部分是重要的,这部分对于判断$a^1$的label是重要的;

2、sequence中,每向量跟$a^1$关联的程度用一个数值表示$\alpha$​

3、self-attention如何决定两个向量之间的关联性呢?(https://youtu.be/hYdO9CscNes?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1298),有两种做法:第一种是dot-product。引入了两个矩阵$W^q$​和$W^k$​​​ ​,还可以采用Additive的方法

4、$q^1 = W^q\ a^1$ (q是query的缩写),其他的向量$k^2 = W^k a^2$(k是key的缩写),然后将$q^1$和$k^2$做内积,得到$\alpha{1,2}$(1代表query是$a^1$提供的,2代表key是$k^2$提供的),$\alpha{1,2}$也叫做attention score。

5、$a^1$也会跟自己做相关性;

6、每一个$\alpha$都会经过一个soft-max(当然也可以经过ReLu函数) ,得到$\alpha’$

7、接下来要根据这些$\alpha$​(相关性)去抽取整个Sequence中重要的信息;此时引入$W^v$​矩阵,用$W^v$​和$a^i$​相乘得到$v^i$​,即$v^i = W^va^i$​ ;

8、每个$v^i$​和$\alpha’$​相乘,求和,最终得到输出label ,$b^i$​​ ;

9、谁的attention最大,输出结果就受谁的影响最大;


从矩阵惩罚的角度,重新讲一遍:

https://youtu.be/gmsMY5kc-zw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=215

  • self attention可以叠加很多层;

https://youtu.be/hYdO9CscNes?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1113

  • 自监督层中的特征如何计算?

https://youtu.be/hYdO9CscNes?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1691

  • 什么是模型的embedding? The embedding in machine learning or NLP is actually a technique mapping from words to vectors which you can do better analysis or relating。就是把单词变成向量的方法。

https://datascience.stackexchange.com/questions/53995/what-does-embedding-mean-in-machine-learning

  • 多个模型如何级联到一起? Model Ensemble

【機器學習2021】自注意力機制 (Self-attention) (下)

  • 做语音识别的时候,有个技术叫Truncated self-attention技术,它解决“如果输入样本L太大”这类问题。(解决如何避免内存爆炸的问题);

https://youtu.be/gmsMY5kc-zw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1664

  • self attention 如何运用到图像处理上?

https://youtu.be/gmsMY5kc-zw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1686

讲CNN的时候,把一张图像看成一个很长的Vector;

现在把一张图像看成一个vector set;

  • self attention和CNN有什么差异?

https://youtu.be/gmsMY5kc-zw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1828

(1)CNN可以看做是一种简化版的self-attention。因为CNN只考虑 receptive field里的信息。

(2)反过来说,self-attention是一种复杂化的CNN,在CNN中,只关注receptive field里的信息,receptive field的大小和尺寸是人设定了。而在self-attention中,这个receptive field是由机器自己学出来的。

https://youtu.be/gmsMY5kc-zw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1877

  • self attention和RNN之间的差异:

https://youtu.be/gmsMY5kc-zw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=2122

1、RNN和Self Attention一样,都需要处理输入是一个Sequence的情况;

2、对于第一个input vector,RNN吃掉该Vector和一个memory;

3、对于第二个input vector,RNN吃掉该vector和上个RNN的输出;

4、以此类推;

—两者有什么不同呢?

1、对于self attention 来说,每个输出的vector都考虑了整个sequence;但是RNN输出的每个vector,只考虑了左边的vector,没有考虑右边的vector;

2、李宏毅老师举了一个例子,拿最右边的Output Vector来说,如果希望考虑第一个输入Vector该怎么办?在Self Attention中,只要第一个vector提供的key和query匹配就可以了,但是在RNN中,第一个Vector提供的信息得一直在memory中保留才行;

3、RNN在输出output的sequence时,没有办法并行;而self-attention可以并行;

  • RNN相关的神经网络介绍:

https://youtu.be/gmsMY5kc-zw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=2423

RNN在之前的课程中已经介绍过,网址如下:

https://www.youtube.com/watch?v=xCGidAeyS4M&ab_channel=Hung-yiLee

一个背景问题:Slot Filling。引出来:我们希望我们的网络是有记忆力的;

在RNN中,网络会考虑输入序列的order;

在RNN中有多种不同的类型,

比如
(1)Elman Network:把hidden layer的值存起来,下个时刻再读出来
(2)Jordan Network:把整个网络的output存起来,

(3)双向RNN Bidirectional RNN 好处是,网络观测的范围比较广。

以上属于基础版的RNN,还有升级版的RNN,比如LSTM,

LSTM中也有记忆门,但是记忆门的结构比较复杂,包括Input Gate(输入门,能不能往memory里写数据,由网络自己学),Output Gate(输出门,其他神经元能不能从memory中读数据,由网络自己学)和forget Gate(遗忘门,决定要不要把memory中的数据格式化,由网络自己学)。
简单来说,LSTM的Cell有四个输入:要写到memory的数据、三个门的开关信号;

https://youtu.be/xCGidAeyS4M?t=1180

LSTM运行的真实过程:

https://youtu.be/xCGidAeyS4M?t=1682

  • Self attention如何应用到图(Graph)中?

1、直线的attention matrix是学出来的;但对于Graph来说,edge已经提供了连接关系;

2、所以,在计算attention matrix时,只计算有edge相连的node;

3、当把graph应用到self attention上时,其实就是一种 Graph neuro network;

https://youtu.be/gmsMY5kc-zw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=2580

4、那self-attention囊括了所有的Graph Neuro Network吗?

5、GNN网络的详细介绍(图神经网络):

https://youtu.be/gmsMY5kc-zw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=2593++

图神经网络:在之前的课程中已经介绍过了

https://youtu.be/eybCCtNKwzA

姜成翰助教来讲新的内容,

1、图神经网络的基本介绍。

Graph:图,包含节点和权重边;就是连在一起的结构;节点有节点的性质,边有边的性质;

Neural Network:

神经网络的入门级别:CNN -> RNN -> Transformer ->

2、图神经网络能够解决什么问题?

问题:

我们为什么要用到图神经网络呢?(GNN)

我们怎么把一张图塞到一个Neural Network里呢?

图神经网络能够解决什么问题,做什么事情?

(1)用图神经网络,来开发新药。Train一个generator,(也就是一个decoder),它只吃一些随机的node(random node)

图神经网络的输入是一个graph


日剧,忒休斯之船。找凶手的过程,可以看成是一个classification的问题;每个角色是一个entity,每个entity都有对应的attributes 如何train?

角色和角色之间的关系,如何丢到模型中进行训练?

如何考虑所有entity之间的关系?这个时候就必须要用图神经网络了;

一个问题:我们手上有海量的数据,但是只有有限的labeling,该怎么办?
一个图上边有label node和unlabel node。

图神经网络学的,是node represention (node feature)

基本原则,近朱者赤近墨者黑;

如何把邻居的信息,aggreate到当前节点中;

图神经的卷积;

如何在图中进行卷积?
(1)基于空间的卷积:sum(NN4G),mean(DCNN, DGC, GraphSAGE),weighted sum(MoNET, GAT, GIN), LSTM(GraphSAGE), Max pooling(GraphSAGE)

(2)基于频率的卷积(ChebNet -> GCN -> HyperGCN);

最常用的Model有两个:GAT和GCN;

GNN网络一般用在哪些任务中:
(1)有监督的分类问题上;
(2)半监督的学习问题上;
(3)表达学习上,Graph InfoMax;
(4)Generation(生成): GraphVAE, MolGAN, etc

图神经网络在NLP(自然语言处理问题)上的应用;

图神经网络中一些常见的dataset:

Spatial Based GNN
在GNN中如何更新Feature中的Value,和CNN的基本思想类似,用邻居的值,进行卷积后,得到新的权重。在GNN中补交卷积,叫aggregate。

如何把每个node的feature合并起来,成为一个graph的feature?在GNN中,这件事儿叫read-out

第一个GNN神经网络:NN4G(Neural Networks for Graph)

如何更新权重? :邻居们 加起来,然后乘上权重,在加上input对应的值;

GNN可以有很多层,这么多层怎么readout呢?每一层的feature都加起来,然后经过一个transform后,再加起来

https://youtu.be/eybCCtNKwzA?t=1585

第二个GNN神经网络:DCNN(Diffusion-Convolution Neural Network)

第一层:距离是1的节点全部加起来,然后取平均;
第二层:不是用第二层的feature来更新,还是用第一层的feature来更新,只不过距离不再是1,而是2;
https://youtu.be/eybCCtNKwzA?t=1763

GNN中有K层,就能看到距离是k的邻居的内容;

每一层的特征,就成为一个矩阵;

如果需要做node的feature classification,就把所有层的的第一个节点的feature拿出来,拼成一个矩阵,然后 经过一个矩阵,得到一个值

还有一个网络叫:DGC(Diffusion Graph Convolution)

它是把所有层的feature map 加起来,再做判断;

另外一个model : MoNET(Mixture Model Networks)

出发点:每个邻居都有不同的weight(权重不一样)

https://youtu.be/eybCCtNKwzA?t=1878

该model,定义了节点到节点之间的距离(设计到了节点的度):
https://youtu.be/eybCCtNKwzA?t=1924

另外一model: GraphSAGE
https://youtu.be/eybCCtNKwzA?t=1991

在GraphSAGE网络中,有很多种来利用邻居进行aggregation:mean,max-poling, lstm.

其中最具特色的是把LSTM的思想,运用到图网络中;即,把邻居的feature喂到LSTM中,然后把它最后一层的hidden state当做是output,然后拿这个东西来update。我们知道LSTM是针对有顺序的data的,那么怎么处理GNN中一个节点的邻居们呢?这个时候就是随机搞一个顺序,丢到LSTM中。因为是随机的,所以GNN可能到最后,就会学会忽略顺序对结果的影响;

还有一个网络GAT(Graph Attention Networks)

特点是:不只要做weighted sum ,这个weight sum还要自己去学;

用一个节点和邻居节点,算出来energy的东西;energy衡量了邻居对当前这个节点的重要性。然后在下一层中,用能量energy 乘上 邻居的value,再求和,就得到下一层的的feature map。这种网络就叫 Graph Attention Networks。
https://youtu.be/eybCCtNKwzA?t=2153

GIN(Graph Isomorphism Network) 图同构网络;

理论分析,为什么有的方法是work的,有的方法不可能work。为什么。这就是理论分析;

为什么不要用mean 和max pooling,而要用sum? 以为在前两者无法区分邻居都是一样的情况。

https://youtu.be/eybCCtNKwzA?t=2254

还要加上节点本身的feature ,但是本身的权重可以去学。


图神经网络的第二课;
https://youtu.be/M9ht8vsVEw8

https://youtu.be/M9ht8vsVEw8?t=43
Deep Graph Library中已经有很多写好的GNN

这一节主要讲的是,
(1)graph signal processing;
(2)Spectral-based graph neural network;

基本思想:

https://youtu.be/M9ht8vsVEw8?t=196

Spectral Graph Theory 谱图理论

https://youtu.be/M9ht8vsVEw8?t=420

需要明确两个概念:

邻接矩阵(adjacency matrix):节点和节点之间是否相连?

度矩阵(degree matrix):对角线上都是该节点有多少个邻居;

Graph Signal:每个节点上是一个信号,类似于真实的神经元信号;

Graph Laplacian(图的拉普拉斯变换)

这个课程中将的内容呢,每个节点都是一个标量;

https://youtu.be/M9ht8vsVEw8?t=811

当把laplacian apply到一个graph上之后,相当于在某个信号跟他邻居的能量差。

https://youtu.be/M9ht8vsVEw8?t=1148

这个式子代表的是:power of signal variation between nodes. 代表两个节点之间的信号能量差;

带你直观地理解 图的频率:

图的傅里叶变换:
https://youtu.be/M9ht8vsVEw8?t=1557

图的傅里叶反变换:
https://youtu.be/M9ht8vsVEw8?t=1744

讲这些内容的目标是为了,找到一个可以在图graph上做filter的东西。在频率上直接想乘,相当于在时域上做卷积。

https://youtu.be/M9ht8vsVEw8?t=1923

当前方法的局限性:

模型要学的filter的size跟graph的size有关,这样带来的问题是,模型的学习能力跟输入图的大小尺寸相关。(模型的参数越多,说明模型的学习能力越强。)

Spectral Graph 网络存在的关键局限性是:它不是localize的;

一个GNN网络:ChebNet(属于Spectral Graph)

该网络的两个特点:第一,快;第二:localize;
他的学习能力是O(N) 不会随着模型的输入尺寸变化而变化。

https://youtu.be/M9ht8vsVEw8?t=2490

如何解决时间成本高昂的问题?chebyshev polynomial

https://youtu.be/M9ht8vsVEw8?t=2637

为什么要用chebyshev polynomial,意义是:通过这种方法,可以让参数变得非常好算。

前边没听懂没关系,这里是结论:
https://youtu.be/M9ht8vsVEw8?t=3087

第二个网络GCN(最喜欢用的,比较直观,背后有数学基础)

GCN中feature map 更新的策略是:先让所有节点经过一个transform之后,所有的neighbor包起来,取平均。

把一张自然图像,转换成一张图:

自然图像 ——>super pixel(像素之间存在link)

https://youtu.be/M9ht8vsVEw8?t=3537

一个公开数据集,通过观察分子的结构,预测分子的溶解度:
https://youtu.be/M9ht8vsVEw8?t=3579

一个任务:辨别node属于哪些cluster?
一个任务:做edge的travel classification;

结论:GCN网络的效果并不是最好的;
https://youtu.be/M9ht8vsVEw8?t=3826

可能的原因:
权重的指数decay

drop edge;

Graph Generation,的目标是:生成图片。
这种任务,传统的方法也能做:VAE-based model, GAN-based model,还有auto regressive based model;

图神经网络的总结:
https://youtu.be/M9ht8vsVEw8?t=4151

  • self attention的各种变形;

https://youtu.be/gmsMY5kc-zw?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=2616

  • self attention最大的问题,就是运算量非常之大;

【機器學習2021】Transformer (上)

  • transformer和bert有什么关系?

https://youtu.be/n9TlOhRjYoc?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=28

  • transformer是什么?就是一个seq2seq的model

https://youtu.be/n9TlOhRjYoc?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=43

  • 硬train一发,能不能解决问题?

https://youtu.be/n9TlOhRjYoc?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=428

  • 台语的语音合成

https://youtu.be/n9TlOhRjYoc?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=568

  • seq2seq的model训练一个聊天机器人;

https://youtu.be/n9TlOhRjYoc?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=675

  • 定制化的模型,往往比seq2seq更好;

https://youtu.be/n9TlOhRjYoc?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=913

  • seq2seq用来进行语法解析;

https://youtu.be/n9TlOhRjYoc?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1198

  • seq2seq用来解决多标签分类问题;(multi label classification)同一个目标,属于多一个类别

https://youtu.be/n9TlOhRjYoc?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1217

  • 现在开始学,如何做seq2seq的model.

【機器學習2021】Transformer (下)

【機器學習2021】生成式對抗網路 (Generative Adversarial Network, GAN) (一) – 基本概念介紹

【機器學習2021】生成式對抗網路 (Generative Adversarial Network, GAN) (二) – 理論介紹與WGAN

【機器學習2021】生成式對抗網路 (Generative Adversarial Network, GAN) (三) – 生成器效能評估與條件式生成

【機器學習2021】生成式對抗網路 (Generative Adversarial Network, GAN) (四) – Cycle GAN

【機器學習2021】自督導式學習 (Self-supervised Learning) (一) – 芝麻街與進擊的巨人

自监督学习是无监督学习的一种。

【機器學習2021】自督導式學習 (Self-supervised Learning) (二) – BERT簡介

【機器學習2021】自督導式學習 (Self-supervised Learning) (三) – BERT的奇聞軼事

【機器學習2021】自督導式學習 (Self-supervised Learning) (四) – GPT的野望

【機器學習2021】自編碼器 (Auto-encoder) (上) – 基本概念

自编码器模型的encoder跟降维之间有联系。

李宏毅老师讲PCA和t-SNE

https://youtu.be/3oHlf8-J3Nc?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=469

Auto-Encoder好在哪里呢?

为什么Auto-Encoder能够work?

https://youtu.be/3oHlf8-J3Nc?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=632

encoder的事情就是化繁为简:

https://youtu.be/3oHlf8-J3Nc?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=726

Hinton使用Restricted Boltzmann Machine(受限玻尔兹曼机)对不同层的auto encoder分开进行训练

https://youtu.be/3oHlf8-J3Nc?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=818

为什么现在都没啥人用,Restricted Boltzmann Machine(受限玻尔兹曼机)了呢?

https://youtu.be/3oHlf8-J3Nc?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=908

De-noising Auto-encoder去噪的自编码器

https://youtu.be/3oHlf8-J3Nc?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=964

Bert的模型就是encoder,输出就是embedding,然后跟着一个linear模型做decoder

https://youtu.be/3oHlf8-J3Nc?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&t=1085

【機器學習2021】自編碼器 (Auto-encoder) (下) – 領結變聲器與更多應用

【機器學習2021】來自人類的惡意攻擊 (Adversarial Attack) (上) – 基本概念

【機器學習2021】來自人類的惡意攻擊 (Adversarial Attack) (下) – 類神經網路能否躲過人類深不見底的惡意?

【機器學習2021】機器學習模型的可解釋性 (Explainable ML) (上) – 為什麼類神經網路可以正確分辨寶可夢和數碼寶貝呢?

【機器學習2021】機器學習模型的可解釋性 (Explainable ML) (下) –機器心中的貓長什麼樣子?

【機器學習2021】概述領域自適應 (Domain Adaptation)

【機器學習2021】概述增強式學習 (Reinforcement Learning, RL) (一) – 增強式學習跟機器學習一樣都是三個步驟

【機器學習2021】概述增強式學習 (Reinforcement Learning, RL) (二) – Policy Gradient 與修課心情

【機器學習2021】概述增強式學習 (Reinforcement Learning, RL) (三) - Actor-Critic

【機器學習2021】概述增強式學習 (Reinforcement Learning, RL) (四) - 回饋非常罕見的時候怎麼辦?機器的望梅止渴

【機器學習2021】概述增強式學習 (Reinforcement Learning, RL) (五) - 如何從示範中學習?逆向增強式學習 (Inverse RL)

【機器學習2021】機器終身學習 (Life Long Learning, LL) (一) - 為什麼今日的人工智慧無法成為天網?災難性遺忘(Catastrophic Forgetting)

【機器學習2021】機器終身學習 (Life Long Learning, LL) (二) - 災難性遺忘(Catastrophic Forgetting)的克服之道

【機器學習2021】神經網路壓縮 (Network Compression) (一) - 類神經網路剪枝 (Pruning) 與大樂透假說 (Lottery Ticket Hypothesis)

【機器學習2021】神經網路壓縮 (Network Compression) (二) - 從各種不同的面向來壓縮神經網路

【機器學習2021】元學習 Meta Learning (一) - 元學習跟機器學習一樣也是三個步驟

【機器學習2021】元學習 Meta Learning (二) - 萬物皆可 Meta

【機器學習2021】課程結語 - 最後的業配並改編《為學一首示子姪》作結