99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀什么是機器學(xué)習(xí):一次權(quán)威定義之旅
什么是機器學(xué)習(xí):一次權(quán)威定義之旅
2017-12-31
收藏

什么是機器學(xué)習(xí):一次權(quán)威定義之旅

在這篇文章中,我想要解決一個很簡單的問題:機器學(xué)習(xí)是什么?

你可能對機器學(xué)習(xí)感興趣或者稍稍了解。如果有一天你和朋友或同事聊起機器學(xué)習(xí),那么一些人可能會問你“機器學(xué)習(xí)是什么”。那么,此文的目標(biāo)就是告訴你一些可參考的定義,以及一個現(xiàn)成的、容易記起的趣味定義。
我們將從了解該領(lǐng)域的權(quán)威書籍上關(guān)于機器學(xué)習(xí)的標(biāo)準(zhǔn)定義出發(fā),并且以得出機器學(xué)習(xí)的一種程序員定義和我們被問及什么是機器學(xué)習(xí)時一個隨時可以使用的現(xiàn)成的笑話為結(jié)束。
權(quán)威定義
我們先從閱讀四本大學(xué)課程中常用的機器學(xué)習(xí)參考書開始。這些是我們的權(quán)威定義,它們?yōu)槲覀兏由钊氲厮伎歼@個學(xué)科奠定了基礎(chǔ)。我選擇這四本書來強調(diào)該領(lǐng)域的一些有用的、多樣的觀點。經(jīng)驗告訴我們,這個領(lǐng)域確實是包括很多的方法,因此選擇一個合適的角度是取得進展的關(guān)鍵。
Mitchell定義的機器學(xué)習(xí)
Tom Mitchell在他的《Machine Learning(中文版:計算機科學(xué)叢書:機器學(xué)習(xí) )》一書的序言開場白中給出了一個定義:
機器學(xué)習(xí)這門學(xué)科所關(guān)注的問題是:計算機程序如何隨著經(jīng)驗積累自動提高性能。”
我喜歡這個簡單明了的定義,它是我們在帖子最后得出的程序員定義的基礎(chǔ)。注意計算機程序這一提法和提到的“自動提高”一詞。寫程序以改善它們自身,這是挑釁!
他在引言中多次重復(fù)提到一個簡短的形式體系:
“對于某類任務(wù)T和性能度量P,如果一個計算機程序在T上以P衡量的性能隨著經(jīng)驗E而自我完善,那么我們稱這個計算機程序在從經(jīng)驗E學(xué)習(xí)?!?
不要讓術(shù)語的定義把你嚇跑,這是一個非常有用的形式體系。我們把這一形式體系作為一個模版,把經(jīng)驗E、任務(wù)T和性能度量P列在一張表的頂部,并且列 出帶有更少歧義的復(fù)雜問題。它可以作為一個設(shè)計工具來幫助我們清楚的思考收集什么樣的數(shù)據(jù)(E),需要做出什么樣的決策(T),以及如何評價結(jié)果(P)。 這就是我們把它作為一個標(biāo)準(zhǔn)定義的原因。請把它記在心里。
統(tǒng)計學(xué)習(xí)基礎(chǔ)
《The Elements of Statistical Learning: Data Mining, Inference, and Prediction》是由三個斯坦福的統(tǒng)計學(xué)家編寫的,它自我描述為組織探究他們領(lǐng)域的統(tǒng)計框架。它在前言中寫到:
“許多領(lǐng)域都產(chǎn)生了大量的數(shù)據(jù),統(tǒng)計學(xué)家的工作就是讓所有這些數(shù)據(jù)變得意義:提取重要的模式和趨勢,理解“數(shù)據(jù)在說什么”。我們稱之為從數(shù)據(jù)中學(xué)習(xí)?!?
我所理解的統(tǒng)計學(xué)家的工作是,使用統(tǒng)計工具在上下文環(huán)境中解譯數(shù)據(jù)。作者似乎想要把機器學(xué)習(xí)領(lǐng)域中的全部作為輔助工具。有趣的是,他們選擇把“數(shù)據(jù)挖掘”包含在書的標(biāo)題中。
統(tǒng)計學(xué)家從數(shù)據(jù)中學(xué)習(xí),但軟件也可以,并且我們是從軟件學(xué)習(xí)到的事情中學(xué)習(xí),從由多種多樣的機器學(xué)習(xí)方法做出的決策和得出的結(jié)果中學(xué)習(xí)。
模式識別
Bishop在《 Pattern Recognition and Machine Learning 》的前言中寫到:
模式識別起源于工程學(xué),而機器學(xué)習(xí)產(chǎn)生于計算機科學(xué)。然而這些領(lǐng)域可以看做成是同一領(lǐng)域的兩個方面。”
看了這些,你會獲得這樣一個印象,Bishop從一個工程的角度來到這個領(lǐng)域,后來又采取同樣的方法學(xué)習(xí)和利用了計算機科學(xué)。這是一個我們應(yīng)該效仿 的成熟方法。更廣泛地說,不管一個方法所宣稱的領(lǐng)域,如果它能夠通過從數(shù)據(jù)中學(xué)習(xí)使得我們獲得一個更接近的洞察力或結(jié)果,從而更符合我們的需要,那么,我 們就稱之為機器學(xué)習(xí)。
算法角度
Marshland在《Machine Learning: An Algorithmic Perspective》中采用了Mitchell對于機器學(xué)習(xí)的定義。他在序言中提供了一個促使他寫下這本書的強有力的解釋:
機器學(xué)習(xí)最有趣的特征之一就是,它介于幾個不同理論學(xué)科之間,主要是計算機科學(xué)、統(tǒng)計學(xué)、數(shù)學(xué)和工程學(xué)。機器學(xué)習(xí)經(jīng)常被作為人工智能的一部分來進 行研究,這把它牢牢的置于計算機科學(xué)中。理解為什么這些算法能夠有效工作需要一定的統(tǒng)計學(xué)和數(shù)學(xué)頭腦,這往往是計算機科學(xué)專業(yè)的本科生所缺少的能力。”
這是深刻并有益的。首先,他強調(diào)該領(lǐng)域的多學(xué)科性質(zhì)。雖然我們已經(jīng)從上面的定義中獲得了這樣一種感覺,但他為我們進一步強調(diào)了這一點,機器學(xué)習(xí)來源 于各種各樣的信息科學(xué)。第二,他強調(diào)了過于堅持一個給定的角度的危險性。特別是,算法工程師避開一個方法的數(shù)學(xué)內(nèi)部運作原理的情況。毫無疑問,相反的情 況,統(tǒng)計學(xué)家避開實現(xiàn)和部署的實際問題也是同樣受限的。
維恩圖解
2010年9月,Drew Conway創(chuàng)建了一個漂亮的維恩圖,我發(fā)現(xiàn)這個圖是很有幫助的。他在解釋中評論到,機器學(xué)習(xí)就是黑客技能、數(shù)學(xué)和統(tǒng)計學(xué)知識的加和。
維恩圖
數(shù)據(jù)科學(xué)維恩圖。歸屬于Drew Conway,是一種知識共享許可的非商業(yè)歸屬。
他還把危險區(qū)域描述為黑客技能與專業(yè)知識的加和。這里,他所指的是,那些了解得足夠多的人是危險的。他們能夠訪問和構(gòu)建數(shù)據(jù),了解這個領(lǐng)域,還能運行一種方法并給出結(jié)果,但是他們并不理解結(jié)果的含義。我認(rèn)為這就是Marsland曾經(jīng)可能暗示的意思。
程序員定義

