1. 程式人生 > >ML Lecture Notes

ML Lecture Notes

一、文章來由

二、《一天搞懂深度學習》

300多頁的PPT
對應的視訊地址

1、Lecture I: Introduction of Deep Learning

(1)machine learning≈找函式

training和testing過程

這裡寫圖片描述

(2)單個神經網路

這裡寫圖片描述

這裡寫圖片描述

神經元連線起來構成網路

(3)deep 神經網路

這裡寫圖片描述

Softmax層作為最後的output層,

找function的過程就是找一個函式讓total loss最小

這裡寫圖片描述

(4)deep比fat好
模組化 -->更少訓練資料

2、Lecture II: Tips for Training DNN

這裡寫圖片描述

如何在訓練資料上效果更好

這裡寫圖片描述

如何在test資料上效果更好

這裡寫圖片描述

loss函式:Cross Entropy比Square Error要陡峭

(1)另一個啟用函式,ReLU
因為多層的時候,激勵函式算出來的值會越來越小,所以用ReLU把已經為0的值去掉
ReLU is a special cases of Maxout

(2)Learning Rates
If learning rate is too large, Total loss may not decrease
after each update

If learning rate is too small, Training would be too slow

這裡寫圖片描述

一個更popular的做法是,開始大一點learning rate,之後減少

(3)動量

如果達到區域性最優解,任然給一定機會向前探索(類似還給一定動量向前衝)

前饋控制(Feedforward Control) 就一般而言,管理中採取的 控制 可以在行動開始之前、 進行之中或結束之後進行,稱為三種控制模型。第一種稱為 前饋控制 或預先控制;第二種稱為 同期控制 或過程控制;第三種稱為 反饋控制 或事後控制。

Softmax

這裡寫圖片描述

三、ML Lecture

李老師很棒的課

0x00 Learning Map

ML其實就是再找一個function,完成複雜任務,但是這個需要機器自己學
事先定義一組function set

在這裡插入圖片描述

regression

輸出是標量

structure learning

輸出有結構性的東西

0x01 Machine Learning and having it deep and structured (2017,Spring)

這一節其實有點越階了,MLDS是進階課程

(1)全聯通的神經網路,通常很多不必要的引數,可以剪枝

(2)RNN用於處理sequence很好用,因為就是同一個神經元的重複。
特點:不好train,一旦train好了,在test上面效果不錯,不易過擬合

這裡寫圖片描述

(3)LSTM有一個變化很慢的部分,用於模擬記憶

這裡寫圖片描述

還有金字塔型神經網路,對於不收斂的data效果很好,可並行

這裡寫圖片描述

另一個現在也比較常用的方法 GRU,運算量較LSTM要小,且引數少不易過擬合

這裡寫圖片描述

LSTM的各種架構的表現

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

(4)share引數的情況,稱之為filter或kernel,卷積特性

這裡寫圖片描述

通常receiptive filed 只在一個軸上滑動,且是包含完整的這個軸資訊,通常是時間軸

0x02 Regression

DL三大步驟

1、定義一個function set(model)
2、評估function
3、找到最好的function

loss function 是用來評判一個對映函式好不好的,是第二步
將一個函式放入 loss function 即可算出這個函式的好壞,即w和b的好壞
即找到一個f*=argminL(f)

知道Loss函式可以微分就可以用gd

梯度下降步驟:

1、隨機選取一個初始點w0
2、計算在w0點對L的微分(自變數對因變數)
3、如果梯度為負,則右移;梯度為正,則左移

在這裡插入圖片描述

Linear regression 沒有local minima, 因為是convex的

在這裡插入圖片描述

所以gradient就是每個引數對loss的偏微分
鑑於這裡關於偏微分的理解, 個人認為batch sgd是取整個batch一個平均的loss

這裡寫圖片描述

如果將b和w對L的偏微分做方向,是等高線的法線方向

在這裡插入圖片描述

