【機器學習】基礎

概述


機器學習(Machine Learning,ML) 是使用計算機來彰顯數據背後的真實含義,它爲了把無序的數據轉換成有用的信息。是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行爲,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。 它是人工智能的核心,是使計算機具有智能的根本途徑,其應用遍及人工智能的各個領域,它主要使用歸納、綜合而不是演繹。

  1. 海量的數據
  2. 獲取有用的信息

 

研究意義


機器學習是一門人工智能的科學,該領域的主要研究對象是人工智能,特別是如何在經驗學習中改善具體算法的性能”。 “機器學習是對能通過經驗自動改進的計算機算法的研究”。 “機器學習是用數據或以往的經驗,以此優化計算機程序的性能標準。” 一種經常引用的英文定義是:A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.

機器學習已經有了十分廣泛的應用,例如:數據挖掘、計算機視覺、自然語言處理、生物特徵識別、搜索引擎、醫學診斷、檢測信用卡欺詐、證券市場分析、DNA序列測序、語音和手寫識別、戰略遊戲和機器人運用。

 

趨勢&場景


例如:識別動物貓

  • 模式識別(官方標準):人們通過大量的經驗,得到結論,從而判斷它就是貓。
  • 機器學習(數據學習):人們通過閱讀進行學習,觀察它會叫、小眼睛、兩隻耳朵、四條腿、一條尾巴,得到結論,從而判斷它就是貓。
  • 深度學習(深入數據):人們通過深入瞭解它,發現它會'喵喵'的叫、與同類的貓科動物很類似,得到結論,從而判斷它就是貓。(深度學習常用領域:語音識別、圖像識別)

模式識別(pattern recognition): 模式識別是最古老的(作爲一個術語而言,可以說是很過時的)。

  • 我們把環境與客體統稱爲“模式”,識別是對模式的一種認知,是如何讓一個計算機程序去做一些看起來很“智能”的事情。
  • 通過融於智慧和直覺後,通過構建程序,識別一些事物,而不是人,例如: 識別數字。

機器學習(machine learning): 機器學習是最基礎的(當下初創公司和研究實驗室的熱點領域之一)。

  • 在90年代初,人們開始意識到一種可以更有效地構建模式識別算法的方法,那就是用數據(可以通過廉價勞動力採集獲得)去替換專家(具有很多圖像方面知識的人)。
  • “機器學習”強調的是,在給計算機程序(或者機器)輸入一些數據後,它必須做一些事情,那就是學習這些數據,而這個學習的步驟是明確的。
  • 機器學習(Machine Learning)是一門專門研究計算機怎樣模擬或實現人類的學習行爲,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身性能的學科。

深度學習(deep learning): 深度學習是非常嶄新和有影響力的前沿領域,我們甚至不會去思考-後深度學習時代。

  • 深度學習是機器學習研究中的一個新的領域,其動機在於建立、模擬人腦進行分析學習的神經網絡,它模仿人腦的機制來解釋數據,例如圖像,聲音和文本。

參考地址:

機器學習已應用於多個領域,遠遠超出大多數人的想象,橫跨:計算機科學、工程技術和統計學等多個學科。

  • 搜索引擎: 根據你的搜索點擊,優化你下次的搜索結果,是機器學習來幫助搜索引擎判斷哪個結果更適合你(也判斷哪個廣告更適合你)。
  • 垃圾郵件: 會自動的過濾垃圾廣告郵件到垃圾箱內。
  • 超市優惠券: 你會發現,你在購買小孩子尿布的時候,售貨員會贈送你一張優惠券可以兌換6罐啤酒。
  • 郵局郵寄: 手寫軟件自動識別寄送賀卡的地址。
  • 申請貸款: 通過你最近的金融活動信息進行綜合評定,決定你是否合格。

 

機器學習 組成


主要任務

分類(classification)

將實例數據劃分到合適的類別中。

應用實例:判斷網站是否被黑客入侵(二分類 ),手寫數字的自動識別(多分類)

迴歸(regression)

主要用於預測數值型數據。

應用實例:股票價格波動的預測,房屋價格的預測等。

監督學習(supervised learning)

1.必須確定目標變量的值,以便機器學習算法可以發現特徵和目標變量之間的關係。在監督學習中,給定一組數據,我們知道正確的輸出結果應該是什麼樣子,並且知道在輸入和輸出之間有着一個特定的關係。 (包括:分類和迴歸)

2.樣本集:訓練數據 + 測試數據

  • 訓練樣本 = 特徵(feature) + 目標變量(label: 分類-離散值/迴歸-連續值)
  • 特徵通常是訓練樣本集的列,它們是獨立測量得到的。
  • 目標變量: 目標變量是機器學習預測算法的測試結果。
    • 在分類算法中目標變量的類型通常是標稱型(如:真與假),而在迴歸算法中通常是連續型(如:1~100)。

3.監督學習需要注意的問題:

  • 偏置方差權衡
  • 功能的複雜性和數量的訓練數據
  • 輸入空間的維數
  • 噪聲中的輸出值

