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

熱線電話:13121318867

登錄
首頁精彩閱讀用11個事實為8歲女兒解讀深度學習
用11個事實為8歲女兒解讀深度學習
2019-08-28
收藏
用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

作者 | Jean-Louis Queguiner

來源 | 機器之心

神經(jīng)網(wǎng)絡就像數(shù)數(shù)一樣簡單」,「卷積層只是一個蝙蝠信號燈」……在本文中,一位奶爸從手寫數(shù)字識別入手,用這樣簡單的語言向自己 8 歲的女兒解釋了一下「深度學習」。當然,用這篇文章向女朋友(如果有的話)科普自己的工作也是可以的。

機器學習,尤其是深度學習是一個熱門話題,你肯定會在媒體上看到流行語「人工智能」。

然而,這些并非新概念。第一個人工神經(jīng)網(wǎng)絡(ANN)是在 40 年代引入的。那么為什么最近的熱點話題都是關于神經(jīng)網(wǎng)絡深度學習的呢?我們將在 GPU 和機器學習的一系列博客文章中探討這些概念。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

在 80 年代,我記得我父親構建了用于銀行支票的字符識別工具。檢查這么多不同類型的筆跡真的是一件痛苦的事,因為他需要一個方程來適應所有的變化。

在過去幾年中,很明顯,處理這類問題的最佳方法是通過卷積神經(jīng)網(wǎng)絡。人類設計的方程不再適合處理無限的手寫模式。

讓我們來看看最經(jīng)典的例子之一:構建一個數(shù)字識別系統(tǒng),一個識別手寫數(shù)字的神經(jīng)網(wǎng)絡。

事實 1:神經(jīng)網(wǎng)絡就像數(shù)數(shù)一樣簡單

我們首先計算最上面一行的紅色形狀在每個黑色手寫數(shù)字中出現(xiàn)了幾次。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲手寫數(shù)字的簡化矩陣

現(xiàn)在讓我們嘗試通過計算具有相同紅色形狀的匹配數(shù)來識別(推斷)新的手寫數(shù)字。然后我們將其與之前的表格進行比較,以確定這個數(shù)字與哪個數(shù)字有最強的關聯(lián):

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲匹配手寫數(shù)字的形狀

恭喜!你剛剛構建了世界上最簡單的神經(jīng)網(wǎng)絡系統(tǒng),用于識別手寫數(shù)字。

事實 2:圖像只是一個矩陣

計算機將圖像視為矩陣。一張黑白圖像是個 2D 矩陣。

我們來考慮一張圖像。為了簡單起見,我們拍攝一張數(shù)字 8 的小黑白圖像,方形尺寸為 28 像素。

矩陣的每個單元表示從 0(表示黑色)到 255(表示純白色像素)的像素強度。

因此,圖像將表示為以下 28×28 的像素矩陣。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲手寫數(shù)字 8 的圖像和相關的強度矩陣

事實 3:卷積層只是一個蝙蝠信號燈

為了確定圖片中顯示的圖案(此處指手寫數(shù)字 8),我們將使用一種蝙蝠信號燈/手電筒。在機器學習中,手電筒被稱為過濾器(filter)。該過濾器用于執(zhí)行 Gimp 等常見圖像處理軟件中用到的經(jīng)典卷積矩陣計算。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

過濾器將掃描圖片,以便在圖像中找到圖案,并在匹配成功時觸發(fā)正反饋。它有點像兒童形狀分類盒:三角形過濾器匹配三角形孔,方形過濾器匹配方孔等。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲圖像過濾器像兒童形狀分類盒一樣工作。

事實 4:過濾器匹配是一項易并行任務

更科學地來講,圖像過濾過程看起來有點像下面的動畫。如你所見,過濾器掃描的每個步驟都是相互獨立的,這意味著此任務可以高度并行化。

要注意,數(shù)十個過濾器將同時運行,因為它們不相互依賴。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

事實 5:盡可能多次重復過濾操作(矩陣卷積)

我們剛剛看到,輸入圖像/矩陣使用多個矩陣卷積進行過濾。

為了提高圖像識別的準確率,只需從前一個操作中獲取過濾后的圖像,然后一次又一次地過濾......

當然,我們過分簡化了一些事情,但通常你使用的過濾器越多,按順序重復這個操作的次數(shù)越多,你的結果就越精確。