偏微分也是容易得到的

overfitting

更復雜的模型是簡單模型的父集合,必然得到的loss會更低

這裡寫圖片描述

如何解決over fitting的問題:
(1)拿到更多資料
(2)正則化

如果線性分類器的組合,也是線性分類器

正則化

正則化是希望一個更小的w,也就是一個“更平滑”的w,所謂的更平滑就是輸入變化,但是output變化不是那麼劇烈
正則化不用考慮b, 因為b平移影象對是否平滑沒有影響

0x03 Error來自何處

分別來自bias和variance

這裡寫圖片描述

這裡寫圖片描述

如果訓練多次會出現完全不同的model引數,評估一個model的好壞—相當於交叉檢驗

這裡寫圖片描述

bias是所有的f*的平均值,看是否接近靶心

這裡寫圖片描述

簡單model有較大的bias,複雜的model有較小的bias

這裡寫圖片描述

直觀解釋起來,其實是一個簡單的f,有較小的function space,複雜的f相反

回到問題

這裡寫圖片描述

這兩種作用同時對結果產生影響,決定了你的網路是否表現能力過於強或不夠

這點很重要,對於model的改進的方向性問題
— Hung-yi Lee

這裡寫圖片描述

對於不同的問題有不同的處理方法:
(1)如果underfitting(不能很好擬合樣本點),就要換模型,加多引數,找再多資料都是沒用的
(2)如果overfitting,應該加data(萬能藥),正則化(可能會傷害 bias)

有的時候不方便collect data,就自己generate假的,比如左轉、右轉角度,反轉 — data augmentation

這裡寫圖片描述

通常在bias和variance中做trade off

交叉驗證

有可能自己測試的時候很好,但是真正測得時候很差

這裡寫圖片描述

往往在private的data表現是差一些的,imagenet刷到3%真實生活中也不可能

正確的做法是:
(1)用training set先確定一個
(2)然後用所有的training set訓練
(3)然後就確定用這個了,通常public的set會結果差一點

不建議會過去調model,但是發論文的時候幾乎不可避免

N-ford Cross Validation

如果不相信某一次train與test的結果,就分很多種不同的forder

這裡寫圖片描述

不去太care在public set上的結果,就算差也不去改,private set的結果往往比較像

0x04 Gradient Descent

Loss function 是一個function的function

或者這麼說更清楚,神經網路做了兩個function:
1、一個是他期望擬合的function(輸入X是引數),forward pass的時候做的
2、另一個是關於引數theta的loss function,backward pass的時候做的

把待測的function代入loss function,或者是決定待測function的引數帶入
終極目標:找到特定引數,使得loss function最小 — 於是用梯度下降

將不同引數的偏微分串在一起,就叫作gradient

這裡寫圖片描述

這裡寫圖片描述

注:梯度是正的—代表x變大,loss變大,現在x就需要向負向移動;梯度是負的反之—所以紅色方向和藍色方向相反。

Tip1: Tuning your learning rate

這裡寫圖片描述

這裡寫圖片描述

adagrad

希望對不同引數,有不同的learning rate

這裡寫圖片描述

每一個learning rate都除以一個σ,即過去所有微分值的root mean square
因為每個引數都有不同的偏微分, 所以除以σ的是不同的, 即每個引數有一個lr

這裡寫圖片描述

η是一個t相關引數
g是梯度
σ就是跟前面所有g相關的引數(引數depend引數)

這裡寫圖片描述

adagrad可以簡化最終公式,約分t的平均項
會越來越慢,因為有time decay

Adam比較穩定

在adagrad裡面有個矛盾點,這裡貌似梯度越大,會使得結果不是很正常的變大

這裡寫圖片描述

原因如下:
直觀解釋是,造成反差

這裡寫圖片描述

真正原因
是因為,對於單引數來說,的確gradient越大,結果距離最低點越大,但是如果多引數情況下,跨引數就不一定了
比如下圖的a與c點比較的話,c比a梯度大,但是距離最低點小

