ML 自学者周刊:第 2 期
刊首語
這里記錄ML自學者群體,每周分享優秀的學習心得與資料。由于微信不允許外部鏈接,需要點擊文末的「閱讀原文」,才能訪問文中的鏈接。
本期內容
目錄
一、學習心得分享
圖像超分辨和圖像高分辨的區別
挖掘模板,輔助對話生成
學習梯度優化算法
二、機器學習解答
為什么SVM不會過擬合
GBDT和XGBOOST的區別有哪些
如何入門NLP,比較茫然
三、資料整理
論文類
工具類
學習心得分享
圖像超分辨和圖像高分辨的區別
圖像超分辨和圖像高分辨之間的區別是:圖像超分辨描述是圖像由小到大的一個變化過程,圖像高分辨是圖像本身較大的一個狀態。對于圖圖像的超分辨任務SR通常使用比較深的卷積神經網絡編碼成較高分辨率的圖像過程,該方向比較難的一個點是SISR單張圖像超分辨在醫學、天文、安防方面有廣泛使用,通常都是插值重構的方案,但是這種方法有一定局限性。
代碼地址:https://github.com/lightningsoon/Residual-Dense-Net-for-Super-Resolution
論文地址:https://arxiv.org/abs/1802.08797
在上面的論文和代碼中是以三個模塊實現超分辨的單張功能,模塊一是密集型殘差網絡RDB、模塊二是局部特征混合LFF、模塊三是LRL局部特征學習。因為卷積神經網絡和圖像中距離像素較遠的關聯關系較弱所以局部特征更能表達深度特征能力。整個RDN主要包括4個部分:隱藏特征提取網絡(SFENet),殘差密集模塊(RDBs),密集特征融合(DFF),和最后的上采樣網絡(UPNet)。
挖掘模板,輔助對話生成
EMNLP2019的一篇文章,對話領域中,訓練語料(通常指的是post-response的語句對形式)較難采集。而無序的語句較容易獲得。利用這些大量無監督語料,來提升機器對話回復的質量,是本文提出新的探索方向。作者將大量無序語句和少量對話語句對相結合,從無序語句中學習對話模板(template),模板涵蓋了語義和語法的信息,作為先驗知識,從而輔助對話response的生成。數據集采用了微博和知乎的語料,模型結構如下所示。
論文名稱:Low-Resource Response Generation with Template Prior
論文地址:https://arxiv.org/abs/1909.11968
學習梯度優化算法
這篇博客是梯度優化算法綜述,附上一些讀后感。
SGD : 每次朝著梯度的反方向進行更新。
Momentum:動能積累,每次更新時候積累 SGD 的更新方向,也就是每次參數更新時,不單單考慮當前的梯度方向,還考慮之前的梯度方向,當然之前的梯度會有一個衰減因子。
Adagrad:自動調節學習率大小,對于頻繁更新的參數,學習率小;對于很少更新的參數,學習率大。怎么判斷參數頻繁更新呢?可以為更新公式設置一個分母:梯度平方累加和的平方根。這樣當分母越大,說明之前該參數越頻繁更新,反之則很少更新。存在問題:當迭代次數多了之后,由于是累加操作,分母越來越大,學習率會變得非常小,模型更新會很慢。
Adadelta:作為 Adagrad 的拓展,是解決學習率消失的問題。在這里不會直接疊加之前所有的梯度平方,而是引入了一個梯度衰退的因子,使得時間久遠的梯度對此刻參數更新的影響會消失。RMSProp 的思想和其類似。
Adam:結合 Momentum 和 Adadelta 兩種優化算法的優點。對梯度的一階矩估計(First Moment Estimation,即梯度的均值)和二階矩估計(Second Moment Estimation,即梯度的未中心化的方差)進行綜合考慮,計算出更新步長。
文章地址:http://ruder.io/optimizing-gradient-descent/
機器學習問答
為什么svm不會過擬合
SVM當然會過擬合,而且過度擬合的能力還非常強。首先我想說說什么叫過度擬合?就是模型學岔路了,把數據中的噪音當做有效的分類標準。
通常越是描述能力強大的模型越容易過度擬合。描述能力強的模型就像聰明人,描述能力弱的如:”一次線性模型“像傻子,如果聰明人要騙人肯定比傻子更能自圓其說對不對?而SVM的其中一個優化目標:最小化||W||,就是抑制它的描述能力,聰明人是吧,只允許你用100個字,能把事情說清楚不?
這就是為什么regularization能夠對抗過度擬合,同時它也在弱化模型的描述能力。但只要能說話就能說謊,就能歪曲事實對不對?別把SVM想得太復雜,你就可以把它當做一個線性分類器,只不過它優化了分類平面與分類數據之間距離。
GBDT和XGBOOST的區別有哪些
傳統GBDT以CART作為基分類器,xgboost還支持線性分類器,這個時候xgboost相當于帶L1和L2正則化項的邏輯斯蒂回歸(分類問題)或者線性回歸(回歸問題)。
傳統GBDT在優化時只用到一階導數信息,xgboost則對代價函數進行了二階泰勒展開,同時用到了一階和二階導數。順便提一下,xgboost工具支持自定義代價函數,只要函數可一階和二階求導。
Xgboost在代價函數里加入了正則項,用于控制模型的復雜度。正則項里包含了樹的葉子節點個數、每個葉子節點上輸出的score的L2模的平方和。從Bias-variance tradeoff角度來講,正則項降低了模型的variance,使學習出來的模型更加簡單,防止過擬合,這也是xgboost優于傳統GBDT的一個特性。
Shrinkage(縮減),相當于學習速率(xgboost中的eta)。xgboost在進行完一次迭代后,會將葉子節點的權重乘上該系數,主要是為了削弱每棵樹的影響,讓后面有更大的學習空間。實際應用中,一般把eta設置得小一點,然后迭代次數設置得大一點。(補充:傳統GBDT的實現也有學習速率)
列抽樣(column subsampling)。xgboost借鑒了隨機森林的做法,支持列抽樣,不僅能降低過擬合,還能減少計算,這也是xgboost異于傳統gbdt的一個特性。
如何入門NLP,比較茫然
先了解什么是詞向量 onehot和 word2vec,然后了解最基礎的文本分類任務,跑下經典的機器學習模型和現在的cnn、rnn分類模型。這些代碼都不多的,用pytorch或者tf實現下挺快的,可以照著代碼敲一遍,有感覺了就離入門近一些了。再然后,看看nlp常見的任務,ner,mrc,nli,等等。對了,推薦直接跟著斯坦福的nlp公開課走一遍吧,很快的。
課程名:CS224d - Deep Learning for Natural Language Processing
課程地址:http://cs224d.stanford.edu
資料整理
論文類
APDrawingGAN:人臉秒變藝術肖像畫
NeurIPS 2019 | 用于弱監督圖像語義分割的新型損失函數
Doc2EDAG:一種針對中文金融事件抽取的端到端文檔級框架
工具類
三行代碼提取PDF表格數據
PyTorch 1.3發布:能在移動端部署
谷歌工程師:Tensorflow2.0 簡單粗暴教程中文版
加入我們
掃描加微信:
驗證信息:「自學」,即可加入ML自學者俱樂部社群。可以投稿每周學習心得或者看到的優質學習資料,助力團體共同學習進步。
參考來源
ML自學者俱樂部投稿
黃博的機器學習圈子
知乎機器學習話題
點擊閱讀上一期內容
總結
以上是生活随笔為你收集整理的ML 自学者周刊:第 2 期的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ML 自学者周刊:第 3 期
- 下一篇: ML 自学者周刊:第 1 期