越來越多的群體智能演算法(蛙跳演算法、貓群演算法、蟑螂演算法等等)有存在的必要嗎?

除去進化演算法(遺傳演算法、差分進化演算法等)系列、人工神經網路系列之外,群體智能演算法作為一類演算法近年越來越多。較為經典的粒子群、蟻群、人工魚群、文化演算法,到最近幾年比較新的混合蛙跳演算法、貓群演算法、蟑螂演算法等等。很多只是改變了一下個體的尋優方式(如蟑螂演算法),或者混合了某些演算法的特徵(貓群很像是遺傳演算法和粒子群演算法的簡化版混合)。

這些新演算法有存在必要嗎?

創新到什麼程度能算是創立了一種被人認可的新演算法,而不是對原有演算法的改進?

求小夥伴們幫忙修改添加話題,幫邀專業大神,謝謝~


可以隨便忽悠funding的領域真的是可怕. .

那種弄個詭異的公式/方法, 拿一些數據在上面跑一跑, 一個定理都不證明就能發paper真是爽翻了啊.

Kenneth S?rensen就寫了一篇文章來攻擊這個領域. Metaheuristics - the Metaphor Exposed http://antor.ua.ac.be/system/files/mme.pdf

其中特別攻擊了 @Tiger David 的"有良知的人"的所謂的"Novelty".


完全同意 @Chao Xu 同學的觀點.

看到這樣的問題真是五味雜陳.

我敢說我開始是做進化演算法的么?

不能說沒用, random search, 有時候挺有用的.

但是這一塊可以說是人工智慧中最水的一塊了, 已經被編排出花了.

主要是出去拿funding特別容易, 外行一聽名字, 太拉風了, 人工智慧和生物的結合, 批~

發文章也容易, 因為是random search, 不需要 也沒辦法有任何數學基礎/模型/證明, 隨便一小改, 加點隱形的針對問題的heuristic, 弄個performance improvement就是一篇文章啊.

市場經濟的優越性就此體現, 有需就有供.

慢慢的, 就形成了一個自給自足, 互相cite, 聯合忽悠的圈子.

但是我能說人工智慧, 哪至計算機專業對這塊多少有些鄙視么?

我和其他方向的老師關係一直挺好(本科就是他們手下的學生).

我讀了這個之後, 他們一直問"這個到底有什麼意義, 我一直想不明白, 你給我解釋一下".

人品好啊, 不敢直接說"這就是個忽悠".

ps. 我後來改方向了. 之後發現, 就我這140的智商, 想做出點有用的東西太難了.

我認為這個智商屬於"理解性智商". 就是你給我啥, 給我點時間, 我都能整明白, 都能用順溜.

但是在如此複雜程度上改進創新, 真是赤裸裸的智商不夠啊. 有時真懷念進化演算法的好混.

最後為畢業還是水了. 在新領域做了這種換湯不換藥的水文...

我現在的體會是, 大部分的所謂科研, 其實是讓大學教師保持知識的新鮮度.

對教書育人沒有興趣的人, 要想實現人生價值, 還是去工業界.

那啥, 要問突破性的演算法, 最近的restricted boltzmann machine算一個:)


創新的程度跟新意無關,只跟療效有關。關鍵是這個領域現在對療效的評判有問題。

光說單目標靜態無約束連續優化問題常用的benchmark少說就有三四十種。發文章的時候,一般寫上在十來個函數上的對比結果審稿人也就會認為實驗是比較充分的了(我就不說見到過大量只比較三四個函數就說性能優異的文章了)。最重要的是,一般的文章比較的時候通常不會跟最好的演算法比,而是跟自己改進的演算法比,(例如我要寫一篇文章提出一種改進的PSO,那麼就只需要跟PSO比,統計上顯著比它好就行)。

這個領域的審稿人是我見過最單純善良的審稿人。他們覺得,既然大家的演算法是從自然啟發而來,那麼相互之間當然也會有可借鑒之處,值得發表。他們覺得,現有演算法儘管還不成熟,但只要逐步改進,難保不會大器晚成改變世界,值得發表。他們覺得,既然沒有免費的午餐,那麼這個演算法說不定總有一天會找到合適的問題發光發熱,值得發表。