這裡寫圖片描述

best step這是因為,不僅僅與一次微分有關係,還與二次微分有關,且與二次微分成反比—二次微分小的話,update量應該大;否則應該小

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

如果要計算二次微分,過分耗時,adagrad就使用過去的mean來代替二次微分的作用,只用到一次微分,沒有多增加多少計算量

tip2:Stochastic Gradient Descent 隨機梯度下降

用一個example代替所有的example

這裡寫圖片描述

這裡寫圖片描述

tip3: Feature Scaling

對feature做統一的scaling

這裡寫圖片描述

這裡寫圖片描述

如果不做scaling,那在各個方向上的Learing rate很大不同(必須要adaptive的lr),而且不是指著最低點走,需要更多迭代次數才能搞定,沒有那麼有效率

如何做scaling

這裡寫圖片描述

gradient decent 背後的原理

不一定每次更新θ,都會使loss變更小

那麼如何找到每一步的最低點呢(每次更新θ應該如何更新呢)

這裡寫圖片描述

這裡寫圖片描述

多個引數的時候

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

發現這麼理論上推導,得到的就是梯度下降
η與紅圈半徑成比例,也就是說learning rate要足夠小才可以使loss每次都更低,但是實作是不可能的

當然也可以考慮泰勒二次項,比如:牛頓法,但是dl的時候幾乎不用這些方法,因為計算量太大

0x05 Classification: Probabilistic Generative Model

這裡寫圖片描述

通過樣本估測分佈—用於預測

這裡寫圖片描述

這裡的∑就是協方差矩陣

這裡寫圖片描述

分類估計高斯分佈—機率模型,也不一定高斯分佈

模型引數不能太多,多了就容易overfitting
修改模型如下

這裡寫圖片描述

這裡寫圖片描述

如果進行修改,boundary是線性的(因為share了covariance matrix),所以也可稱為 linear model

這裡寫圖片描述

如果選擇簡單的機率模型,引數少的—bias大,variance小;否則反之

樸素貝葉斯

這裡寫圖片描述

如果將每一個樣本的選取都看作是獨立的—協方差矩陣是對角矩陣

這裡寫圖片描述

sigmoid的由來

為什麼2個類∑相等的時候,他們的boundary會是linear

這裡寫圖片描述

可以直接用ml的方法找到W與b的原因!

0x06 Classification: Logistic Regression

不同的w與b集合成為function set,後面P w,b(C1|x)指的是x屬於C1的概率

這裡寫圖片描述

logistic迴歸 VS linear迴歸

sigmoid是在0~1

這裡寫圖片描述

這裡寫圖片描述

目標:要找一組w與b,最大化描述training data的可能性

cross entropy

這裡寫圖片描述

代表兩個distribution有多接近,如果一摸一樣的算出來是0,我們在logistics迴歸就是要找一個分佈與真實分佈差別最小的分佈

為什麼要用cross entropy,因為square error的時候,距離目標很遠loss也很緩慢

這裡寫圖片描述

Generative VS Discriminative

Generative — 用各種分佈來假設,比如高斯分佈
Discriminative — 直接使用logistics,用梯度計算

這裡寫圖片描述

多分類

用softmax分類
其實二分類問題,用logistics做推導,也會得到softmax公式

這裡寫圖片描述

但是logistics的線性特徵,不能分類複雜的情況

這裡寫圖片描述

當然這可以轉到其他維度===>其實這個可以看成層疊的logistics迴歸

這裡寫圖片描述

0x07 Introduction of Deep Learning

全連結網路

這裡寫圖片描述

如果只是網路結構,只是定義了一個function set

這裡寫圖片描述

這裡寫圖片描述

  • 做矩陣運算 — 就可以gpu加速
  • 現在甚至有可學習的network structure
  • 理論上,其實一個hiden layer就可以描述任意一個function

