3句話告訴你學習的方法論



文章
程序員

摘要算法

3句話告訴你學習的方法論安全

本文統籌人類學習和機器學習的特色,提出了學習的通常化定義:學習是指一個目的系統從數據中提取模型,並用模型進行決策的過程。微信

基於這一學習定義,提出了提高學習效率的3條關鍵方法論,並對其具體使用進行了詳細說明。app

1,用自我提問強化元認知。機器學習

2,用內容輸出優化認知結構。學習

3,用科學推理探究非結構問題。優化


當咱們談論學習時,咱們究竟談論的是什麼呢?職業規劃



教育心理學中認爲,狹義的學習指的是:經過閱讀聽講、思考、研究、實踐等途徑得到知識或技能過程url


而廣義的學習指的是:人和動物在生活過程當中經過經驗而產生的行爲或行爲潛能相對持久的變化。


然而,上述定義沒有深刻歸納「學習」行爲的本質。至少它們不能解釋當下火熱的「機器學習」現象:計算機程序能夠學習駕駛汽車,識別語音圖像,下圍棋打遊戲……


爲了更具備通常性,我對學習這一律念定義以下:學習是指一個目的系統從數據中提取模型,並用模型進行決策的過程。


這個定義中有幾個關鍵詞。第一個是目的系統,第二個是數據,第三個是模型,第四個是決策。


例如以小明學習投籃爲例。小明即一個目的系統,其目的是提升投籃命中率。數據即無數次投籃練習中各類各樣的投籃方式與其對應的投籃結果,對於人類的學習通常能夠稱之爲經驗。模型即小明習得的投籃技能,不一樣投籃位置對應的最適宜投擲力度和方向等。決策即小明根據習得的投籃技能進行下一次投籃方式的選擇。


又例如以AlphaGo學習下圍棋爲例。AlphaGo即一個目的系統,其目的是提升棋局勝率。數據即AlphaGo無數次左右互搏中各類落子方式與其對應的棋局結果。模型即AlphaGo背後的判斷棋局形勢和決定落子位置的機器學習算法。決策即AlphaGo依據訓練後的模型進行下一次落子位置的選擇。


「一個目的系統從數據中提取模型,並用模型進行決策的過程」做爲學習的概念定義,咱們能夠比較天然地引出以下3條學習的核心方法論。


1,用自我提問強化元認知。

2,用內容輸出優化認知結構。

3,用科學推理探究非結構問題。


 一,用自我提問強化元認知


學習的定義中的第一個關鍵詞是目的系統。若是一個系統具備負反饋機制,那麼這個系統就是一個目的系統。所謂負反饋機制,就是不斷地將當前狀態與理想狀態進行對比,並調整當前狀態以縮小兩者差別的機制。


而元認知,正是在學習過程當中扮演了負反饋機制的做用。所謂元認知,就是對自身認知的認知。"元認知"是美國心理學家弗拉維爾在20世紀70年代提出來的。元認知屬於一種反思性的智慧。



元認知一般以自我提問的技術形式發揮做用。如下是爲舉例。


首先是肯定學習目標,例如入門Python。能夠問本身,我學習Python對個人職業規劃有什麼幫助呢?學習Python後主要想用它幹什麼呢?我目前的基礎是否可以學會呢?


而後擬定學習計劃。能夠問本身,能夠去哪裏找到好的Python入門學習資源呢?我應該優先學習哪一個呢?我計劃花費多久的時間去學習它呢?



接着實施學習計劃。在學習過程當中,能夠問本身,當前學習的這部份內容是否掌握了呢?若是沒有掌握,具體哪一個概念或者代碼範例沒有搞懂?可不能夠經過百度搜索或者請教老師同窗把它搞懂?


最後進行學習評價。擬定的學習目標Python入門是否達成?是否作了學習筆記或學習資料整理等留痕工做?若是遺忘了是否能從新經過學習留痕快速拾起?




二,用內容輸出優化認知結構


學習的定義中的第二個,第三個,和第四個關鍵詞分別是數據,模型和決策。數據是輸入,決策是輸出,模型是輸入和輸出之間的轉換路徑。對於人類的學習,決定輸入到輸出之間轉換路徑的是人的認知結構。認知結構的優劣,決定了輸入到輸出的轉換是否合理高效。


美國著名的心理學家布魯納提出了認知結構學習理論。學習的實質是主動地造成認知結構。認知結構是指由過去對外界事物進行感知、歸納或經驗構成的觀念結構。學習者是經過把新得到的知識和已有的認知結構聯繫起來構建其知識體系的。


良好的認知結構一般有兩大特色:一是具備結構清晰的概念體系,二是具備豐富多元可供模仿的表明範例。


概念體系相對抽象,可以確保習得的模型具備必定的泛化能力,防止過擬合。而表明範例很是具體,可以確保習得的模型充分保留一些細節信息,防止欠擬合。


結構清晰的概念體系是一棵"決策樹"模型。根據算法理論,樹模型的搜索效率是很高的,時間複雜度近似爲O(log(n)),n爲樹模型子節點的個數。而結構混亂的概念體系彷彿是一片"決策雲",不一樣的概念子節點之間沒有創建聯繫,根據"決策雲"來決策,其搜索效率很低,只能嘗試遍歷所有子節點,時間複雜度近似爲O(n)。


