算法思維:如何更好地適應不確定性的世界

? ? ? ? ? ? ? ? 什么是算法?

一個廚師告訴你如何做一個菜,你不能按照廚房說法作出菜來,嚴格來說不是算法。

把做菜的每一個步驟展現出來,并標識出份量,每個不會做菜的人按照這個步驟指引,可以做出同樣的菜,這就是算法。


一句話概括:算法無非就是讓人遵循以完成某個目標的一系列步驟。

比如:做煎蛋時需要遵循一些步驟,將每一步展現,并標識出放多少克油、鹽等。可以叫做煎蛋算法。


? ? ? ? ? ? ? ? ? ?現代算法思維原理

谷歌的阿法狗可以說是現代算法的代表。

阿法狗的算法并非基于人類專家所編制的規則,相反,它是基于超過3000萬手專業圍棋棋手的走法,使用機器學習為自己編寫了規則。此外,它還和自己對弈了數百萬局,這個數字比圍棋發明以來全人類下過的圍棋局數還要多。


我們來看下2016年3月阿法狗與李世石的和第二局較量,機器學習的成果得到了充分體現。

第二局第世石下得非常謹慎,雖然阿法狗略為占優,但勝負還仍不可知。突然阿法狗走出了非常令人意外的第37手,可以說是不同尋常的一手。解說員脫口而出:“我想這是一個失誤”。李世石短暫地離開15分鐘后才回來做了回應。

另外一個獲得過歐洲圍棋冠軍的樊麾評論說:“這不像是人類會下的一步棋,我從未見過人類如此下棋。”“這步下得太漂亮了,太漂亮了。”

阿法狗最終贏得了比賽,李世石沒有贏過一局。

了解現代算法思維原理,我們首先了解下人工智能簡史。


? ? ? ? ? ? ? ? ? ? ?人工智能極簡史

了解一個事物最好的方式就是了解它的歷史,了解它產生、發展的脈絡。

我們了解下人工智能極簡史:


圖靈發表《機器能思考嗎?》,為人工智能打下科學基礎。圖靈測試就是圖靈的構想,大家可以自行百度。


經濟學諾貝爾獲得者、有限理性的提出者西蒙與人編寫了第一個符號主義的軟件程序“邏輯理論家”,證明了羅素、懷特海《數學原理》提出的定理。后來又編寫了第一個通用問題求解系統,能應付更廣泛、可用公式表達的問題。


以后開始使用一些不同的方法開發智能系統


一是西蒙依賴邏輯規則。

二是使用統計技術、基于數據推導事件發生的概率。如要識別垃圾郵件,有免費獎金、擺脫債務等關鍵詞郵件的概率會上升。

三是使用神經網絡。受人腦中的神經元活動原理啟發創建的技術。


關注點是更為實用的系統。

專家系統。使用有針對性的知識和規則,手工編寫軟件,被稱為弱人工智能。如IBM的深藍在6局國際象棋比賽中以3.5:2.5擊敗國際象棋大量卡斯帕羅夫。

深藍就是一個以超人類的計算能力為自己王牌的專家系統。

它有幾個局限:

1、擅長受限的、專門的任務。

2、遇到未被明確編寫如何處理的情況時,專家系統會失效。

3、軟件對每一種可能遇到的情況該如何應對都需要手工編程。


人們意識到:不通過機器學習,計算永遠不可能獲得真正的智能。


現在研究重點轉向了有適應能力、能識別嶄新的場景,然后自主推理解決的算法。


互聯網時代大數據集變得容易,機器學習算法的性能隨著數據量的增加臨到提高。


近年機器學習領域大爆發的原因:在深度學習領域,程序員不指定算法的模式,算法會以不同的方式評估訓練數據集,找出真正起作用的模式。


深度學習方法在充分利用海量的現代數據方面更勝一籌。

海量的數據,處理能力和深度學習方法,三者合一,創造出各式各樣的現代奇跡。如診斷疾病的算法。

如上面舉例的谷歌的算法不是基于人家專家編寫的規則,是使用人類駕駛視頻的數據庫進行訓練,基于機器學習技術,汽車擁有了自己駕駛策略。

阿法狗也并非基于人類專家所編制的規則,而是基于超過了3000萬手專業圍棋棋手的走法,使用機器學習自己編寫出的規則。