0x08 Backpropagation

鏈式法則

這裡寫圖片描述

forward pass 和 backward pass

這裡寫圖片描述

forward pass

這裡寫圖片描述

backward pass

這裡寫圖片描述

這裡感覺很像放大器

這裡寫圖片描述

這裡寫圖片描述

關於前饋與反饋總結如圖,很好的總結

這裡寫圖片描述

0x09 dl Hello World

  • 不是真正做total loss,而是對一個batch做total loss,將所有batch全部看一遍就是一個epoch,一般都要過幾十個epoch

  • 如果batch size為1,就等效於sgd —> 別人更新引數一次,他已經更新了100次了

  • 但是實際上,batchsize越大,速度越快,因為用了gpu

  • 有兩種test,一種是帶類標的,能算準確率,第二種是predict,不帶類標,直接輸出結果

0x0A tips for dl

如果train出來結果不好,應該

  • 先在training data測試
  • 再在testing data測試

這裡寫圖片描述

  • dropout 為了讓test set變好

有哪些方法呢:

這裡寫圖片描述

梯度彌散問題

  • 靠近input,梯度很小,學習速度很慢
  • 如果前面都不更新,output給後面的,後面更新也沒用
  • sigmoid導致,被壓縮,訊號被衰減

這裡寫圖片描述

  • 可以每個引數不同的learning rate — 類似adagrad
  • 直接改active function — relu

這裡寫圖片描述

  • 整個變成一個更瘦小的linear function
  • 因為output == input,就不會有梯度彌散問題

這裡寫圖片描述

線性?這樣不是又還原了嗎?
事實上,只是小範圍的線性,如果比較大的變化,就不是線性

這裡寫圖片描述

Maxout
可以自己learn到那個activate function

這裡寫圖片描述

這裡寫圖片描述

比relu更強大

這裡寫圖片描述

也不是可以學出所有的activation function,只能是piecewise linear(分段線性),這個取決於多少element

這裡寫圖片描述

但是沒辦法微分,怎麼train?
能夠算引數的變化—> 對loss的變化 —> bp+gd

這裡寫圖片描述

對於不同的train data,每個引數都可能被更新

對於rmsprop與adagrad

這裡寫圖片描述

這裡寫圖片描述

adagrad:將所有gradient的平方加起來
rmsprop:將新的gradient,加上所有舊的gradient平方和

這裡寫圖片描述

L2 —> weight decay

L1

這裡寫圖片描述

L2與L1有一定差別

  • L1是減去(或加上)一個固定的值
  • L2是乘以一個小於1的值,通常是0.99

目的都是為了讓w趨向於0

  • L2對於大引數的懲罰比較強,因為是乘法
  • L1一視同仁

regularization對於神經網路用處沒有那麼大,對於svm很重要
因為initial的時候就很接近於0,那early stop就可以完成了,這麼說regularization就多餘了

dropout

每一次update引數前做 —> 更少的引數update,就會變化更大,也會朝更正確的方向update的更好

這裡寫圖片描述

  • 只在train
  • test的時候weight與train不同

這裡寫圖片描述

dropout類似嚴格的訓練

這裡寫圖片描述

dropout是一種終極版本的ensemble

  • 相當於是每次都train的不同的network,然後融合起來

這裡寫圖片描述

這裡寫圖片描述

1-p% 只在linear才可以

0x0B CNN

FC就好比是圈了很大一塊地(function set),但是範圍大不好找
CNN是FC的一個子集,簡化版

CNN的motivation(引數變少)

1、 通常前幾個hidden layer只是找很簡單的feature,不用看整個image —> 只是看小範圍

2、相同的東西可以出現在圖片的不同位置,比如鳥嘴,但是可以用同一個detector搞出來,可以用同一組引數

3、縮小圖片,還是可以識別

這裡寫圖片描述

這裡寫圖片描述

  • filter的引數是被學出來的

  • 決定到底用多大的卷積核,是依照dataset的構成,如果覺得feature可以被3*3的filter學出來,就用這麼大

  • 為什麼filter可以做模式識別,因為如果跟它本身很契合,那output的值就更大,識別pattern

這裡寫圖片描述

feature map

這裡寫圖片描述

彩色圖片的話,filter是一個立方體

為什麼CNN是FC的一個子集,因為filter相當於只是部分連線了原影象

這裡寫圖片描述

  • 並且引數與FC相比,減少了很多,共用了很多引數

這裡寫圖片描述

max pooling 與 maxout 類似
conv+maxpooling —> 足夠小了,就拉平

通常越靠近output的layer,filter越多

對於high layer,不能直接視覺化,但是可以通過看他什麼時候被啟用

兩種視覺化分析手段

(1)提出每個neuron的視覺化圖,用梯度上升求什麼樣的圖片使neuron最興奮

這裡寫圖片描述

(2)計算每張圖對最後predict分數的影響

這裡寫圖片描述

採用遮擋的方法(相比於上圖中的求微分方法)會更容易實現

這裡寫圖片描述

deep dream

是將cnn看到的東西更誇張化,讓更正的地方更正,更負的地方更負

這裡寫圖片描述

這裡寫圖片描述

分成兩個輸出,照一張圖,從content像左圖,從style像右圖
alpha go,沒有使用max pooling

語音辨識可以把影象,當作image輸入

0x0C Why deep

其實如果deep和不deep的直接比較,是不公平的,因為引數不同 —> 所以需要將deep拉成矮胖的,引數變成一樣多

那為什麼deep好

類似於程式設計模組化,有一些可以重用

比如長髮男生data不多,但是長髮人多,所以basic的feature可以學的很好

deep learning —> 可以用少量的data來做train,跟big data是相反的

只有一層hidden layer就可以擬合所有的函式,但是沒有效率

多層類似剪窗花

這裡寫圖片描述

這裡寫圖片描述

End to End training

不告訴model裡面長什麼樣,完全自己學習

這裡寫圖片描述

不用什麼流水線都要人來定義了

這裡寫圖片描述

0x0D Transfer Learning

如果資料量夠多,儘量 fine-tune 所有層

這裡寫圖片描述

將data不是直接與task相關的,比如老虎VS大象,與貓VS狗,可能沒有足夠的data

source data:量大,但是不直接相關
target data:量小

這裡寫圖片描述

都有label

conservative training 保守訓練

使新舊model儘可能接近 —> 舊的model是新的regularization

這裡寫圖片描述

layer transfer 只train某些層的引數

這裡寫圖片描述

但是應該transfer哪一個?

語音:第一層,後面的可以轉化為差不多
image:前面固定

這裡寫圖片描述

multitask learning

這裡寫圖片描述

progressive neuron networks

將網路A的output也當作另一個網路的input
防止network忘記前一個task

這裡寫圖片描述

如果source有label,target沒有

domain-adversarial traning

gan的一種,將source和target轉到同一個domain
為了讓兩種domain的feature有交集

這裡寫圖片描述

  • 綠色只支援藍色,不支援紅色(每次都在gradient上乘上一個負號)
  • 紅色網路需要掙扎

這裡寫圖片描述

zero-shot learning

如果task都不同

  • 找出比動物更小的單位
  • 用這些特徵作為input

這裡寫圖片描述

這裡寫圖片描述

不僅要f與g越近越好,還要與其他類越遠要好

這裡寫圖片描述

如果沒有k這個margin,machine就會花很多力氣去將不同類的拉遠

0x0E RNN

有記憶力,每一次hidden layer都會存到記憶體,也會被考慮進去

這裡寫圖片描述

input 順序不同,結果也會不一樣

這裡寫圖片描述

語音識別,filling slot的問題如下

這裡寫圖片描述

這裡寫圖片描述

