伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文快速了解機器學習任務中的重要成分和結構

電子工程師 ? 來源:未知 ? 作者:李倩 ? 2018-06-22 08:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

??▌基本概念

我們從一個實例來了解機器學習的基本概念。假設我們現在面臨這樣一個任務(Task),任務的內容是識別手寫體的數字。對于計算機而言,這些手寫數字是一張張圖片,如下所示:

對人來說,識別這些手寫數字是非常簡單的,但是對于計算機而言,這種任務很難通過固定的編程來完成,即使我們把我們已經知道的所有手寫數字都存儲到數據庫中,一旦出現一個全新的手寫數字(從未出現在數據庫中),固定的程序就很難識別出這個數字來。所以,在這里,我們的任務指的就是這類很難通過固定編程解決的任務。

要解決這類任務,我們的計算機需要有一定的“智能”,但是在我們的認知中,只有人類才具備這種“高級智能”(某些靈長類動物雖然具備一定的運用工具的能力,但我們認為那距離我們所說的智能還有很遠的距離),所以如果我們想讓計算機具備這種“智能”,由于這是人造的事物,我們稱這種智能為人工智能(Artificial Intelligence, AI)。

正式地講,人工智能,是指由人制造出來的機器所表現出來的智能。通常人工智能是指通過普通計算機程序的手段實現的類人智能技術。機器學習可以幫助我們解決這類任務,所以我們說,機器學習是一種人工智能技術。

那么機器學習是怎么解決這類任務的呢?

機器學習(Machine learning)是一類基于數據或者既往的經驗,優化計算機程序的性能標準的方法。這是機器學習的定義,看起來可能難以理解,我們對它進行分解:

1、首先,對于手寫數字識別這個任務來說,數據或者既往的經驗就是我們已經收集到的手寫數字,我們要讓我們的程序從這些數據中學習到一種能力/智能,這種能力就是:通過學習,這個程序能夠像人一樣識別手寫數字。

2、性能標準,就是指衡量我們的程序的這種能力高低的指標了。在識別任務中,這個指標就是識別的精度。給定100個手寫數字,有99個數字被我們的“智能”程序識別正確,那么精度就是99%。

3、優化,就是指我們基于既往的經驗或者數據,讓我們的“智能”程序變得越來越聰明,甚至比人類更加聰明。

機器學習,就是能夠從經驗中不斷“學習進步”的算法,在很多情況下,我們將這些經驗用數值描述,因此,經驗=數據,這些收集在一起的數據被成為數據集(Dataset),在這些已有的數據集上學習的過程我們稱之為訓練(Train),因此,這個數據集又被稱為訓練集。

很顯然,我們真正關心的并不是機器學習算法在訓練集上的表現,我們希望我們的“智能”程序對從未見過的手寫字也能夠正確的識別,這種在新的樣本(數據)上的性能我們稱之為泛化能力(generalization ability),對于一個任務而言,泛化能力越強,這個機器學習算法就越成功。

根據數據集的不同,機器學習可以分成如下三類:

監督學習(Supervised learning):數據集既包含樣本(手寫字圖片),還包含其對應的標簽(每張手寫字圖片對應的是那個數字)

無監督學習(Unsupervised learning):與監督學習相對,數據集僅包含樣本,不包含樣本對應的標簽,機器學習算法需要自行確定樣本的類別歸屬

強化學習(Reinforcement learning):又稱為增強學習,是一種半監督學習,強調如何基于環境而行動,以取得最大化的預期利益。

當前大熱的神經網絡,深度學習等等都是監督學習,隨著大數據時代的到來以及GPU帶來的計算能力的提升,監督學習已經在諸如圖像識別,目標檢測和跟蹤,機器翻譯,語音識別,自然語言處理的大量領域取得了突破性的進展。

然而,當前在無監督學習領域并沒有取得像監督學習那樣的突破性進展。由于在無人駕駛領域主要應用的機器學習技術仍然是監督學習,本文將重點講監督學習的相關內容。

在本文中,為了便于理解,我們使用手寫數字識別來描述處理的任務,實際上,機器學習算法能夠處理的任務還有很多,例如:分類,回歸,轉錄,機器翻譯,結構化輸出,異常檢測,合成與采樣, 缺失值填補等等。這些任務看似不同,卻有著一個共性,那就是很難通過人為設計的確定性程序來解決。

▌監督學習

經驗風險最小化

監督學習,本質上就是在給定一個集合(X,Y)的基礎上去學得一個函數:

y=f(x)

在 MNIST 問題中,X就表示我們收集到的所有的手寫數字圖片的集合,Y表示這些圖片對應的真實的數字,函數f則表示輸入一張手寫字圖片,輸出這張圖片表示的數值這樣的一個映射關系。

很顯然,這樣的映射關系中的x有著一個極其巨大的取值域(甚至有無限種可能取值), 所以我們可以把我們已有的樣本集合(X,Y)理解為從某個更大甚至是無限的母體中,根據某種未知的概率分布p,以獨立同分布隨機變量方式來取樣。現在,我們假定存在一個損失函數(Loss function)L,這個損失函數可以表述為:

L(f(x),y)

這個損失函數描述的是我們學得的函數f(x)的輸出和x樣本對應的真實值y之間的距離,很顯然,這個損失越小,表示我們學得的函數f更貼近于真實映射g。以損失函數為基礎,我們定義風險:

函數f的風險,就是損失函數的期望值。由于我們以手寫字分類為例,所以這里各個樣本的概率分布p是離散的,我們可以用如下公式定義風險:

如果是連續的,則可以使用定積分和概率密度函數來表示。這里的xi是指整個樣本空間的所有可能取值,所以,現在的目標就變成了:在很多可能的函數中,去尋找一個f,使得風險R(f)最小。

然而,真實的風險是建立在對整個樣本空間進行考量的,我們并不能獲得整個樣本空間,我們有的只是一個從我們要解決的任務的樣本空間中使用獨立同分布的方法隨機采樣得到的子集(X,Y),那么,在這個子集上,我們可以求出這個真實分布的近似值,比如說經驗風險:

其中(xi,yi)是我們已有的數據集中的樣本,所以,我們選擇能夠最小化經驗風險的函數f這樣的一個策略就被稱之為經驗風險最小化原則。

很顯然,當訓練數據集足夠大的時候,經驗風險最小化這一策略能夠保證很好的學習效果——這也就是我們當代深度神經網絡取得很多方面的成功的一個重要原因。專業的說,我們把我們已有的數據集的大小稱之為樣本容量。不論是什么應用領域,規范的大數據集合,就意味著我們的機器學習任務已經成功了一半。

模型,過擬合,欠擬合

那么學習這個f需要一個載體, 這個載體的作用就是,用它我們可以表述各種各樣的函數f這樣我們就可以通過調整這個載體去選擇一個最優的f,這個最優的f能夠使經驗風險最小化,這個載體我們專業地說,就是機器學習中的模型(model), 單純地說模型的抽象概念可能讓人難以理解,我們選取一種模型的實例來看。

我們以人工神經網絡(artificial neural network,ANN)為例來討論。首先,我們知道我們現在需要的是一個模型,這個模型具有能夠描述各種各樣的函數的能力,下圖是一個神經網絡:

它看起來很復雜,讓人費解,那么我們把它簡化,如下圖:

我們把這個模型理解成一個黑箱,這個黑箱里有很多參數:(w1,w2,w3,...,wn),我們用W來描述這個黑箱中的參數,這些參數叫模型參數,即使模型內部的結構不變,僅僅修改這些參數,模型也能表現出不同的本領。

具體來說:對于手寫字識別任務,我們在手寫字數據集上通過一定的算法調整神經網絡的參數,使得神經網絡擬合出一個函數f,這個f是經驗風險最小化的函數,那么我們訓練出來的這個“黑箱”就可以用于手寫字識別了;另一方面,對于車輛識別來說,假設我們有車輛數據集,相同的思路,我們可以訓練出一個黑箱來最做車輛識別。如下圖所示:

在前文中我們知道,考量一個機器學習模型的關鍵在于其泛化能力,一個考量泛化能力的重要指標就是模型的訓練誤差和測試誤差的情況:

訓練誤差:模型在訓練集上的誤差

測試誤差:模型在從未“見過的”測試集上的誤差

這兩個誤差,分別對應了機器學習任務中需要解決的兩個問題:欠擬合和過擬合。當訓練誤差過高時,模型學到的函數并沒有滿足經驗風險最小化,對手寫字識別來說,模型即使在我們的訓練集中識別的精度也很差,我們稱這種情況為欠擬合。

當訓練誤差低但是測試誤差高,即訓練誤差和測試誤差的差距過大時,我們稱之為過擬合,此時模型學到了訓練集上的一些“多余的規律”,表現為在訓練數據集上識別精度很高,在測試數據集(未被用于訓練,或者說未被用于調整模型參數的數據集合)上識別精度不高。

