? ? ? 我首先來講一下我對于人工智能的看法,首先必須要說的是,人工智能是算法不是程序。因為程序只能按照規則來運行,而人工智能可以按照自己的想法來運行。所以人工智能在本質上區別于我們日常生活中的電腦程序。

? ? ? 人工智能的算法剛開始是由程序構建的,但到了后期就并不僅僅是依靠我們所編寫的代碼運行的。而原始的代碼屬于學習代碼。其次,在講到人工智能的時候,就不得不提另外一個概念,那就是深度學習(Deep Learning)。

? ? ? 深度學習主要是從仿生學的角度模擬腦神經系統的層次結構,通過逐層抽象,深度挖掘數據的本質信息。從廣義上講,具有層級結構,低層級代表細節,高層級表示抽象的數據分析模型,都可以稱之為深度學習。深度學習的概念從人工神經網絡而來,因此通常指具有多層結構的神經網絡。深度學習主要包括三種,有監督學習,無監督學習,強化學習,通常有監督學習的應用例如圖像識別、語音識別等,無監督學習包括圖像文本生成、機器作曲等,而強化學習最典型的例子就是前陣子很火的AlphaGo了,一句話總結就是愈戰愈勇。

? ? ? 現在商業界用的最多的還是有監督學習,畢竟這種學習模式有章可循,應用起來也很容易,只要給定樣本和標簽,肯定有辦法比較好的將它們一一映射起來;無監督學習最典型的就是混合高斯分布了,用來集群發現,如用戶群聚類劃分;強化學習一般用于策略類問題,例如打游戲、控制機器人運動等,設定一個獎懲規則,它通過多次嘗試最終表現的越來越好。無論是有監督學習、無監督學習、強化學習,都需要對問題特征分布的擬合,因此理論上都可以與神經網絡掛鉤。因此,只要掌握了各種神經網絡的特點以后,再學習那些不是很困難。在神經網絡的模型架構好了之后,重頭戲就是參數的優化了。

? ? ? 這里最常見的就是梯度下降算法了,因此入門深度學習必須要掌握的就是梯度下降算法。梯度下降算法現在已經出來了很多變形,掌握它們之間的不同也是很有必要的。 梯度下降算法理解個大概也就差不多了,因為具體應用的時候選擇最合適的去應用就行了。當然參數優化,還包括學習率的選取、網絡層數的確定、每層神經元個數的確定、dropout的比例以及各個參數的初始化等等問題,都是需要我們仔細考量的。