不同種的rnn

這裡寫圖片描述

也可以bidirectional,比如正向讀,然後反向讀
這樣會有更大的視野,資訊會更多

這裡寫圖片描述

會使用sigmoid方法

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

現在做RNN,基本就是LSTM

RNN 的 error surface 很崎嶇,不是很平,就是很陡峭,很容易跑飛,所以用clipping — 大於某個值,就截斷到這個值

LSTM 相對於傳統 RNN,可以解決梯度彌散的問題,但是不能解決梯度爆炸

因為,LSTM是過去的值一直對記憶體產生影響,而不是format,但是RNN是直接format

GRU比LSTM簡單,思想是“舊的不去,新的不來”,如果input gate開啟,forget gate就關閉,這樣就會format

RNN 處理聲音訊號的encoder與decoder:

這裡寫圖片描述

attention-based model

0x0F Semi-supervised learning

semi-supervised learning 通常情況是 unlabelled data 更多,分為2種:
(1)transductive learning,unlabelled data就是testing set(因為沒有label,用feature沒問題)
(2)inductive learning:unlabelled data不是testing set

unlable data的出現,會影響之前的決策

semi-supervised 的 generative model

不斷通過unlabelled data來更新模型

這裡寫圖片描述

核心想法:相當於unlabelled data不是hard屬於c1還是c2,而是看概率

u是mean,∑是co-variance
EM algorithm,step1是E,step2是M

EM演算法:

作者:史興
連結:https://www.zhihu.com/question/27976634/answer/39132183
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

理論:簡版:猜(E-step),反思(M-step),重複;囉嗦版:你知道一些東西(觀察的到的資料), 你不知道一些東西(觀察不到的),你很好奇,想知道點那些不瞭解的東西。怎麼辦呢,你就根據一些假設(parameter)先猜(E-step),把那些不知道的東西都猜出來,假裝你全都知道了; 然後有了這些猜出來的資料,你反思一下,更新一下你的假設(parameter), 讓你觀察到的資料更加可能(Maximize likelihood; M-stemp); 然後再猜,在反思,最後,你就得到了一個可以解釋整個資料的假設了。1. 注意,你猜的時候,要儘可能的猜遍所有情況,然後求期望(Expected);就是你不能僅僅猜一個個例,而是要猜出來整個宇宙;2. 為什麼要猜,因為反思的時候,知道全部的東西比較好。(就是P(X,Z)要比P(X)好優化一些。Z是hidden states)3. 最後你得到什麼了?你得到了一個可以解釋資料的假設,可能有好多假設都能解釋資料,可能別的假設更好。不過沒關係,有總比沒有強,知足吧。(你陷入到local minimum了)====實踐:背景:公司有很多領導=[A總,劉總,C總],同時有很多漂亮的女職員=[小甲,小章,小乙]。(請勿對號入座)你迫切的懷疑這些老總跟這些女職員有問題。為了科學的驗證你的猜想,你進行了細緻的觀察。於是,觀察資料:1)A總,小甲,小乙一起出門了;2)劉總,小甲,小章一起出門了;3)劉總,小章,小乙一起出門了;4)C總,小乙一起出門了;收集到了資料,你開始了神祕的EM計算:初始化,你覺得三個老總一樣帥,一樣有錢,三個美女一樣漂亮,每個人都可能跟每個人有關係。所以,每個老總跟每個女職員“有問題”的概率都是1/3;這樣,(E step)1) A總跟小甲出去過了 1/2 * 1/3 = 1/6 次,跟小乙也出去了1/6次;(所謂的fractional count)2)劉總跟小甲,小章也都出去了1/6次3)劉總跟小乙,小章又出去了1/6次4)C總跟小乙出去了1/3次總計,A總跟小甲出去了1/6次,跟小乙也出去了1/6次 ; 劉總跟小甲,小乙出去了1/6次,跟小章出去了1/3次;C總跟小章出去了1/3次;你開始跟新你的八卦了(M step), A總跟小甲,小乙有問題的概率都是1/6 / (1/6 + 1/6) = 1/2; 劉總跟小甲,小乙有問題的概率是1/6 / (1/6+1/6+1/6+1/6) = 1/4; 跟小章有問題的概率是(1/6+1/6)/(1/6 * 4) = 1/2;C總跟小乙有問題的概率是 1。然後,你有開始根據最新的概率計算了;(E-step)1)A總跟小甲出去了 1/2 * 1/2 = 1/4 次,跟小乙也出去 1/4 次;2)劉總跟小甲出去了1/2 * 1/4 = 1/12 次, 跟小章出去了 1/2 * 1/2 = 1/4 次;3)劉總跟小乙出去了1/2 * 1/4 = 1/12 次, 跟小章又出去了 1/2 * 1/2 = 1/4 次;4)C總跟小乙出去了1次;重新反思你的八卦(M-step):A總跟小甲,小乙有問題的概率都是1/4/ (1/4 + 1/4) = 1/2; B總跟小甲,小乙是 1/12 / (1/12 + 1/4 + 1/4 + 1/12) = 1/8 ; 跟小章是 3/4 ;C總跟小乙的概率是1。你繼續計算,反思,總之,最後,你得到了真相!(馬總表示我早就知道真相了)你知道了這些老總的真相,可以開始學習機器翻譯了。