模型的容量(capacity)決定了模型是否傾向于過擬合還是欠擬合。模型的容量指的是模型擬合各種函數的能力,很顯然,越復雜的模型就能夠表述越復雜的函數(或者說規律,或者說模式)。那么對于一個特定的任務(比如說手寫字識別),如何去選擇合適的模型容量來擬合相應的函數呢?這里就引入了奧卡姆剃刀原則:

奧卡姆剃刀原則:在同樣能夠解釋已知觀測現象的假設中,我們應該挑選”最簡單”的那一個。

這可以理解為一個簡約設計原則,在處理一個任務是,我們應當使用盡可能簡單的模型結構。

“一定的算法”–>梯度下降算法

前面我們說到我們可以通過一定的算法調整神經網絡的參數,這里我們就來介紹一下這個定向(朝著經驗風險最小化的方向)調整模型參數的算法——梯度下降算法。

要最小化經驗風險Rˉ(f),等同于最小化損失函數,在機器學習中,損失函數可以寫成每個樣本的損失函數的總和:

其中θ表示模型中的所有參數,現在我們要最小化L(θ),我們首先想到的是求解導數,我們把這個L對θ的導數記作L′(θ)或者dLdθ, 導數L′(θ)就代表了函數L(θ)在θ處的斜率,我們可以把函數的輸入輸出關聯性用斜率來描述:

L(θ+α)≈L(θ)+αL′(θ)

其中,α是一個變化量,利用這個公式,我們就可以利用導數來逐漸使L變小,具體來說,我們只要讓α的符號和導數的符號相反,即:

sign(α)=?sign(L′(θ))

這樣,L(θ+α)就會比原來的L(θ)更小:

L(θ+α)=L(θ)?|αL′(θ)|

這種通過向導數的反方向移動一小步來最小化目標函數(在我們機器學習中,也就是損失函數)的方法,我們稱之為梯度下降(gradient descent)。

對于神經網絡這種復雜的模型來說,模型包含了很多參數,所以這里的θ就表示一個參數集合,或者說參數向量, 所以我們要求的導數就變成了包含所有參數的偏導數的向量▽θL(θ)。

這里的α就可以理解為我們進行梯度下降的過程中的步長了,我們將學習的步長稱為學習率(learning rate), 它描述了梯度下降的速度。

▌小結

在本文中,我們沒有介紹任何一種具體的機器學習算法和模型,但是我們快速的了解了機器學習任務中的重要成分和結構,以下我們來進行一個小的總結:

首先,機器學習是用來完成特定的任務的:比如說手寫字識別,行人檢測,房價預測等等。這個任務必須要有一定的性能度量,比如說識別精度,預測誤差等等。

然后,為了處理這個任務,我們需要設計模型,這個模型能夠從數據中基于一定的策略(比如說經驗風險最小化原則) 和一定的算法(比如說梯度下降算法) 去學習一個函數。

最后,這個函數要能夠處理這個任務中的各種各樣的情況(包括沒有出現在訓練集中的情況),這個模型要有很好的泛化能力,這樣,我們的機器學習任務就成功了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 人工智能
    +關注

    關注

    1819

    文章

    50139

    瀏覽量

    265801
  • 機器學習
    +關注

    關注

    66

    文章

    8558

    瀏覽量

    137056
  • 數據集
    +關注

    關注

    4

    文章

    1237

    瀏覽量

    26220

原文標題:機器學習入門概覽

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    嵌入式單片機開發學習路徑

    學習C語言 C語言是嵌入式開發的基礎。掌握C語言的基本語法、指針、結構體、內存管理等內容是進入嵌入式開發的前提。 2. 硬件知識 2.1 認識單片機 單片機是嵌入式系統的核心器件。
    發表于 02-09 15:42

    【產品介紹】Altair SimSolid 無網格快速結構仿真軟件

    AltairSimSolidAltairSimSolid是款專為快速設計流程而開發的結構分析軟件。與傳統FEA相比,它消除了幾何模型簡化和網格劃分這兩個最耗時且專業知識要求較高的任務
    的頭像 發表于 01-28 14:26 ?223次閱讀
    【產品介紹】Altair SimSolid 無網格<b class='flag-5'>快速</b><b class='flag-5'>結構</b>仿真軟件

    說透了如何實現單片機的多任務并發!

    任務并發。 任務調度 任務調度是多任務并發中個非常
    發表于 01-06 06:46

    柔順與施力控制:協作機器人在復雜任務的核心優勢

    ”的跨越傳統的位置控制模式下,機器人嚴格按預設路徑運動,適用于規則、結構化的場景。而在面對不規則曲面或需實時響應的任務時,柔順控制與施力控制展現出顯著優勢:1.動態路
    的頭像 發表于 11-25 14:08 ?360次閱讀
    柔順與施力控制:協作<b class='flag-5'>機器</b>人在復雜<b class='flag-5'>任務</b><b class='flag-5'>中</b>的核心優勢

    為什么FPU在MCU重要呢?

    甚至上百個周期。 并行處理: 些高性能 FPU(如 Cortex-M7 的 DPFPU)具有流水線結構,可以并行處理多個操作。 降低 CPU 負載: FPU 承擔了繁重的浮點計算任務,釋放了主 CPU
    發表于 11-18 07:05

    了解Mojo編程語言

    Mojo 語言的具體介紹: 核心特點 Python 兼容性 Mojo 支持大部分 Python 語法和標準庫,可直接調用 Python 生態系統的庫,降低了學習成本。 極致性能優化 通過靜態編譯
    發表于 11-07 05:59

    讀懂!掃描電鏡mapping圖如何助力靜電紡絲纖維結構觀察

    在微觀世界的探索,材料的宏觀性能究竟由其微觀世界哪些區域的哪些元素所決定?掃描電鏡mapping圖為我們深入了解材料的微觀結構成分分布
    的頭像 發表于 08-29 11:49 ?1560次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>讀懂!掃描電鏡mapping圖如何助力靜電紡絲纖維<b class='flag-5'>結構</b>觀察

    【「Yocto項目實戰教程:高效定制嵌入式Linux系統」閱讀體驗】+基礎概念學習理解

    是 Yocto 項目的重要組成部分,它提供了套完整的參考發行版,方便開發者快速構建和定制嵌入式 Linux 系統。通過學習這部分內容
    發表于 08-04 22:29

    了解什么是 BQB 認證

    在藍牙產品快速普及的今天,無論是藍牙耳機、音箱、手表,還是智能家居、車載設備,只要你的產品宣稱使用了藍牙技術,就必須通過BQB認證。那么,BQB認證是什么?為什么它如此重要?該怎么做?本文為你
    的頭像 發表于 07-18 14:53 ?1960次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>什么是 BQB 認證

    FPGA在機器學習的具體應用

    ,越來越多地被應用于機器學習任務。本文將探討 FPGA 在機器學習
    的頭像 發表于 07-16 15:34 ?2950次閱讀

    帶你了解什么是機器視覺網卡

    千兆以太網或萬兆以太網相機產生的大量圖像數據流。萬兆網卡能提供更高的帶寬,滿足高分辨率、高幀率相機的需求。支持GigEVision協議:這是機器視覺領域最重要的工業
    的頭像 發表于 07-09 16:18 ?705次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>帶你<b class='flag-5'>了解</b>什么是<b class='flag-5'>機器</b>視覺網卡

    了解人形機器

    人形機器人是仿照人類形態設計的通用雙足機器人,旨在與人類起工作以提高生產力。它們能夠學習和執行各種任務,例如抓取物體、移動貨柜、裝卸箱子等
    的頭像 發表于 06-13 09:42 ?2069次閱讀

    【「# ROS 2智能機器人開發實踐」閱讀體驗】視覺實現的基礎算法的應用

    、機器人視覺:從理論到實踐 第7章詳細介紹了ROS2在機器視覺領域的應用,涵蓋了相機標定、OpenCV集成、視覺巡線、二維碼識別以及深度學習目標檢測等內容。通過
    發表于 05-03 19:41

    【「# ROS 2智能機器人開發實踐」閱讀體驗】機器人入門的引路書

    的限制和調控) 本書還有很多前沿技術項目的擴展 比如神經網絡識別例程,機器學習圖像識別的原理,yolo圖像追蹤的原理 機器學習訓練三大點: 先準備
    發表于 04-30 01:05

    【「# ROS 2智能機器人開發實踐」閱讀體驗】+ROS2應用案例

    的知識,還需要對ROS 2的節點通信和數據處理有定的了解。通過實踐這部分內容,我掌握了如何在ROS 2實現二維碼識別,這對于提高機器
    發表于 04-27 11:42