人工智能知识全面讲解:机器学习的过程
1.3.1 機器學習的三個階段
學習了機器學習的概念后,我們知道機器學習實際上就是計算機通過算法
處理數據并且學得模型的過程。“模型”這個詞經常被我們掛在嘴邊,但大部
分人仍然不清楚模型是怎么做出來的,模型在計算機里是怎么表示的,對模型
很難有一個具象的認識。實際上模型主要完成轉化的工作,幫助我們將一個在
現實中遇到的問題轉化為計算機可以理解的問題,這就是我們常說的建模 。
如圖1-6所示,在機器學習中生成一個模型的過程包括準備數據、建立模
型以及模型應用三個階段。準備數據有收集數據、探索數據及數據預處理三個
步驟。對數據進行處理后,在建立模型階段開始訓練模型、評估模型,然后通
過反復迭代優化模型,最終在應用階段上線投產使用模型,在新數據上完成任
務。
在數據準備階段,我們首先通過各種渠道收集相關數據,然后對數據、需
求和機器學習的目標進行分析,尤其是對數據進行一些必要的梳理,從而了解
數據的結構、數據量、各特征的統計信息、數據質量情況及分布情況等,以便
后續根據數據的特點選擇不同的機器學習算法。除此之外,為了更好地體現數
據分布情況,我們通常選擇用可視化的方式把數據的概況展示出來。
通過數據探索,我們可能會發現不少問題,如存在數據缺失、數據不規
范,有異常數據、非數值數據、無關數據和數據分布不均衡等情況。這些問題
會直接影響數據的質量,因而得到的模型誤差率會偏高。我們希望把樣本數據
的各個變量處理得更規范整齊并且具有表征意?,這樣才能最大限度地從原始
數據中提取特征信息以便算法和模型使用。為此,接?來要進行重點工作——
數據預處理,這是機器學習過程中必不可少的關鍵步驟。生產環境中的數據往
往是原始數據,也就是沒有經過加工和處理的數據,這類數據常常存在千奇百
怪的問題,因此,數據預處理的工作通常占據整個機器學習過程的大部分時
間。
接?來就是整個機器學習中的重頭戲——建模。訓練模型的過程從本質上
來說就是通過大量訓練數據找到一個與理想函數最接近的函數 。這是所有機
器學習研究的目標,也是機器學習的本質所在。
最理想的情況?,任何適合使用機器學習去解決的問題,在理論上都能被
一個最優的函數完美解決。但在現實應用中不一定能準確地找到這個函數,所
以我們會去找與這個理想函數較接近的函數。如果一個函數能夠滿足我們的使
用,那么我們就認為該函數是好的。
在訓練數據的過程中,通常認為存在一個假設函數集合,這個集合包含了
各種各樣的假設函數,我們需要做的就是從中挑選出最好的一個,這個假設
函數與理想函數是最接近的 。訓練模型的過程,就好比在數學上,我們知道
有一個方程和一些點的坐標,用這些點來求這個方程的未知項,從而得到完整
的方程。但在機器學習中,我們往往很難得到這個完整的方程,所以我們只能
通過各種手段求最接近理想情況?的未知項的值,使得這個結果最接近原本的
方程。圖1-7展示了模型訓練的本質。
?
?這個過程非常重要,在后續章節真正學習機器學習算法時,我們需要利用
這個過程去理解算法的實現過程、構造損失函數的原因,以及找到所謂“最優
解”的方法。在實際問題求解中,我們將理想函數與實際函數之間的差距稱為
損失值,所有的損失值加起來構成一個損失函數。求解最好的實際函數,也就
是求解令損失函數最小化的過程。
1.3.2 模型的訓練及選擇
一般情況?,不存在在任何情況?表現效果都很好的算法。因此在實際選
擇模型時,我們會選用幾種不同的方法來訓練模型,比較它們的性能,從中選
擇最優的方案。在訓練模型前,可以將數據集分為訓練集和測試集,或將訓練
集再細分為訓練集和驗證集,以便評估模型對新數據的表現。
構建模型后,我們通常使用測試數據測試模型的效果。如果我們對模型的
測試結果滿意,就可以用這個模型對新數據進行預測;如果我們對測試結果不
滿意,則可以繼續優化模型。優化的方法很多,在后面的章節中再?細討論。
到這里模型訓練的工作就完成了。計算機在樣本數據上使用一個算法,經
過學習后得到一個模型,然后為模型輸入新的待預測的數據,得到最終的預測
結果。
總結上述訓練模型的過程,可分為以?三步:(1)根據應用場景、實際
需要解決的問題以及手上的數據,選擇一個合適的模型。
(2)構建損失函數。需要依據具體的問題來確定損失函數,例如回歸問
題一般采用歐式距離作為損失函數,分類問題一般采用交?熵代價函數作為損
失函數,這部分內容在后續章節會展開講述。
(3)求解損失函數。求解損失函數是機器學習中的一個難點,因為做到
求解過程又快又準不是一件容易的事情。常用的方法有梯度?降法、最小二乘
法等,這部分內容同樣在后續章節會展開講述。
實際上在每個階段,產品經理都可以做很多事情以幫助開發工程師提升模
型的效果,因為產品經理最接近業務,最了解一線需求,也就是最了解問題背
景、方案應用場景、業務數據,等等。在整個項目開始之前我們需要確保開發
工程師能夠完全理解業務場景,明確模型的目標。在準備數據階段,我們可以
根據業務經驗告訴開發工程師哪些數據是業務同事重點關注的,哪些數據可
能會更有價值,哪些數據之間可能存在關聯 。比如在建立一個預測客戶貸款
傾向度模型時,我們會根據銀行的經驗把一些符合貸款申請的條件和規則告訴
開發工程師,以便他們做數據過濾及異常數據的處理。在建模階段,我們同樣
可以根據對業務場景的理解提出模型與數據源優化的方向,讓程序開發和場景
應用兩個環境能夠真正有機地結合起來。
總結
以上是生活随笔為你收集整理的人工智能知识全面讲解:机器学习的过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习中强化学习是什么?人工智能机器学
- 下一篇: 通过Python脚本下载【来此加密的免费