那麼為什麼要這麼做呢,目標是likely hood最大,因為加入了unlabelled data
這裡寫圖片描述

low density separation 非黑即白(class之間有明顯的界限,說白了通過unlabelled data來分界)

self-training

將unlabelled data加入進來,其實Jianming老師那篇文章就是這種思想

這裡寫圖片描述

regretion不能用這招,因為如果是soft label概率不會迭代
類似與generative model方法,只是變成了hard label

那如果用deep learning的方法,到底應該用soft label還是hard label呢?
答:一定要hard,因為soft本來就是算出來的,還是原封不動放進去,就不會有貢獻

這裡寫圖片描述

self-training進階版:entropy-based regularization(假設output很集中)

entropy衡量的是是否集中,越小越好

相關推薦

ML Lecture Notes

一、文章來由 二、《一天搞懂深度學習》 300多頁的PPT 對應的視訊地址 1、Lecture I: Introduction of Deep Learning (1)machine learning≈找函式 training和testing過程 (2)單個

Lecture Notes: Macros

truct ets trie named follow instead event ret which 原論文鏈接失效。特在這裏保存一份 http://www.apl.jhu.edu/~hall/Lisp-Notes/Macros.html Lisp funct

Lecture notes of Mathematical analysis

Lecture notes of Mathematical analysis   Preliminary theory Teaching purpose:          Mathematical analysis is a

NotesML ALGORITHMS of TOA

ML方法是NLS方法的一個推廣版本,具體接著看: Assuming that the error distribution is known, the ML approach maximizes the PDFs of TOA measurements to obtai

Andrew Ng's Coursera Machine Leaning(ML) Notes Week 3

Andrew Ng’s Coursera Machine Leaning(ML) Notes Week2 Author: Yu-Shih Chen December 22, 2018 6:55 PM Intro: 本人目前是在加州上大學的大二生,對人工智慧和資料科學有濃厚的興趣所以在

Andrew Ng's Coursera Machine Leaning(ML) Notes Week 2

Andrew Ng’s Coursera Machine Leaning(ML) Notes Week2 Author: Yu-Shih Chen December 20, 2018 1:10AM Intro: 本人目前是在加州上大學的大二生,對人工智慧和資料科學有濃厚的興趣所以在上

Andrew Ng's Coursera Machine Leaning(ML) Notes Week1

Andrew Ng’s Coursera Machine Leaning(ML) Course Notes Week1 Author: Yu-Shih Chen December 20, 2018 12:50AM Intro: 本人目前是在加州上大學的大二生,對人工智慧和資料科學有濃

