精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

基于Numpy實現(xiàn)神經網絡:如何加入和調整dropout?

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-04-15 09:59 ? 次閱讀

和DeepMind數(shù)據科學家、Udacity深度學習導師Andrew Trask一起,基于Numpy手寫神經網絡,更深刻地理解dropout這一概念。

總結:幾乎所有目前最先進的神經網絡都用到了dropout. 這篇教程介紹如何通過幾行Python代碼在神經網絡中加入Dropout. 讀完這篇教程之后,你將得到一個可以工作的dropout實現(xiàn),并且掌握在任何神經網絡中加入和調整dropout的技能。

如果你對我的文章感興趣,歡迎在推特上關注 @iamtrask,也歡迎給我反饋。

直接給我代碼

import numpy as np

X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])

y = np.array([[0,1,1,0]]).T

alpha,hidden_dim,dropout_percent,do_dropout = (0.5,4,0.2,True)

synapse_0 = 2*np.random.random((3,hidden_dim)) - 1

synapse_1 = 2*np.random.random((hidden_dim,1)) - 1

for j in xrange(60000):

layer_1 = (1/(1+np.exp(-(np.dot(X,synapse_0)))))

if(do_dropout):

layer_1 *= np.random.binomial([np.ones((len(X),hidden_dim))],1-dropout_percent)[0] * (1.0/(1-dropout_percent))

layer_2 = 1/(1+np.exp(-(np.dot(layer_1,synapse_1))))

layer_2_delta = (layer_2 - y)*(layer_2*(1-layer_2))

layer_1_delta = layer_2_delta.dot(synapse_1.T) * (layer_1 * (1-layer_1))

synapse_1 -= (alpha * layer_1.T.dot(layer_2_delta))

synapse_0 -= (alpha * X.T.dot(layer_1_delta))

一、什么是dropout?

如同前一篇文章提到的,神經網絡是一個美化的搜索問題。神經網絡中的每一個節(jié)點搜索輸入數(shù)據和正確的輸出數(shù)據之間的相關性。

考慮前一篇中的圖片。曲線表示網絡對應每個具體權重產生的誤差。曲線的低點(讀作:低誤差)標志著權重“找到”輸入和輸出之間的關系。圖中的球標志著不同的權重。它們都試圖找到低點。

考慮顏色。球的初始位置是隨機生成的(就像神經網絡的權重)。如果兩個球隨機開始于同一顏色區(qū)域,那么它們將收斂于同一點。這里存在冗余!浪費算力和內存!這正是神經網絡中發(fā)生的事。

為何dropout:dropout有助于防止權重收斂于同一位置。它通過在前向傳播階段隨機關閉節(jié)點做到這一點。接著在反向傳播時激活所有節(jié)點。讓我們仔細看看。

二、如何加入和調整dropout?

為了在網絡層上執(zhí)行dropout,我們在前向傳播階段隨機設置層的值為0——見第10行。

第9行:參數(shù)化是否使用dropout. 我們只打算在訓練階段使用dropout. 不要在運行時使用dropout,也不要在測試數(shù)據集上使用dropout. 此外,這一行也意味著我們需要增大前向傳播的值。這與關閉的值的數(shù)目成正比。一個簡單的直覺是,如果你關閉一半的隱藏層,那么你需要加倍前向傳播的值,以正確補償輸出。感謝@karpathy指出這一點。

調整的最佳實踐

第4行:參數(shù)化dropout百分比。這影響關閉任何一個節(jié)點的概率。對隱藏層而言,較好的初始值設定是50%. 如果將dropout應用于輸入層,最好不要超過25%.

Hinton主張在調整dropout的同時調整隱藏層的大小。首先關閉dropout,增加隱藏層尺寸,直到你完美地擬合了你的數(shù)據。接著,使用相同的隱藏層尺寸,開啟dropout進行訓練。這應該是一個近乎最優(yōu)的配置。一旦結束訓練,關閉dropout。萬歲!你有了一個可以工作的神經網絡!

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

    關注

    42

    文章

    4717

    瀏覽量

    100009
  • 深度學習
    +關注

    關注

    73

    文章

    5422

    瀏覽量

    120593

原文標題:基于Numpy實現(xiàn)神經網絡:dropout

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

收藏 人收藏

    評論

    相關推薦

    labview BP神經網絡實現(xiàn)

    請問:我在用labview做BP神經網絡實現(xiàn)故障診斷,在NI官網找到了機器學習工具包(MLT),但是里面沒有關于這部分VI的幫助文檔,對于”BP神經網絡分類“這個范例有很多不懂的地方,比如
    發(fā)表于 02-22 16:08

    【PYNQ-Z2試用體驗】神經網絡基礎知識

    語言,使用numpy.dot方法即可計算矩陣乘法。 以上便是一個簡單神經網絡的基本原理,對神經網絡有了基本的認識之后,我們才能進行復雜的神經網絡設計。總結本文講解了
    發(fā)表于 03-03 22:10

    【案例分享】ART神經網絡與SOM神經網絡

    今天學習了兩個神經網絡,分別是自適應諧振(ART)神經網絡與自組織映射(SOM)神經網絡。整體感覺不是很難,只不過一些最基礎的概念容易理解不清。首先ART神經網絡是競爭學習的一個代表,
    發(fā)表于 07-21 04:30

    人工神經網絡實現(xiàn)方法有哪些?

    人工神經網絡(Artificial Neural Network,ANN)是一種類似生物神經網絡的信息處理結構,它的提出是為了解決一些非線性,非平穩(wěn),復雜的實際問題。那有哪些辦法能實現(xiàn)人工神經
    發(fā)表于 08-01 08:06

    如何構建神經網絡

    原文鏈接:http://tecdat.cn/?p=5725 神經網絡是一種基于現(xiàn)有數(shù)據創(chuàng)建預測的計算系統(tǒng)。如何構建神經網絡神經網絡包括:輸入層:根據現(xiàn)有數(shù)據獲取輸入的層隱藏層:使用反向傳播優(yōu)化輸入變量權重的層,以提高模型的預測
    發(fā)表于 07-12 08:02

    matlab實現(xiàn)神經網絡 精選資料分享

    神經神經網絡,對于神經網絡實現(xiàn)是如何一直沒有具體實現(xiàn)一下:現(xiàn)看到一個簡單的神經網絡模型用于訓
    發(fā)表于 08-18 07:25

    基于BP神經網絡的PID控制

    最近在學習電機的智能控制,上周學習了基于單神經元的PID控制,這周研究基于BP神經網絡的PID控制。神經網絡具有任意非線性表達能力,可以通過對系統(tǒng)性能的學習來實現(xiàn)具有最佳組合的PID控
    發(fā)表于 09-07 07:43

    使用keras搭建神經網絡實現(xiàn)基于深度學習算法的股票價格預測

    本文使用keras搭建神經網絡實現(xiàn)基于深度學習算法的股票價格預測。本文使用的數(shù)據來源為tushare,一個免費開源接口;且只取開票價進行預測。import numpy as npimport
    發(fā)表于 02-08 06:40

    基于Numpy實現(xiàn)同態(tài)加密神經網絡

    在分布式AI環(huán)境下,同態(tài)加密神經網絡有助于保護商業(yè)公司知識產權和消費者隱私。本文介紹了如何基于Numpy實現(xiàn)同態(tài)加密神經網絡
    的頭像 發(fā)表于 03-27 14:52 ?7780次閱讀
    基于<b class='flag-5'>Numpy</b><b class='flag-5'>實現(xiàn)</b>同態(tài)加密<b class='flag-5'>神經網絡</b>

    基于Numpy實現(xiàn)神經網絡:反向傳播

    和DeepMind數(shù)據科學家、Udacity深度學習導師Andrew Trask一起,基于Numpy手寫神經網絡,更深刻地理解反向傳播這一概念。
    的頭像 發(fā)表于 04-01 09:29 ?5013次閱讀
    基于<b class='flag-5'>Numpy</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>神經網絡</b>:反向傳播

    如何使用numpy搭建一個卷積神經網絡詳細方法和程序概述

    內容將繼續(xù)秉承之前 DNN 的學習路線,在利用Tensorflow搭建神經網絡之前,先嘗試利用numpy手動搭建卷積神經網絡,以期對卷積神經網絡的卷積機制、前向傳播和反向傳播的原理和過
    的頭像 發(fā)表于 10-20 10:55 ?5980次閱讀

    如何使用Numpy搭建神經網絡

    很多同學入門機器學習之后,直接用TensorFlow調包實現(xiàn)神經網絡,對于神經網絡內在機理知之甚少。
    的頭像 發(fā)表于 05-18 11:02 ?3504次閱讀
    如何使用<b class='flag-5'>Numpy</b>搭建<b class='flag-5'>神經網絡</b>

    神經網絡中的dropout是什么?怎么使用

    Dropout是在《ImageNet Classification with Deep Convolutional》這篇論文里提出來為了防止神經網絡的過擬合。它的主要思想是讓隱藏層的節(jié)點在每次迭代時(包括正向和反向傳播)有一定幾率(keep-prob)失效。
    的頭像 發(fā)表于 01-28 17:44 ?2.2w次閱讀

    卷積神經網絡和深度神經網絡的優(yōu)缺點 卷積神經網絡和深度神經網絡的區(qū)別

    深度神經網絡是一種基于神經網絡的機器學習算法,其主要特點是由多層神經元構成,可以根據數(shù)據自動調整神經元之間的權重,從而
    發(fā)表于 08-21 17:07 ?3612次閱讀

    使用NumPy實現(xiàn)前饋神經網絡

    要使用NumPy實現(xiàn)一個前饋神經網絡(Feedforward Neural Network),我們需要從基礎開始構建,包括初始化網絡參數(shù)、定義激活函數(shù)及其導數(shù)、
    的頭像 發(fā)表于 07-11 16:30 ?1286次閱讀