爲了創建良好的認知結構,有一種特別有效的方法,叫作以教爲學,這實際上是一種用輸出倒逼輸入的學習方法。費曼很是推崇這種學習方法,所以也稱之爲費曼學習法,具體作法以下:  1,先學習某個知識 2,想象本身在向別人教授某個知識 3,教授的不暢、卡住的地方,就停下來,查閱相關資料解決問題 4, 再次重複2-3,直至徹底講清楚。



固然,不可能咱們每一個人爲了學習Python都去編寫一部十萬字的Python教程,或者找來一個Python小白作本身的徒弟直到把他教會。你沒必要走的那麼遠,可是你絕對應該朝着這個方向去努力:


1,你能夠用一張思惟導圖整理出Python裏面基礎的概念體系。一張圖要歸納最核心的所有內容,而且要層次清晰,讓人能很快背下來。


就像這樣:



2,你能夠整理出一份本身的簡短Python教程。確保裏面的每個範例你都寫過代碼而且是徹底理解的。


就像這樣:


3小時Python入門


三,用科學推理探究非結構化問題


學習的定義中第三個和第四個關鍵詞分別是模型和決策。對於機器學習模型,其決策一般只針對特定的一系列類似的問題。而人類認知結構模型,則經常面對一些迥然不一樣的陌生問題。這些看起來不可以直接應用現有認知結構當即進行決策的問題構成了教學心理學範疇中真正的問題。


在教育心理學中,問題被定義爲給定信息和要達到的目標之間存在着某些障礙須要被克服的刺激情境。問題解決是指應用一系列的認知操做,從問題的起始狀態到達目標狀態的過程。問題解決是高級形式的學習活動,它是檢驗認知結構的試金石,是強化認知結構的雕刻刀,同時仍是促進元認知能力提升的催化劑。


從某種程度上說,人類學習的的終極目的就是爲了解決問題。解決問題的能力依賴於認知結構和元認知水平。同時解決問題的訓練促進認知結構的完善和元認知水平的提升。元認知、認知結構和問題解決造成了一個交互影響的方法論三角。


在問題解決的過程當中,元認知的參與是很是重要的。嘗試自問自答如下一些問題很是有幫助:這個問題具體有哪些困難點?有什麼尚未嘗試的方法能夠克服某個困難點?是否能夠把這個問題轉化成熟悉的問題?是否還有相關的資源能夠用來幫助克服困難?這個困難可能的解決途徑是怎麼樣的?爲了解決這個困難我現有的認知結構是否完備?


人類的文明史,從火的發明到宇宙飛船上天,都是一部問題解決史。每一個人在生活中也會遇到各類問題,例如普通的電腦宕機問題、複雜的代碼bug問題、銀行卡餘額不足問題,以及晚上被本身帥得睡不着等問題。全部的這些問題,均可以歸類爲有結構的問題和結構不良的問題。



有結構的問題指的是給定的條件和要達到的目標都很是的清晰,與解決問題相關的知識經驗都很是的明確的問題。或者說,對有結構的問題,解決問題可能用到的操做符是一個有限集。例如,普通的電腦宕機問題就屬於有結構的問題。可用到的操做符包括重啓,按F8進入安全模式還原系統設定,重裝系統,以及更換硬件。有結構的問題的解決一般是相對容易的,只要參照過往解決相似問題的經驗,在可能用到的操做符集合中選定合適的操做符組合成序列並依次做用一般就可以解決問題。


而結構不良的問題每每具備給定的條件和要達到的目標都比較模糊,問題情境不明確,相關的影響因素不穩定,問題自己具備必定的特殊性,通常性知識和過去的經驗不必定適用,可能用到的操做符是一個無窮集合等特色。一些複雜的代碼bug問題、銀行卡餘額不足問題、以及晚上被本身帥的睡不着等生活中遇到的大部分問題都屬於結構不良的問題。


對於結構不良的問題,通常要分3步走去解決問題。第1步是什麼,第2步爲何,第3步怎麼辦。是什麼即理解問題情境,明確當前給定狀態和理想目標狀態,經過對相關要素的梳理儘量將問題朝着結構化的方向去轉換,用簡單的語言把問題關鍵點說清楚,並嘗試經過一些可視化的方法呈現問題。爲何即診斷問題緣由,經過猜測驗證的方式找到產生當前狀態的主要緣由。怎麼辦即尋找解決路徑,在理解問題情境和診斷問題緣由的基礎上,嘗試找到可能的切入點並規劃解決路徑。

在嘗試解決非結構問題的過程當中,結構化技術可視化技術會極大地幫助咱們簡化問題的表現形式,給予咱們諸多啓發。但對於真正困難的問題,起主導做用的每每是一種叫作科學推理的思惟技術。


有些問題是如此的困難,以致於咱們沒法順暢地診斷問題緣由和設計出可行的解決路徑。那麼咱們還能夠作什麼呢?咱們還能夠作的就是猜測,就是假設。並進一步根據這個假設去演繹推論,經過驗證推論來證僞這個假設,或者增長這個假設的可信度。



這種從假設出發切入複雜問題的技術擁有如此巨大的威力,以致於隨處可見其身影。科學家經過理論猜測與實驗檢驗來發現天然規律,數學家經過反證法來證實數學命題,統計學家經過假設檢驗來判別統計觀點,偵探專家經過懷疑與舉證來尋找案件兇手,而程序員們則經過截取可疑代碼單獨運行來排查bug......



Python與算法之美
(Python_Ai_Road)


本文分享自微信公衆號 - Python與算法之美(Python_Ai_Road)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索