機器學習初始
1. 機器學習(Machine learning,ML)
1.1 概念:多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、演算法複雜度等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷地改善自身的性能。
1.2 學科定位:人工智慧(Artificial Intelligence,AI)的核心是使計算機具有智能的根本途徑,其應用遍及人工智慧,它主要使用歸納、綜合而不是演繹。
1.3 定義: 探究和開發一系列演算法來如何使計算機不需要通過外部明顯的指示,而可以自己通過數據來學習、建模,並且利用建好的模型和新的輸入來進行預測的學科。
2. 機器學習中的基礎概念
2.1 資料庫: 資料庫是機器學習的一個重要組成部分。如果想構建一個機器學習系統,可以從公眾資源中得到數據,或者自己收集數據。所有的用於構建和測試機器學習模型的數據集合稱為資料庫。大體上,數據科學家會將數據劃分稱為三個部分:
訓練數據: 訓練數據是用於訓練模型。機器學習模型需要認識並通過學習得到數據的模式,及確定預測過程中最重要的數據特徵。
驗證數據: 驗證數據是為了用於微調模型參數和比較不同模型來確定最優模型。驗證數據應該不同於訓練數據,且不能用於訓練階段。否則模型會出現過擬合現象,且對新數據泛化性不強。
測試數據: 通常是第三個也是最後的測試集(經常也被稱為對抗數據)。一旦最終的模型確定,它就用於測試模型在從未見過的數據集上的表現,這些數據從未在構建模型或確定模型時使用過。
2.2 自然語言處理(natural language processing,nlp):自然語言處理對於許多機器學習方法來說是一個常用的概念,它使得計算機理解並使用人所讀或所寫的語言來執行操作成立可能。
自然語言處理最重要且有用的實例:
①文本分類和排序: 這項任務的目標是對一個文本進行預測標籤(類別)或對列表中相關聯的文本進行排序。它能夠用於過濾垃圾郵件(預測一封電子郵件是否為垃圾郵件),或進行文本內容分類(從網路上篩選出競爭者的文章信息)。
②情感分析: 句子分析是為了確定一個人對某個主題的看法或情感分析反應,如正面或負面情緒,生氣,諷刺。它廣泛應用在用戶滿意度調查(如對產品的評論進行分析)。
③文件摘要: 文件摘要用一些方法得到長文本(如文檔,研究論文)短且達意的描述。
④命名實體識別: 命名實體識別演算法是用於處理一系列雜亂的文本並識別目標(實體)預定義類別,如人、公司名稱、日期、價格、標題等。它能夠將雜亂的文本信息轉成 規則的類表格式,來實現文本的快速分析。
⑤語音識別: 語音識別技術是用於得到人所講的一段語音信號的文本表達。如siri。
⑥自然語言的理解和生成: 自然語言的理解是通過計算機,將人類生成的文本轉化成更正式的表達。反過來,自然語言生成技術是將一些正式又有邏輯的表達轉換成類人的生成文本。主要用於聊天機器人和報告的自動生成。從概念上它與命名實體識別任務是相反的。
⑦機器翻譯: 機器翻譯是將一短文本或語音自動從一種語言翻譯成另一種語言的任務。
2.3計算機視覺
計算機視覺是一個專註於分析並深層次理解圖像和視頻數據的人工智慧領域。計算機視覺領域最常見的問題包括:
①圖像分類: 圖像分類是教模型去識別給定的圖像的一種計算機視覺任務。如:訓練一個模型去識別公共場景下的多個物體(可以應用於自動駕駛)。
②目標檢測: 目標檢測是教模型從一系列預定義的類別中檢測出某一類別的實例,並用矩形框框注出來的一種計算機視覺任務。例如,利用目標檢測來構建人臉識別系統。模型可以在圖片中檢測出每張臉並畫出對應的矩形框(提示,圖像分類系統只能識別出一張圖片中是否有臉的存在,而不能檢測出臉的位置,而目標檢測系統就可以)。
③圖像分割: 圖像分割是訓練模型去標註類的每一個像素值,並能大致確定給定像素所屬的預定義類別中的一種計算機視覺任務。
④顯著性檢測: 顯著性檢測是訓練模型產生最顯著區域的一種計算機視覺任務,這可以用於確定視頻中廣告牌的位置。
2.3 監督學習
監督學習是用實例來教模型學習的一類機器學習模型集合。用於監督學習任務的數據需要被標註(指定正確的真實類別)。例如,如果想要構建機器學習模型用於識別一個給定的文本是否被標記過,需要給模型提供一個標記過的樣本集(文本+信息,是否該文本標記過)。給定一個新的未見過的例子,模型能夠預測它的目標,例如,規定樣本的標籤,1表示標記過的,0表示未標記過的。
2.4 無監督學習
相比於監督學習,無監督學習模型是通過觀察來進行自我學習。演算法所用的數據是未標記過的(即提供給演算法的數據是沒有真實標籤值的)。無監督學習模型能夠發現不同輸入之間的相關關係。最重要的無監督學習技術是聚類方法。對於給定的數據,模型能夠得到輸入的不同聚類(對於相似的數據聚合在同一類中),並能將新的、未見過的輸入歸入到相似的聚類中。
2.5 強化學習
強化學習區別於先前提到的方法。強化學習演算法是一種「遊戲的」過程,其目標是最大化「遊戲獎勵」。該演算法通過反覆的實驗來嘗試確定不同的「走法」,並查看哪種方法能夠最大化「遊戲收益」。熟悉的例子是教計算機解決魔方問題或下象棋,但是強化學習能解決的問題不僅只有遊戲。最近,強化學習大量用於實時競價,其模型負責為一個廣告競拍價格,而它的報酬是用戶的轉換率。
2.6 神經網路
神經網路是一個非常廣泛的機器學習模型集合。它的主要思想是模擬人類的大腦來處理數據。就像大腦中真實神經元之間相互連接形成網路一樣,人工神經網路由多層組成。每層都是一系列神經元的集合,這些神經元複雜檢測不同的事物。一個神經網路能夠連續的處理數據,這意味著只有第一層才與輸入直接相連,隨著模型層次的增加,模型將學到越來越複雜的數據結構。當層數大量的增加,模型通常就是一個所謂的深度學習模型。很難給定一個深度網路確定一個特定的網路層數,十年前3層神經網路就可謂深,現在通常需要20層。
神經網路有許多不同的變體:
- 卷積神經網路: 它給計算機視覺帶來巨大的突破,現在對nlp問題也有很大幫助。
- 循環神經網路: 被設計為處理具有序列特徵的數據,如文本或股票票價。這是個相對古老的神經網路,但隨著計算機計算能力的發展,使得它的訓練變得容易。
- 全連接神經網路: 處理靜態/表格式數據最簡單的模型。
2.7 過擬合
當模型從不充分數據中學習會產生偏差,這對模型會有負面的影響。這是個很常見,也很重要的問題。一般由於異常值引起的,對新數據的預測效果不好,但是對訓練數據擬合的很好。當過擬合現象發生,它通常意味著模型將隨機雜訊當做數據,並作為一個重要的信號去擬合它,這是為什麼模型在新數據上的表現會出現退化。在一些非常複雜的模型,如神經網路或加速梯度模型上是很常見的。
註:如有理解偏差,請大佬指導。
推薦閱讀:
※免費中文版!谷歌機器學習速成課程今日上線!
※10行命令感受機器學習的神奇(0基礎小白適用)
※【重磅】李飛飛宣布成為矽谷頂級投資機構a16z入駐教授,邁出進軍工業界的第一步?
※Momenta: 我聽過的最公開的無人車宣講會
※機器翻譯真的達到了專業水平?人還需要學外語嗎?別慌!聽聽技術專家、語言學家們怎麼說