Andrew Ng's Coursera Machine Leaning(ML) Notes Week 4

Andrew Ng’s Coursera Machine Leaning(ML) Notes Week 4 Author: Yu-Shih Chen December 22, 2018 6:55 PM Intro: 本人目前是在加州上大學的大二生,對人工智慧和資料科學有濃厚的興趣所以

100-Days-Of-ML-Code day1-day6 notes

X = dataset.iloc[ : , :-1].values # 取所有行的從一列到最後一列 Y = dataset.iloc[ : , 3].values # 取所有行的第列   OneHotEncoder:直觀來說就是有多少個狀態就有多少位元,而且只有一個位元為1,其

【臺大李巨集毅ML課程】Lecture 13 Unsupervised Learning——Linear Dimension Reduction筆記

本節課主要講了兩種線性降維的方法——cluster和PCA,並從兩個角度解釋了PCA。最後講了一些關於矩陣分解的知識。 1.cluster cluster就簡單的帶過了,主要是k-means和HAC k-means原理: (1)先初始化k箇中心點ci

linux commands notes

kill lsof 完整 mtr sta hctosys ipo lastb .sh fsck -y mtr IP cat/tac runlevel/tty eject /eject -t 開/關 mount -o loop *.iso /mnt --bind /roo

前端面試題(來自前端網http://www.qdfuns.com/notes/23515/c9163ddd620baac5dd23141d41982bb8.html)

設置 session hat eval 減少 還需要 height 狀態碼 一次 HTML&CSS 1. 常用那幾種瀏覽器測試?有哪些內核(Layout Engine)? (Q1)瀏覽器:IE,Chrome,FireFox,Safari,Opera。 (Q2)內核

前端面試題二(來自前端網http://www.qdfuns.com/notes/23515/fa8b1e788ac39b04108fc33e5b543c4a.html)

scrip border cal 搜索引擎 val 媒體 分配 error 不刷新 HTML&CSS 1.請描述一下 cookies,sessionStorage 和 localStorage 的區別? cookie是網站為了標示用戶身份而儲存在用戶本地終端(Cl

Yasm 1.3.0 Release Notes

seh st3 require sys storage uil ble ear welcom Yasm 1.3.0 Release Notes http://yasm.tortall.net/releases/Release1.3.0.html Target Audie

spark mllib和ml類裏面的區別

回歸 ati pam return lec ref nsf 有變 onf mllib是老的api,裏面的模型都是基於RDD的,模型使用的時候api也是有變化的(model這裏是naiveBayes), (1:在模型訓練的時候是naiveBayes.run(data

Linux Study Notes

linux 查看 inux not 顯示 ges logs cnblogs 目錄 #pwd 查看目錄 #ls 顯示目錄 Linux Study Notes

Notes目錄】

regress james not http pen .com amp statistic cal A. 統計 1. 《An Introduction to Statistical Learning》作者: Gareth James / Daniela Witten

Springbatch Miscellanea Notes

spring span truct ask 方式 cnblogs con -a pri 1.scope="step",如下圖,這是一種後綁定的方式,生成Step的時候,才去創建bean <bean id="testTasklet" parent="baseTaskl

Core ML 機器學習

arpa pypi 循環 -type 自然 ror fat 操作系統 pick 在WWDC 2017開發者大會上,蘋果宣布了一系列新的面向開發者的機器學習 API,包括面部識別的視覺 API、自然語言處理 API,這些 API 集成了蘋果所謂的 Core ML 框架。Cor

機器學習基石筆記-Lecture 10 Logistic regression

pan wiki app 方向 resource 註意 實現 comment sce soft binary classification的概念:軟二分類,不直接化為-1、1,而是給出一個概率值。 目標函數是一個概率值,但是拿到的data中y只有0、1(或者-1、1),可以