這就像創(chuàng)建新的抽象層以獲得更清晰的對象過濾器描述,從原始過濾器到看起來像邊緣、輪子、正方形、立方體等的過濾器......

事實 6:矩陣卷積只是乘、加運算

一圖勝千言:下圖是使用卷積過濾器(3×3)過濾的源圖像(8×8)的簡化視圖。手電筒(此處為 Sobel Gx 過濾器)的投影提供一個值。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲應用于輸入矩陣的卷積過濾器(Sobel Gx)示例

這就是這種方法的神奇之處,簡單的矩陣運算是高度并行化的,完全符合通用圖形處理單元的用例。

事實 7:需要簡化和總結檢測到的內容嗎?只需使用 max()

我們需要總結過濾器檢測到的內容,以便學到概括性的知識。

為此,我們將對先前過濾操作的輸出進行采樣。

此操作稱為池化或下采樣,但實際上它是為了減小矩陣的大小。

你可以使用任何縮小操作,例如:最大化,最小化,取平均值,計數(shù),取中位數(shù),求和等等。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲最大池化層示例

事實 8:將輸出扁平化,得出最終結果

不要忘記我們正在研究的神經(jīng)網(wǎng)絡的主要目的:建立一個圖像識別系統(tǒng),也稱為圖像分類。

如果神經(jīng)網(wǎng)絡的目的是檢測手寫數(shù)字,那么輸入圖像最后將被映射到 10 個類:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]。

要在通過所有這些過濾器和下采樣層之后,才將此輸入映射到類,我們將只有 10 個神經(jīng)元(每個神經(jīng)元代表一個類),每個神經(jīng)元將連接到最后一個子采樣層。

以下是由 Yann Lecun 設計的原始 LeNet-5 卷積神經(jīng)網(wǎng)絡的概述,他是早期采用該技術進行圖像識別的人之一。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲原始論文中的 LeNet-5 架構

事實 9:深度學習只是基于反饋回路的持續(xù)改進

技術之美不僅來自卷積,而且來自網(wǎng)絡自身學習和適應的能力。通過實現(xiàn)名為反向傳播的反饋回路,網(wǎng)絡將使用權重來減輕和抑制不同層中的一些「神經(jīng)元」。

我們來看看網(wǎng)絡的輸出,如果猜測(輸出 0, 1, 2, 3, 4, 5, 6, 7, 8 或 9)是錯誤的,我們要看一下是哪個/些過濾器「出了錯」,找到之后,我們給這個/些過濾器一個小小的權重,這樣它們下次就不會犯同樣的錯誤。瞧!系統(tǒng)在學習并不斷改進自己。

事實 10:這一切都說明,深度學習是易并行過程

提取數(shù)千個圖像,運行數(shù)十個過濾器,采用下采樣,扁平化輸出...... 所有這些步驟可以并行完成,這使得系統(tǒng)易于并行。它只是 GPGPU(通用圖形處理單元)的完美用例,非常適合大規(guī)模并行計算。

事實 11:需要更精確?那網(wǎng)絡就再深一點

當然這有點過于簡單化,但如果我們看一下主要的「圖像識別競賽」,即 ImageNet 挑戰(zhàn),我們就可以看到錯誤率隨著神經(jīng)網(wǎng)絡的深度增加而降低。人們普遍認為,排除其他因素,網(wǎng)絡深度的增加將帶來更好的泛化能力和準確性。

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲Imagenet 挑戰(zhàn)賽獲勝者錯誤率 VS 網(wǎng)絡中的層數(shù)

結論

我們簡要介紹了應用于圖像識別的深度學習概念。值得注意的是,幾乎所有用于圖像識別的新架構(醫(yī)療、衛(wèi)星、自動駕駛......)都使用相同的原理,只是具有不同數(shù)量的層,不同類型的濾波器,不同的初始化點,不同的矩陣大小,不同的技巧(如圖像增強、dropout、權重壓縮...)。概念都是一樣的:

用11個事實為8歲女兒解讀<a href='/map/shenduxuexi/' style='color:#000;font-size:inherit;'>深度學習</a>

▲手寫數(shù)字識別過程

深度學習模型的訓練和推理可以歸結為并行完成的大量基本矩陣運算,確切地說,這正是我們已有的圖形處理器(GPU)的用途。

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

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

數(shù)據(jù)分析師考試動態(tài)
數(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(); // 調用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調,回調的第一個參數(shù)驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產品形式,包括: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); }