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

熱線電話:13121318867

登錄
首頁精彩閱讀什么是機器學習:一次權威定義之旅
什么是機器學習:一次權威定義之旅
2017-12-31
收藏

什么是機器學習:一次權威定義之旅

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

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

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

復雜問題

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



數據分析咨詢請掃描二維碼

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

數據分析師資訊
更多

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(), // 加隨機數防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數1:配置參數 // 參數2:回調,回調的第一個參數驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產品形式,包括:float,popup width: "280px", https: true // 更多配置參數說明請參見: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); }