現(xiàn)在我們來談?wù)?,要想把所有這些問題分解為具體細節(jié),程序員需要做些什么。首先,我們來看看抵制我們分解和程序的解決方案的復(fù)雜問題。這構(gòu)成機器學(xué)習(xí)的動力。然后,我們需要找出一個適合于程序員的定義,一個每當(dāng)其他程序員問我們什么是機器學(xué)習(xí)時我們就可以使用的定義。

復(fù)雜問題

作為一名程序員,你最終將會遇到很多類型的頑固抵制邏輯的、程序的解決方案的問題。我的意思是,對于很多類問題,坐下來寫出解決問題所需要的所有條件語句是既不可行也不劃算的。
我聽到你的程序員大腦在大喊,“褻瀆”。
這是真的,以每天的鑒別垃圾郵件問題為例,每當(dāng)介紹機器學(xué)習(xí)時,它是一直被使用的例子。當(dāng)一封郵件到來時,你將怎樣寫一個程序來過濾垃圾郵件,決定是將它放在垃圾箱還是收件箱中?
你將可能開始收集一些實例并深入研究它們,你將尋找垃圾郵件和非垃圾郵件所特有的模式,你還將會考慮抽象出那些模式以便你的啟發(fā)式學(xué)習(xí)將來能夠應(yīng)用 到新案例之中。你將會忽視那些永遠不會被看到的古怪郵件,你將能夠輕松的提高準(zhǔn)確率并為邊界情況制定特殊的程序。你將反復(fù)多次的瀏覽郵件并抽象出新模式來 改善做出的決策。
在那里有一個機器學(xué)習(xí)算法,所有這些事情都由程序員而不是電腦來完成。這種手動導(dǎo)出的硬編碼系統(tǒng)將具有同程序員一樣的、從數(shù)據(jù)中提取規(guī)則并將其實現(xiàn)的能力。
這能夠做到,但是它將花費太多的資源,而且會是一個持續(xù)的噩夢。
機器學(xué)習(xí)
在上面的例子中,我確信你下定決心尋求自動化的那一部分程序員大腦,能夠看到自動化和優(yōu)化從例子中提取模式這一過程的機會。機器學(xué)習(xí)方法就是這樣一個自動化過程。
在垃圾/非垃圾郵件的例子中,經(jīng)驗E就是我們所收集的郵件,任務(wù)T是一個決策問題(也稱為分類),它需要標(biāo)記每一封郵件是否為垃圾郵件,并將其放入 到正確的文件夾中。我們的性能度量將是一些類似于準(zhǔn)確率之類的、介于0%-100%之間的一個百分比(正確決策數(shù)除以總的決策數(shù)再乘以100)。
準(zhǔn)備這樣一個決策程序的過程通常被稱為訓(xùn)練,收集到的實例稱為訓(xùn)練集,程序即為一個模型,一個把非垃圾郵件從垃圾郵件的分離出來的問題的模型。作為 程序員,我們喜歡這個術(shù)語,一個模型具有特定的狀態(tài)并且需要被保持,訓(xùn)練是一個執(zhí)行一次的過程,也可能會根據(jù)需要重新運行,分類是待完成的任務(wù)。這些對我 們來說都是有意義的。
我們能夠看到上面定義中所用到的術(shù)語并不是很適合于程序員。從技術(shù)上來說,我們寫的所有的程序都是一個自動化操作,因此,機器學(xué)習(xí)是自動化學(xué)習(xí)的這一說明是沒有意義的。
一個現(xiàn)成的小笑話
那么,讓我們來看看我們是否可以使用這些片段,構(gòu)建一個機器學(xué)習(xí)的程序員定義。
機器學(xué)習(xí)是一個源于數(shù)據(jù)的模型的訓(xùn)練過程,最終歸納出一個面向一種性能度量的決策。
“訓(xùn)練一個模型”代表訓(xùn)練實例,“模型”表示通過經(jīng)驗學(xué)習(xí)獲得的狀態(tài),“歸納出一個決策”代表基于輸入做出決策的能力,并且需要一個用于未來決策的、不可見的預(yù)期輸入。最后,“面向一種性能度量”是指準(zhǔn)備好的模型的針對性需要和定向特性。
我不是詩人,你能想出一個更準(zhǔn)確、更簡潔的機器學(xué)習(xí)的程序員定義嗎?請留下你的評論。



數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }