一篇文章了解機器學習
最近正在做一個機器學習相關的項目,在這之前自己也沒有接觸過機器學習。可謂邊做邊學,在這里把自己的學習理解記錄下來,同時也希望感興趣的同學可以通過這篇文章對機器學習有一個大致的了解。這篇文章沒有專業的技術語言,旨在讓機器學習之外的人能夠對這門技術有一個初步的認識。
背景
機器學習(Machine Learning)是一門專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能的學科。1959年美國的塞繆爾(Samuel)設計了一個下棋程序,這個程序具有學習能力,它可以在不斷的對弈中改善自己的棋藝。4年后,這個程序戰勝了設計者本人。又過了3年,這個程序戰勝了美國一個保持8年之久的常勝不敗的冠軍。這個程序向人們展示了機器學習的能力。
機器學習的定義
機器學習,顧名思義就是讓機器進行“學習”,這個名字使用了擬人的手法。
但是計算機是死的,怎么可能像人一樣學習呢?
傳統的計算機程序,都是我們輸入一串指令后,它按照這個指令一步步的執行,最終輸出一個明確的結果,具有明確的因果關系。但是機器學習卻完全不一樣,沒有明確的因果關系。它會根據你輸入的數據而不是指令來進行學習和輸出結果,相關而不是因果的概念是機器學習的核心概念。
因此我們說,機器學習是一種讓計算機利用數據而不是指令來進行各種工作的方法。
它是人工智能的核心,是使計算機智能化的根本途徑,其應用遍及人工智能的各個領域,它主要使用歸納、綜合而不是演繹。
基于機器學習的文本分類
文本分析一直是科學研究較為活躍的領域。畢竟創造所有人類知識(文本表示)不是一項輕松的工作。
下面我通過機器學習在文本數據分析方面的應用為例來簡單的闡明具體什么是機器學習。如果你想簡單的了解一下什么是機器學習,那么看完這篇文章就足夠了。如果你想深入了解機器學習和人工智能,就需要多下功夫進行研究和思考了。
文本分析,即是讓計算機對輸入的文本數據進行分析,得到這篇文章的分析結果(如文本分類、正負情緒等)。進行分析的前提是,使用算法對文本數據進行分詞和關鍵詞提取,同時系統建立一個語料庫。流程是,輸入文本數據后,系統對文本數據進行分詞和關鍵詞的提取(關于分詞和關鍵詞提取的原理就不在這里展開說了,后續會抽時間進行分享),得到關鍵詞數據后,與語料庫的數據進行匹配,然后將匹配數據傳輸至分析引擎,得出分析結果。
這是目前行業中最基本的文本分析流程,這個流程本身是沒有任何問題的,但是問題就出在計算機沒有“自我”的意識,不懂得如何根據實際環境等因素進行靈活的變通,所以這樣分析出來的結果可能會出現不準確的情況。舉一個簡單的例子,比如有一句話話“資本主義好?呵呵!”如果直接讓計算機分析的話,也許得出的結果就是歌頌資本主義。但實際的情況卻是批評資本主義??梢钥吹?,在這種特定的環境下的分析判斷,展現出會思考的人類的強大之處。
基于這樣的情況,我們需要引入機器學習的概念。傳統的計算機系統,都是輸入A,得到的答案一定是B。但是通過機器不斷的學習后,同樣輸入A,但是得到的答案可能會是B1B2或者BC。這就是機器學習后帶來的變化,也正是機器學習的魅力所在。
先上一個關于文本分類的機器學習架構圖。
在圖中可以看到,對于分析引擎可以正確識別的將會直接輸出分析結果。對于分析引擎不能正確識別的,將通過人工干預的方式對分析結果進行校正后再將正確結果進行輸出。而機器學習引擎將對所有的這些歷史樣本數據進行存儲。接著,我們將這些數據通過機器學習算法進行處理,這個過程在機器學習中叫做“訓練”,處理的結果可以被我們用來訓練“模型”,當輸入新的數據時,我們即可以通過“模型”對這部分數據進行處理。對新數據的處理過程在機器學習中叫做“預測”?!坝柧殹迸c“預測”是機器學習的兩個過程,“模型”則是過程的中間輸出結果,“訓練”產生“模型”,“模型”指導 “預測”。
下面這張圖就是機器學習的過程與人類歸納經驗的對比:
可見,機器學習中的“訓練”與“預測”過程可以對應到人類的“歸納”和“推測”過程。機器的“模型”通過歷史數據的積累學習具有了對新的問題和具體情境給出判斷的能力,這正如人類通過過往的生活經驗不斷歸納整理得出一定的規律而具有了利用這些知識對新的問題進行判斷能力。通過這樣的對應,我們可以發現,機器學習的思想并不復雜,僅僅是對人類在生活中學習成長的一個模擬。由于機器學習不是基于編程形成的結果,因此它的處理過程不是因果的邏輯,而是通過歸納思想得出的相關性結論。
小結
機器學習即是用某些算法指導計算機利用已知的歷史數據得出適當的模型,并利用此模型對新的情境給出判斷的過程。
以上,為個人理解,愿與大家多多交流!
本文由 @Yonwon?原創發布于人人都是產品經理。未經許可,禁止轉載。
- 目前還沒評論,等你發揮!