所以你問到的實際上不是這些演算法的問題,而是這個領域的定位問題。

我的觀點非常實用主義:如果一個演算法可以在某類問題上(包括各種應用以及benchmark)的效果達到最好,那麼無論它思想多麼簡樸,改進多麼平凡,都是很有價值的工作。

跑benchmark可以,但要跟最好的比,如果你的演算法性能全面地、統計地好於最好的進化演算法(比方說CMA-ES),那麼就是好演算法。做其他應用也可以,但要跟最好的比,如果效果好於其他進化演算法,並且比針對這個應用的其他所有方法都好,那麼也是好演算法。

這個期望現在看或許很高,將來看或許很低,但是希望能與大家共勉。

最後說幾句題外話,我倒不覺得理論是這個領域最迫切需要的。現在這年頭每篇文章沒幾個希臘字母的公式定理都不好意思見人,但是這些定理多是想出演算法之後拼湊的平凡結論,沒有多少真正指導了演算法的設計和應用。如果有人確實分析清了某一類問題的結構或分布(也就是吃到了免費午餐),那麼對他來說提出針對這一類問題的最優演算法也不在話下,所以這個工作的價值最終還是落實到演算法性能上面。要我說,Nothing is more theoritical than a good algorithm.


如果你單純指的是 Evolutionary algorithm / Meta-heuristic 我的觀點是,有,但不是非常有價值。

在 @Chao Xu 下面評論寫得蠻長的,單獨拿出來好了。

----

Me: 我記得 Simulated Annealing / Genetic Algorithm 之類的 meta-heuristic 是有一定理論基礎證明 convergence 的。文章有點長沒時間仔細看完,但裡面有提到這些的理論基礎,敢問作者是怎麼評論它們的?

@Chao Xu 第六頁和第七頁. 文章里作者肯定這些存在的非常restricted的theoretical result. 但是作者認為1990年以後就沒有什麼有意義的東西了, 就連那些theoretical result也並不是很有用.

----

不記得 theory 能給出的 result 有多強,但印象中應該不是 PRAS (polynomial-time randomized approximation scheme),所以老實說的確是沒有很強的保證,不好好調參數效果也許還不如一個 log(n) 的 approximation algorithm。

其實用來用去人們似乎用得最多的還是最老的 Simulated annealing,其他新發明的只是 yet another (meta) heuristic,框架是差不多的: random search in a large (probably infinite solution space) and iteratively improve, hopefully find a good enough solution。他們跟普通搜索方法的最重要區別在於,都有一定的機制跳出 local optima。

Key insight:

  1. 適用於一些複雜、困難得甚至沒有有效 heuristic 的問題
  2. 真正有效的應用,需要精心設計的 solution space:如何採取更有效、簡潔、快速 evaluate cost function 以及搜索 neighbor 的 representation / encoding,以及針對不同 instance 的參數調優。

&> 創新到什麼程度能算是創立了一種被人認可的新演算法,而不是對原有演算法的改進?

比起原來的結果有 significant improvement。理論層面,比如從 log n -&> 4/3 n 的 provable 的近似。實驗上,比如從原來能做到的 80% -&> 90% 的準確率,更嚴謹的可使用一些統計技術來評價。


作為曾經在該領域撲騰過也發過文章的半罐水(boss也是該領域的名人了),部分同意@Tiger David 的微創新的說法,例如進化演算法系列其實就是在一系列微創新基礎上最終搭成的一個framework,不過如果陷入這種純粹heuristic的演算法的微創新,那可能就有問題了:很可能陷入為創新而創新的誤區,而這種heuristic的東西簡直就是隨便你發明,要多少有多少,最終調調參數總能讓你的模擬或者benchmark的結果滿足要求。

借用兩句名言來總結下該領域,第一句是:Essentially,all models are wrong, but some are useful -- George E. P. Box,第二句是:no free lunch theorem,簡單說就是平均意義下這些優化演算法都並不比純隨機搜索更好。這兩句話其實說的是同一個事情,no free lunch要從反方向來理解:那就是對於具有某種結構的問題總有相應的更好的演算法來實現,例如凸函數就可以用牛頓法快速求解。所以說,無論是傳統的operation research的演算法,還是這種heuristic演算法,都需要回答的問題是:Why this algorithm is more effective in this class of problem? 或者換句話 What assumptions should be satisfied to make it more effective? 退一步講,heuristic演算法在理論上要回答這個問題並有相應的定理證明可能很難,但也至少有定性分析make sense吧。因此,要解決什麼樣的問題才是關鍵,而陷入到方法的創新就走入歧途了。