深度學習系統能獨立地將簡單的概念合并,從數據出發創建抽象的模型。

?

算法系統的結果可歸因為基礎數據、數學邏輯和人們與系統所做的決策和建議交互的方式。

?

換句話說就是一個框架把算法系統解構為三個基礎組件,用于訓練算法的基礎數據,算法本身的邏輯,用戶和算法交互的方式。見下圖:


? ? ? ? ? ? ? ? ? ? ? ?現代算法的作用

在專家系統后,現代算法持續在進步,現代的算法能接受數據,從中學習全新的步驟,自行升級為更為復雜的版本。比如煎蛋食譜變成了具有創造力、思維敏捷的大廚。


就是說機器開始學習了,人賦予機器通過經驗學習的能力(針對某項特定任務,逐步提高自己的性能)成為了發展其他智能的基礎。


一個人如果不學習、不接受新的信息就會落后,同樣,機器如果和人一樣勝任各種工作卻唯獨不會學習,那它很快就會落后。所以,機器學習是人工智能最重要的方面之一了。


機器通過學習,現代算法的能力和應用領域得到擴展,開始將觸手伸到了我們的日常生活,并超越了原先的配角角色,成為代表人類做出決定的自主系統。

比如谷歌的阿法狗通過自我學習的能力,戰勝了人類頂級圍棋高手。特別是在一局37手中走出了一步人類根本不會下的一步棋,是機器自我學習后,按照自己的思維方式走出的一步讓人驚嘆的一步棋。


人們開始擔心,現代算法的這種不可預測性與生俱來,會對人類未來造成威脅。


再舉個例子說明現代說法和過去算法的不同:

過去算法就像是一份食譜,里面的配比和成分都可以達到廚師級別,但它只能做一道菜。

現代算法像一位大廚,只要有足夠的數據,它不能推陳出新。算法越來越像人類思維,由固有的程序基因和數據環境共同培養。


現代算法已經開始影響甚至控制我們的決策和生活,如,推送你有興趣的信息、影響你的閱讀、左右你的購物習慣等。


人們已經感受人們的生活已經深刻的被算法所影響,搜索引擎根據用戶特點篩選搜索結果,購物網站自動彈出符合用戶風格的產品,各大網站知道你的消費習慣為你推薦服務,知道你的消費習慣為你指定個性化消費策略以及優惠活動等等,算法如此智能,我們不知不覺已經被監視和捆綁。

算法還可以對我們的上網痕跡進行記錄分析,可以在相當程度上預測我們的行為,為其所用,在我們享受算法為我們帶來的便利的同時,我們感受到在算法面前的無力。



? ? ? ? ? ? ? ? ? ?預測未來還是適應未來?

算法的深度學習讓人擔憂。

一是電腦表現出只有人才有的創造力讓人不寒而栗。

二是機器越智能,富有變化,也越來越不可預測。


預測是交給科學的定律、公式。比如根據牛頓力學可以算出天體的距離等。


不確定的未來我們是不可預測的,它永遠是隨機的、不確定的,雖然我們總是給出各種預測。


但我們可以選擇在可預測性和可適應性間找到平衡。


可預測性系統,是如果.....那么的程式,只在有限的時間內起作用,無法從錯誤中學習。

?

適應性強的的系統,能從更多的樣本中調校的更優,見到的案例、數據越多,系統的適應性就變得更強。如同算法能從更多的數據中受益,更具備獨特的優勢。


? ? ? ? ? ? ? ? ? ? ? ? ?啟示

現代算法與過去的專家系統相比,更有深度學習能力和適應性的能力,更有廣泛吸收大數據、新信息的能力,更有與人不斷交互再不斷提升的能力。人如果也具備了這種思維才能更好地適應未來不確定、隨機、不可測的世界。


具體說,算法思維就是要具備以下幾點:

1、掌握好可預測性和適應性的平衡。

2、大數據時代,要廣泛吸取信息和新知識。如同算法不斷吸收大數據,找到相關性和事物的連接。

3、具備自我學習、深度學習和終身學習的能力對應機器的深度學習,就是不滿足于專家系統,不囿于現在的知識、學識和見識

4、人機交互是算法不斷進步的源泉同樣我們要和人、知識、社會等多交流、互動,多加強實踐。在連接和互動中迭代自我。

5、遵循一定的邏輯規則,掌握一定的思維框架和思維方式

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容