4.知識表示

  • 可以採用規則集的形式【例如:數學成績大於90分爲優秀】
  • 可以採用概率分佈的形式【例如:通過統計分佈發現,90%的同學數學成績,在70分以下,那麼大於70分定爲優秀】
  • 可以使用訓練樣本集中的一個實例【例如:通過樣本集合,我們訓練出一個模型實例,得出 年輕,數學成績中高等,談吐優雅,我們認爲是優秀】

非監督學習(unsupervised learing)

1.在機器學習,無監督學習的問題是,在未加標籤的數據中,試圖找到隱藏的結構。因爲提供給學習者的實例是未標記的,因此沒有錯誤或報酬信號來評估潛在的解決方案。

2.無監督學習是密切相關的統計數據密度估計的問題。然而無監督學習還包括尋求,總結和解釋數據的主要特點等諸多技術。在無監督學習使用的許多方法是基於用於處理數據的數據挖掘方法。

3.數據沒有類別信息,也不會給定目標值。

4.非監督學習包括的類型:

  • 聚類:在無監督學習中,將數據集分成由類似的對象組成多個類的過程稱爲聚類。
  • 密度估計:通過樣本分佈的緊密程度,來估計與分組的相似性。
  • 此外,無監督學習還可以減少數據特徵的維度,以便我們可以使用二維或三維圖形更加直觀地展示數據信息。

強化學習

這個算法可以訓練程序做出某一決定。程序在某一情況下嘗試所有的可能行動,記錄不同行動的結果並試着找出最好的一次嘗試來做決定。 屬於這一類算法的有馬爾可夫決策過程。

訓練過程

算法彙總

 

機器學習 使用


選擇算法需要考慮的兩個問題

算法場景

  • 預測明天是否下雨,因爲可以用歷史的天氣情況做預測,所以選擇監督學習算法
  • 給一羣陌生的人進行分組,但是我們並沒有這些人的類別信息,所以選擇無監督學習算法、通過他們身高、體重等特徵進行處理。

需要收集或分析的數據是什麼

舉例

機器學習 開發流程

  1. 收集數據: 收集樣本數據
  2. 準備數據: 注意數據的格式
  3. 分析數據: 爲了確保數據集中沒有垃圾數據;
    • 如果是算法可以處理的數據格式或可信任的數據源,則可以跳過該步驟;
    • 另外該步驟需要人工干預,會降低自動化系統的價值。
  4. 訓練算法: [機器學習算法核心]如果使用無監督學習算法,由於不存在目標變量值,則可以跳過該步驟
  5. 測試算法: [機器學習算法核心]評估算法效果
  6. 使用算法: 將機器學習算法轉爲應用程序

 

機器學習 數學基礎


  • 微積分
  • 統計學/概率論
  • 線性代數

數學基礎:https://zhuanlan.zhihu.com/p/25197792

 

機器學習 工具

Python語言

  1. 可執行僞代碼
  2. Python比較流行:使用廣泛、代碼範例多、豐富模塊庫,開發週期短
  3. Python語言的特色:清晰簡練、易於理解
  4. Python語言的缺點:唯一不足的是性能問題
  5. Python相關的庫
    • 科學函數庫:SciPyNumPy(底層語言:C和Fortran)
    • 繪圖工具庫:Matplotlib
    • 數據分析庫 Pandas

數學工具

  • Matlab

 

附件—基礎補充


專業術語

  • 模型(model):計算機層面的認知
  • 學習算法(learning algorithm),從數據中產生模型的方法
  • 數據集(data set):一組記錄的合集
  • 示例(instance):對於某個對象的描述
  • 樣本(sample):也叫示例
  • 屬性(attribute):對象的某方面表現或特徵
  • 特徵(feature):同屬性
  • 屬性值(attribute value):屬性上的取值
  • 屬性空間(attribute space):屬性張成的空間
  • 樣本空間/輸入空間(samplespace):同屬性空間
  • 特徵向量(feature vector):在屬性空間裏每個點對應一個座標向量,把一個示例稱作特徵向量
  • 維數(dimensionality):描述樣本參數的個數(也就是空間是幾維的)
  • 學習(learning)/訓練(training):從數據中學得模型
  • 訓練數據(training data):訓練過程中用到的數據
  • 訓練樣本(training sample):訓練用到的每個樣本
  • 訓練集(training set):訓練樣本組成的集合
  • 假設(hypothesis):學習模型對應了關於數據的某種潛在規則
  • 真相(ground-truth):真正存在的潛在規律
  • 學習器(learner):模型的另一種叫法,把學習算法在給定數據和參數空間的實例化
  • 預測(prediction):判斷一個東西的屬性
  • 標記(label):關於示例的結果信息,比如我是一個“好人”。
  • 樣例(example):擁有標記的示例
  • 標記空間/輸出空間(label space):所有標記的集合
  • 分類(classification):預測是離散值,比如把人分爲好人和壞人之類的學習任務
  • 迴歸(regression):預測值是連續值,比如你的好人程度達到了0.9,0.6之類的
  • 二分類(binary classification):只涉及兩個類別的分類任務
  • 正類(positive class):二分類裏的一個
  • 反類(negative class):二分類裏的另外一個
  • 多分類(multi-class classification):涉及多個類別的分類
  • 測試(testing):學習到模型之後對樣本進行預測的過程
  • 測試樣本(testing sample):被預測的樣本
  • 聚類(clustering):把訓練集中的對象分爲若干組
  • 簇(cluster):每一個組叫簇
  • 監督學習(supervised learning):典範--分類和迴歸
  • 無監督學習(unsupervised learning):典範--聚類
  • 未見示例(unseen instance):“新樣本“,沒訓練過的樣本
  • 泛化(generalization)能力:學得的模型適用於新樣本的能力
  • 分佈(distribution):樣本空間的全體樣本服從的一種規律
  • 獨立同分布(independent and identically distributed,簡稱i,i,d.):獲得的每個樣本都是獨立地從這個分佈上採樣獲得的。

數據集的劃分

  • 訓練集(Training set) —— 學習樣本數據集,通過匹配一些參數來建立一個模型,主要用來訓練模型。類比考研前做的解題大全。
  • 驗證集(validation set) —— 對學習出來的模型,調整模型的參數,如在神經網絡中選擇隱藏單元數。驗證集還用來確定網絡結構或者控制模型複雜程度的參數。類比 考研之前做的模擬考試。
  • 測試集(Test set) —— 測試訓練好的模型的分辨能力。類比 考研。這次真的是一考定終身。

模型擬合程度

  • 欠擬合(Underfitting):模型沒有很好地捕捉到數據特徵,不能夠很好地擬合數據,對訓練樣本的一般性質尚未學好。類比,光看書不做題覺得自己什麼都會了,上了考場才知道自己啥都不會。
  • 過擬合(Overfitting):模型把訓練樣本學習“太好了”,可能把一些訓練樣本自身的特性當做了所有潛在樣本都有的一般性質,導致泛化能力下降。類比,做課後題全都做對了,超綱題也都認爲是考試必考題目,上了考場還是啥都不會。

通俗來說,欠擬合和過擬合都可以用一句話來說,欠擬合就是:“你太天真了!”,過擬合就是:“你想太多了!”。

常見的模型指標

  • 正確率 —— 提取出的正確信息條數 / 提取出的信息條數
  • 召回率 —— 提取出的正確信息條數 / 樣本中的信息條數
  • F 值 —— 正確率 * 召回率 * 2 / (正確率 + 召回率)(F值即爲正確率和召回率的調和平均值)

舉個例子如下:

舉個例子如下: 某池塘有 1400 條鯉魚,300 只蝦,300 只烏龜。現在以捕鯉魚爲目的。撒了一張網,逮住了 700 條鯉魚,200 只 蝦, 100 只烏龜。那麼這些指標分別如下: 正確率 = 700 / (700 + 200 + 100) = 70% 召回率 = 700 / 1400 = 50% F 值 = 70% * 50% * 2 / (70% + 50%) = 58.3%

學習率

Learning rate —— 學習率,通俗地理解,可以理解爲步長,步子大了,很容易錯過最佳結果。就是本來目標盡在咫尺,可是因爲我邁的步子很大,卻一下子走過了。步子小了呢,就是同樣的距離,我卻要走很多很多步,這樣導致訓練的耗時費力還不討好。

模型

  • 分類問題 —— 說白了就是將一些未知類別的數據分到現在已知的類別中去。比如,根據你的一些信息,判斷你是高富帥,還是窮屌絲。評判分類效果好壞的三個指標就是上面介紹的三個指標:正確率,召回率,F值。
  • 迴歸問題 —— 對數值型連續隨機變量進行預測和建模的監督學習算法。迴歸往往會通過計算 誤差(Error)來確定模型的精確性。
  • 聚類問題 —— 聚類是一種無監督學習任務,該算法基於數據的內部結構尋找觀察樣本的自然族羣(即集羣)。聚類問題的標準一般基於距離:簇內距離(Intra-cluster Distance) 和 簇間距離(Inter-cluster Distance) 。簇內距離是越小越好,也就是簇內的元素越相似越好;而簇間距離越大越好,也就是說簇間(不同簇)元素越不相同越好。一般的,衡量聚類問題會給出一個結合簇內距離和簇間距離的公式。

下面這個圖可以比較直觀地展示出來:

特徵工程

特徵選擇 —— 也叫特徵子集選擇(FSS,Feature Subset Selection)。是指從已有的 M 個特徵(Feature)中選擇 N 個特徵使得系統的特定指標最優化,是從原始特徵中選擇出一些最有效特徵以降低數據集維度的過程,是提高算法性能的一個重要手段,也是模式識別中關鍵的數據預處理步驟。

特徵提取 —— 特徵提取是計算機視覺和圖像處理中的一個概念。它指的是使用計算機提取圖像信息,決定每個圖像的點是否屬於一個圖像特徵。特徵提取的結果是把圖像上的點分爲不同的子集,這些子集往往屬於孤立的點,連續的曲線或者連續的區域。

下面給出一個特徵工程的圖:

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章