最後, @Chao Xu 鏈接那篇文章非常好(我沒全文閱讀,快速看了下摘要結論),不僅僅是critism也提出了相應的建設性意見,如果你是做這方面研究的值得仔細看看。


當然有存在的必要,不然你讓我們搞計算機研究的拿什麼申請基金啊。。。

(看點贊的人多再具體回答這個問題)

------------------------------

有三十二個人關注此問題,壓力好大。。。三腳貓的功夫不知道說出來的話能不能服眾呢。。。

先說明一下,我的研究方向是模式識別與計算機視覺那塊得;問題里的那些演算法,其實我並不是特別了解。。。

。。。

。。。

。。。

各位先別掀桌,畢竟問的是這些演算法有沒有必要性嘛~如果你要我寫一篇介紹這些演算法的科普文,那麼上Google搜索關鍵詞加"survey"或者"introduction"就能出來一堆東西了,而且人家說的肯定比我好:什麼某某演算法用在某地方有奇效,某某演算法其實很垃圾,某某理論是人類的未來,宇宙的良心,某某領域下的所有知識都來源於韓國的私密達。。。

如果你逼我回答這些東西,把我摺疊掉吧,現在整paper寫這種survey都要吐血了,我才不會在工作划水的時候還干這類苦逼事兒呢。。。

不過問題說的這兩點,的確是好問題,也基本上和「騰訊出新產品算不算創新」差不多類型的疑問。在這一點上,我還是能夠說幾句得。

-----------------------------------------------------------------------------

樓主的問題主要是搞這麼多盡整沒用東西的必要性,首先我說一個大家都能夠接受的理由(前面回答一個問題被人踩了那麼多次想想就心痛。。。):一個演算法,或者一個概念,在提出來的時候,其實經常是不成熟的。概念雖然新穎,但就像剛出生的小鳥一樣,十分脆弱,有時候還不見得會比現有演算法要好;所以需要慢慢培養,挖掘裡面的潛能,確定這個新的理論能夠適用在什麼地方,不能用在什麼地方,優劣點,能不能和其他演算法合併起來弄成一個新的更牛逼的貨,等等等等。

等這些活都幹完了,一個完整的理論才能算最終完成。我們看大學教科書里那些看起來很牛逼的理論體系,也都是這樣一點點堆出來得。

不要覺得這些微創新讓人不齒,俗話說一口吃不成胖子,羅馬不是一天建成得,Linux不是一個人寫出來得。你說的這些新演算法,其實都成為了一個更大理論體系的基石。後人在我們前人研究的基礎上,不斷的往上構築新的東西,總有一天,那個最終問題會有被攻破的可能。如果你要求一個科學家,在最開始的時候就開發出一套完整的framework,那不但不切實際,也沒有必要,效果也不見得好。

那麼一般科學是怎麼發展得呢?像問題里說到的這些演算法,一般會經歷同行比較,容易實現且效果比較好的演算法,就會被更多的論文引用到,也會被更多的人所熟知。更多的人研究某個特定演算法後,整個演算法體系也會變得更加完整。在經過一段時間後,量變引起質變,你就可以稱之為全新的新理論了,研究者在這個理論里發現了新的問題,想到了幾個相應的解決辦法,以此類推下去。而其他的那些競爭者,在漸漸的無人問津後,也就慢慢得埋沒於論文之海里了。

-------------------------------------------------------------------

第二個理由,也就是最開始提到得,我們這些搞研究的人就是靠這些微創新吃飯得啊~~我之前在另外一個問題里說過,博士讀的這幾年,就是挖坑的過程;挖了三四年,挖的方向不對,博士畢業就會出問題;我把搞研究比喻成挖礦的另外一個原因就是,搞課題和挖鑽石黃金一樣,一個課題其實不是挖不完得;當一個問題得出了最優解之後,也就是這個課題死亡的時候了。

