為什麼我們需要傳統方法?

很多人說我連個neural network就可以訓練了,我為什麼要學傳統方法

今天就來介紹幾篇文章

Gregor K, Lecun Y. Learning fast approximations of sparse coding[C]// International Conference on International Conference on Machine Learning. Omnipress, 2010:399-406.

這篇文章想法就是算一個sparse coding問題

||Ax-b||_2^2+lambda||x||_1

我們常用的演算法ISTA(proximal gradient就是

x_k=shrink(x_{k-1}-
abla f(x_{k-1}))

shrink括弧內就是一個線性變換,理解成FC層

然後shrink函數是 max(|x|-lambda,0)sgn(x) 可以看成兩個帶bias的relu的和就是

relu(x-lambda)+relu(x+lambda)

所以吧lambda,FC拿去學是不是就是一個neural network呢?

所以中心idea 就是,拿出來一個傳統演算法,把幾個要調整的參數拿去學習,就是一個neural network

今年icml還有一篇OPT-Net: optimization method as a layer in neural network[大概標題

想法類似

就是loss function改成kkt條件了

然後文章隨便水了

比如ADMM-Net(NIPS2016

ADMM-Net: A Deep Learning Approach for Compressive Sensing MRI

TNRD 也是 用傳統的pde模型拿去learn

Chen Y, Yu W, Pock T. On learning optimized reaction diffusion processes for effective image restoration[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2015:5261-5269.

其實像flownet這些工作都能看到很多傳統工作的影子[multiscale的計算,然後算feature然後matching的block

然後還有想法就是,具體文章有很多了

類似admm想法

如果要做反問題 Ax+eta -> x

我就用 A^T->denoiser->A連起來去做

還有一個想法就是,有個傳統演算法難做的block就用nn去做一個逼近

去年icml有一篇用這個解歐拉方程去做cg的煙霧模擬

所以只有要有個傳統演算法

就能寫篇deeplearning 文章。。。。

發文章思路很簡單

找一個沒做過的問題-》simulate 一個數據集 -》找一個傳統演算法-》連一個神經網路


推薦閱讀:

【深度學習系列】卷積神經網路CNN原理詳解(一)——基本原理
【最優化】無約束優化方法-阻尼牛頓法
複習:決策樹
基於模糊層次綜合評價法和聚類演算法的多人戰鬥競技類遊戲平衡性分析
譯文:如何為機器學習索引,切片,調整 NumPy 數組

TAG:深度學習DeepLearning | 機器學習 |