李宏毅机器学习笔记【未完】
李宏毅2021/2022春機器學習課程
【《2021機器學習-李宏毅》學習筆記】
一、機器學習
1.機器學習基本概念
找一個函數。
深度學習:使用類神經網絡的函數。
可以有各式各樣的輸入:向量,矩陣(如圖像),序列(如語音,文本);也可以有各式各樣的輸出:數值(regression),類別(classification),文本圖像…
- 函數類別
Regression(回歸):輸出是一個數值(scalar)
Classification(分類):給定選項/類別(classes),輸出正確的
Structured Learning:創造一些結構(image,document)
- 如何找一個函數(訓練)
1.Function with unknown parameters.
model:
y=b+wx1y = 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?=argminw,bLw^*,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=c11+e?(b+wx1)=csigmoid(b+wx1)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+∑icisigmoid(bi+∑jwijxj)y = b + \sum \limits_i c_i \ sigmoid(b_i+\sum \limits_j w_{ij}x_j) y=b+i∑?ci??sigmoid(bi?+j∑?wij?xj?)
y=b+cTσ(b+Wx)y=b+\pmb{c^T} σ(\pmb b+W\pmb x) y=b+cTcTcTσ(bbb+Wxxx)
所有的參數統稱為 θ,所以Loss表示為 L(θ)
- Optimization of new model(優化過程):
選定初始參數值向量θ0;求微分(梯度向量);更新參數。
θ?=argmθinL\pmbθ^*=arg\ \underset{\pmb θ}min\ L θθθ?=arg?θθθm?in?L
L對θ微分,拼成向量就是gradient(g),(梯度)
g=?L(θ0)\pmb g=?L(\pmbθ^0) g?g??g=?L(θθθ0)
θ1←θ0?ηg\pmb\theta^1 \larr \pmb\theta^0 - \eta\ \pmb g θθθ1←θθθ0?η?g?g??g
……依此類推。
batch:一批,randomly,每次更新參數時使用1歌batch里的數據計算loss求梯度,bitch_size也是超參數
epoch:把所有的batch看一遍
update:每更新一次參數
- sigmoid → ReLU(Activation Function激活函數)
把兩個 ReLU 疊起來,就可以變成 Hard 的 Sigmoid。
y=b+∑2icimax(0,bi+∑jwijxj)y = b + \sum \limits_{2i} c_i \ max(0,b_i+\sum \limits_j w_{ij}x_j) y=b+2i∑?ci??max(0,bi?+j∑?wij?xj?)
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(θ′)+(θ?θ′)Tg+12(θ?θ′)TH(θ?θ′)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(θθθ′)+(θθθ?θθθ′)Tg?g??g+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設大一點
θit+1←θit?ησitgit\pmb\theta^{t+1}_i \larr \pmb\theta^t_i-\frac{\eta}{\sigma^t_i} \pmb g^t_i θθθit+1?←θθθit??σit?η?g?g??git?
求σ: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?=argmGinDiv(PG,Pdata)G^*=arg\ \underset{G} min\ Div(P_G,P_{data}) G?=arg?Gm?in?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
總結
以上是生活随笔為你收集整理的李宏毅机器学习笔记【未完】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SVG 与 Canvas:如何选择
- 下一篇: Ackerman函数(阿克曼函数) 递归