這點上我想引用一下Bleach漫畫里的內容,你們感受一下:

「完美」就是沒有再進一步,也沒有「創造」的空間。這代表著智慧與才能都將無用武之地了。

這是第306話的內容,那會兒我還在讀本科,你們能夠想到我讀到這一段後有多麼「culture shock"嘛。。。

搞科研最怕的一件事情,就是自己當前搞的領域,已經得到最優解了。別人已經發現了真理,大家用那個就能得到最好的結果,那還要我們其他人幹什麼。。。

所以挺矛盾得吧,搞科研一方面要不斷搞新花樣出來,同時又要擔心某個蛇精兵真的弄出完美結果來,搞得大家都不開心。。。

這時候,微創新就派上用場了。

今天你改進演算法里的一個缺陷,明天我幫你relax一個constraint,後天我把這個演算法用在新的領域上,大家都能夠發表paper,所有人都能夠皆大歡喜。

這樣的話雖然科研進度有點慢,但好歹大家都有活路了,申請科研基金有底氣了,我們也可以繼續參加會議吃喝玩樂去了,吼吼!

然後有一群有良知的人就看不下去了,發明了一個讓人深惡痛絕的單詞:「Novelty」。意思就是你丫得要是想水論文我就拿這個把你拒掉!這群有良知的人一般都在頂級會議里,所以這也是那些會議投起來都那麼難的原因,誒。。。

--------------------------作補充的分割線--------------------------------

2014年4月30日更新:因為一直有答題後點取消關注的習慣,所以後面大家的回答我都沒見到,直到 有人 @ 我後才發現,貌似裡面的內容造成了一些誤會(以及這個回答被人踩了那麼多,看著就讓人心痛,大家都太認真了我去。。。),在此說明:

我最後寫的那塊所謂」微創新「的話,其實我是一種調侃的意味,說的一些三觀不正的話。現在看來,絕對造成誤會了,以為計算機領域就是這麼水旺旺的狀態。。。

現在我就認真回答了,如果就是改參數這類contribution級別,絕對不會登入大雅之堂得。事實情況下,越是高級會議,越追求novelty,也就是論文contribution的創新程度。如果只是水workshop之類,當然你想隨便怎麼水都成,畢竟有好多workshop都沒多少人投,要是再挑三撿四的話這會議也不用開了。。。

但像我這裡的CVPR之流,中稿率只有20%左右。要是那些改參數的論文也能中的話,那只有一種可能:

一定是chair的小三投的稿子!

除了這種情況,我想不出像CVPR這種三個feedback為accept最後都能被拒的會議,novelty被定為trivial的文章會中的可能性。。。

恩,所以 @Chao Xu說的事情,計算機領域這裡,高級會議是不可能中得:改參數就不用說了,有時候改演算法如果改得不夠多都不行,什麼」XX演算法在新領域的運用「之類的文章肯定會被reviewer罵得連他媽媽都不認識。。。就我所知道的情況,改演算法最後能夠中,唯一的可能性就是原演算法太爛,而某傢伙化腐朽為神奇得把那個演算法給救活了,而且還比同類的其他演算法結果還要好,才有中稿的可能。。。

而且還要考慮演算法是否解釋清楚,motivation是否足夠迫切,實驗做得是否充足,你的導師和我是否是仇人,你組裡的人有沒有在過去十年內拒過我們組的論文,等等等等。。。。反正就20%的中稿率,據了這篇還有一大堆candidate可以選呢。。。

順便一說,上面的這些坑爹理由我都不幸碰過,算是達成」被拒理由「收集成就了,獎盃就放在google scholar的個人主頁上呢,你們慢慢體會一下。。。

所以簡而言之,漫畫插圖後面的內容,描述是需要做補充得:並不是所有的論文都只是修參數之流,也有開創新演算法之流。前者在低等級會議和workshop中常見,後者主要在高級會議中。當然咯,對於整個大領域來說,對於解決領域終極問題來說,這還是一小步中的一小步,也就是我所謂的」微創新「啦~特此說明,修改正文我就不做了,因為懶。。。

以上

最後再吐漕一下double blind機制,媽蛋說是double blind但稍微有點經驗的reviewer一看paper的reference部分就知道是哪個組寫的文章了,這double blind還有啥意義。。。


問題中提到的「群體智能演算法」,嚴格來說只是一種演算法框架,而非針對特定問題的具體演算法。

這些演算法框架的提出,是通過觀察自然,微觀如染色體行為,宏觀如鳥群、魚群、蟻群的生活,而將自然界的客觀規律映射到演算法求解過程中,也是應了「道法自然」四字。

既然是框架性的,自然適用性較為廣泛,也容易上手,什麼問題都能「折騰」兩下;但正因為其太泛化,往往針對性不夠,對有些較為成熟的難問題的求解顯得疲軟。

的確,今天有魚群、明天有蟑螂群、再也會有老鼠群去壞這一鍋粥。糟粕雖有,但這其中向自然、向萬物借來的智慧也是值得去細細品味的。即使只為了灌水發文章、拉經費,也有其合理一面,畢竟「惡是歷史前進的動力」。

具體到設計針對特定問題的演算法,臨陣殺敵時還是應當先了解對手,隨機應變。深入地研究給定問題,將問題結構整合到演算法框架中,且不拘泥於框架,望聞問切一番,方能開出良方。此外,相比於各種粒子群,我們作為上帝最精心設計的作品,也可向自身來借鑒這份智慧:大到國家政策制定,再到社會機構設立,小到公司部門設置,其中智慧都是人類在長期實踐中摸索總結出來的,遠在魚群鳥群之上。

至於如何界定一個新的演算法(框架),則是仁者見仁了。如果是指演算法,那麼任何一個不同的演算法,都可以稱為新的。如果是像遺傳、蟻群、神經網路那樣的演算法框架,則有多方面的因素:適用性很廣,在很多問題上都效果不錯;在某一經典問題上有重大突破;理論簡潔美麗,結果很強,等——這些都決定了框架的接受和傳播程度,是件「眾人拾柴火焰高」的事。

希望有所幫助,歡迎討論。


@Chao Xu@Tiger David

「Kenneth S?rensen就寫了一篇文章來攻擊這個領域. Metaheuristics - the
Metaphor Exposed http://antor.ua.ac.be/system/files/mme.pdf

其中特別攻擊了 @Tiger David 的"有良知的人"的所謂的"Novelty".

上面這句話是錯的,首先 Kenneth 就是metaheuristics 領域的,他並不是去攻擊metaheuristics
這個領域,而是反對領域中亂用metaphor這個現象,所謂愛之深,恨之切。同樣的可以去看看
Zbigniew Michalewicz 的兩篇文章 「The Emperor is Naked: Evolutionary Algorithms for Real-World
Applications」 和 「Quo
Vadis, Evolutionary Computation? On a Growing Gap between Theory and Practice」。這兩篇文章也批評了演化演算法或者群體智能領域的一些現象。

@Tiger David 所說的novelty 是一種 incremental
research,一個人提出演算法,其他人再去慢慢改進和應用。這是無可厚非的,實際上也是通常的做法,新的東西都有弱點,往往不可能完全超越舊的

Kenneth 所反對的是metaphor 隱喻 的濫用和誤用,並舉了兩個例子。第一個是 酒瓶裝新酒 harmony
search,Keneth
認為harmony
search 就是一種(mu
+ 1)的
evolution strategies。一個舊的東西,換個名字,加個隱喻重新發表出來,這種「創新」的確是應該反對的。(當然,這也是演化計算中一個不好的現象,有的人論文沒有讀過幾篇,就隨意的去改參數,加operator,在測試演算法上跑結果,去挑選結果,然後發表。這種現象的確存在,但是也是應該抵制的)。第二個例子是 隱喻的濫用,在一篇演算法流程圖中,全是 colonies,empire,imperialist 等,這將會降低演算法的可讀性和精確性。作者的結論是「renaming existing concepts does
not count as a contribution.」

-----------------------------------------

演化演算法,或者說metaheuristics 是一個即複雜又簡單的領域。簡單是演算法代碼都不長,實現方便,很容易就寫出來,改改參數,有個結果,某些會議也能發表,學生也能畢業。複雜是演化演算法很難分析,演算法的參數對結果影響較大,確定地說明某類演算法最適合某類問題也基本不可能。

對於這些層出不窮的新演算法,容易讓人眼花繚亂。但是對於一個研究者,還是不要被這些表象所迷住。演算法的基礎分析,例如為什麼演算法會適用於某些問題,演算法和問題之間的聯繫;演算法的實際應用等,用演算法去解決實際的問題,而不是在一些benchmark
problems上改來改去。

對於新演算法,作到被人廣為接受,其實非常非常非常難。如果是為了本科或者碩士畢業,從此不在從事演算法研究,那麼得過且過,也就罷了。如果做研究,基本是死路一條。新演算法的推廣非常非常難,有那個演算法推廣能力,不如投身工業界,「不用多久,你就會升職加薪、當上總經理、出任CEO、迎娶白富美、走上人生巔峰」。。。


群體演算法就是換張皮一個演算法

研究起來比較快是一方面

所以這方面的水paper很多很多

但是其中的精華部分還是很有用的

是解決NPHARD問題的手段之一啊


演算法開發要解決實際問題,不然很容易空對空。

就我們領域來講,未必使用多麼高深的演算法,關鍵是怎樣選擇、組織演算法到研究目標上。


我來回答下這個方向,苦逼小碩就是研究這個方向的。正如上面所說的一樣,這個方向的文章相對而言比較的好發,但是由於更新公式比較的簡單,發的人比較的多,所以單目標、單種群基本上已經被窮舉了,也就是說在演算法的結合以及參數的調整上面做文章可能性不是很高了!除非又提出了什麼新的智能演算法,然後將這新的只能演算法與已有的進行結合,所以說每次只要該領域出現了新的智能演算法什麼的,然後就是鋪天蓋地的水文。但是現在的研究者就是聰明,單目標、單種群反正沒什麼可以研究的了,那就搞多目標吧,其實個人感覺多目標就是一個坑,不同的目標函數優化同樣的問題,怎麼權衡哪個目標得到結果比較好呢?雖然提出了使用Perato集合的概念減少了時間複雜度,但是最後的結果還是沒有一個衡量的標準(我的知識有限,據我的了解現在還沒有很好的方法來自動權衡多目標優化的結果,如果有知道的,歡迎補充)。然後再說說多種群,在研究過程中發現單種群概念不新鮮而且也沒什麼改進了,好吧,引入新的概念多種群來吸引大家的目光,這個概念一出,一窩蜂的人開始研究多種群了,各種水文又出來了(多種群在某些方面確實比單種群有優勢,所以開始提出的人確實有貢獻,但是後面的人基本上就是在不同的種群裡面換不同的演算法,貢獻確實很小,我所說的就是多種群的一個方面,當然還有其他的方式,但是大部分都是類似的)。

-------------------------------------------上面說的有點亂了--------------------------------------------------------------------

再說說提出的各種演算法吧,其實這些演算法,特別是群體智能演算法,看多了就發現更新公式基本上都是一樣的,當然啦,有人早就發現了,也發表過類似的文章,將所有智能演算法的更新公式抽象出來一個等式,不管怎麼的群體智能演算法都在這個更新公式的框架裡面的(具體哪篇文章忘掉了,不然給出鏈接,以後看到了再補上,有看到的或者知道的可以補充,但是確實有)。再說說群體智能演算法的理論部分,很多演算法都是沒有理論依據的,群體智能演算法在一般情況下是要能夠在數學上面證明演算法經過無窮代後要保證演算法收斂全局最優,最次的也要能證明收斂到局部最優啊,這個是理想狀態。但是實際情況,很多群體智能演算法都是沒有辦法證明能收斂....這也導致了很多計算機理論派的對這種啟發式的演算法不是很感興趣或者鄙視這些演算法,原因是沒有數學上嚴格的理論依據。

----------------------------------------------------------------我是分割線么??----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

最後說說群體智能演算法有沒有用??如上面所說用處不怎麼大,大部分都是灌水的,呵呵,我也灌了一篇SCI的文章,都覺得有點不好意思,但是為了畢業就不要臉一把了。在某些領域確實是有用的,例如在聚類領域,十大經典演算法裡面有個K-means演算法(不知道的可以去百度),理論什麼的都很充分,不論在學術界還是在工業界都是赫赫有名,但是這傢伙對高維數據聚類確實太敏感了,真的效果不是很好,但是群體智能演算法在一定程度上確實比K-means好很多,雖然群體智能演算法在理論上沒有太多的依據,但是實際應用起來還是有點用的。所以這方面搞搞就行了,國家不應該給太多的經費放上面,搞多了就浪費,不搞吧也怕萬一起來了呢?就像當初的神經網路一樣,領域也遇到了爆冷的時期,但是現在呢?很火吧。人工神經網路的升級版本深度學習火的不行了都.......

就這樣吧,還是匿名吧,以上只是個人觀點,贊不贊同隨便,每個人都有自己的見解,我的比較膚淺....看完了就洗洗睡吧,想搞這個方向就搞搞好了,也不要別人說了什麼就覺得沒搞頭,萬一你把這個方面搞大了呢........


有價值,可以讓那些碩士生博士生以及教授有題材發論文啊 。隨便改一改就可以發一篇文章。

這些演算法對學術界工業界都沒有什麼用。隨機搜索都很相似,搞來搞去就那麼回事。跟據NFL定理,它搞不出花來的,只能針對特定問題優化。於是把各種隨機演算法嫁接一下,然後針對某特定問題(函數優化、圖像分割、聚類分類之類的),做一些猥瑣的優化策略(因為已知問題的最優解,直接想方設法往那個最優解奔),調一調參數(不調參數結果哪裡會好?不同的實驗數據要調不同的參數),跑一些實驗結果,得到一個看起來很好的結論(收斂速度更快、精度更高之類),就可以發論文了。這種沒有數學證明,純吹實驗結果的做法,在學術界是偷懶的做法。而且很多實驗結果都是假的,無法驗證。很多論文,附的源碼跑出來的結果,和論文跟本就不是一回事。這些論文我都不想看第二遍。

但是我仍然很感謝這些新概念演算法,讓我順利地就拿到了碩士學位

其實任何行業都是一樣的,高價值的東西總是只佔很少的比例。在這個金字塔結構中,每年幾萬篇論文才有那麼幾十篇值得一讀,幾十篇中也只有一兩篇是精華。所以要看最頂級的會議論文,那裡面好文章的概率大一點。


領域相關人士簡單說一下吧。

首先,各種x群演算法我本人也是相當反感,但這種改個參數就自稱新演算法的往往是三區以下的文章,而且要麼是沒公開源代碼,作者自說自話,要麼就是做了幾個特例測試函數,毫無說服力,這種paper給領域招黑,應該打壓。

實際上像moead,nsga系列這種開創性的進化演算法,並且在工程以及理論領域應用較多的實在不多。近些年tlbo算一個。

而且很多演算法都存在演算法擬合問題的情況,即演算法缺乏通用性,現在千奇百怪的測試函數集很多,大家都只挑自己演算法表現好的來測試。比如cec2009的uf和cf系列,這個測試集很有挑戰性,但是在這個測試集表現好的函數在其他測試集表現如何呢?我個人在傳統zdt和dtlz測試集測試了moead等cec2009參賽演算法,在同樣在同樣參數下,結果相當難看。也就是說,參數對這類演算法影響很大。但是同樣對應一種類型的問題有一個合適的參數就夠了,而不是每個問題想得到好的結果都要去調參,這樣的演算法才稱得上是合格的進化演算法。

遺憾的是,近些年許多進化類演算法對著某組問題測來測去,一直去擬合參數得到更好的競賽結果,而忽略了進化演算法的通用性,這是進化演算法領域發展最值得詬病的一點。

不過,在進化演算法領域的頂刊ieee trans上,不得不說高品質的文章還是很多的,那裡的文章基本對問題測試的就比較全,對演算法討論也較深,同時創新點也非一般得調參擬合,但即使這樣,裡面依然也有題主說的水文。

另,進化演算法是缺乏理論上的收斂性證明的,儘管很多問題它看上去的確收斂。

===

稍微更新兩句吧。

我最近在寫一篇進化演算法的SCI,用了三組測試集來對比,同時審稿人要求多種評判指標,pareto compliant與non pareto compliant,以及不同的排序方式。因為算是提了一個簡單的機制,所以我選擇了將近30個二維三維測試問題來測試,暫不考慮三維以上。

現在進化演算法想發文章單單用igd或者gd來評價結果已經不行了,也是十分不充分的。一組測試集也直接會reject,各大期刊逐漸要求公開源代碼或者有完整可復現的偽代碼。

最新的文章好多都在wfg和DTLZ上測到了15維甚至更高,我感覺有些跑偏了,如果優化問題到了這個複雜程度,不如去想想怎麼先縮減維度,畢竟15維優化出來的結果根本沒啥指導工程意義。

我覺得,進化演算法目前應該注重如何在最大限度降低演算法複雜度的情況下,提升演算法的性能,以及三維以上的優化問題的可視化和解讀上。

並且,通過實驗驗證來證明優化的可靠性是急需的,而不是陷入鑽純理論和對比數據堆砌的牛角尖。畢竟進化演算法在工程應用領域應該是大有可為的。

應該是的。


感覺就一個,瞎雞巴搞。每次數學建模題的時候實在沒有思路就生搬硬套,各種智能演算法就上了,最後模擬出一個四不像的值,真是日了狗了。。。真不知道這些演算法到底有什麼卵用。。。


不做這個領域,但有幫同學寫過一點群體智能演算法(螢火蟲演算法)。個人感覺,這類演算法思想都差不多,重在調參,經驗性濃重,屬於實驗流,數學理論有時說不清。但話又說回來,誰也不知道以後會有什麼突破,或許像神經網路,發展發展到了deep learning。


令人呵呵的突破。


自神經網路和遺傳演算法的興盛發展之後,各種與生物思想相關的演算法層出不窮,如蟻群演算法、魚群演算法、蜂群演算法、蛙跳演算法、蜘蛛演算法,等等。

從小在縣城長大的二狗子雖然只有小學三年級的教育背景,但從小就對計算機科學有著濃厚的興趣,尤其是演算法方面,並一直堅持自學和鑽研最前沿的理論。在一個月黑風高的夜晚,二狗子在建築工地的廚房觀察到蟑螂覓食行蹤的規律,由此受到啟發,提出了一套全新的具有自適應、自學習、自組織能力的人工智慧優化演算法,即蟑螂演算法,並在相關專業的核心期刊上發表了論文,他也由此成為了一位受人尊敬的學者。

當然,二狗子絕不會滿足於現有的成就,他堅信,對科學的鑽研是永無止盡的。後續系列之蠅蛆演算法、蛤蟆演算法、跳蚤演算法、王八演算法、大閘蟹演算法,敬請期待。


群演算法相比於普通的演算法來說,更加的暴力,傳統的演算法更多的是通過一些趨勢來進行預測,擬合,最終猜測出最優解,群演算法完全是通過多個初始值,然後進行並行計算,算出局部最優解,然後進行比較,感覺是比較無賴的方法,但是感覺的確可行,這算是完全寄生在計算機上的演算法吧。


個人拙見


同意微創新的說法,但水的還是太多。數學基礎不夠,調參數來湊。


理論上說是數學工具的具體體現,是針對具體生產實踐問題提出的求解思路,但是想要檢驗演算法很難,主要存在以下兩點:

1、實際數據樣本很難完整,往往取樣指標和演算法變數不一致,一般屬於跨學科的問題,也是因為這樣比較好申請項目發文章。

2、檢驗演算法的指標不唯一,如何衡量各指標的重要程度完全見仁見智,所以對演算法的評價每個人都不一樣。


對科研的人來講,搞這些是為了生存,很有必要。

對科技的發展來說,啟發式的智能優化演算法只能算沒有辦法的辦法,有一些可供參考的必要而已。

不過話說回來,根據no free lunch理論,智能優化演算法應該也有其存在的價值,可能還未發掘出來罷了。


推薦閱讀:

搞信息安全需要什麼基礎。?
「AVL 旋轉」存在的目的是什麼?儘管有 logN 的時間複雜度,樹的 hierarchy 豈不全亂了?
類似Graphviz的工具是如何實現自動排版的?
《暖暖環遊世界》的衣服搭配評價體系是怎麼樣的?
RSA做密鑰協商(密鑰交換)時,是否可以防範中間人攻擊?

TAG:人工智慧 | 演算法 | 數學 | 搜索演算法 | 演算法設計 |