日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习(二十三)Maxout网络学习-ICML 2013

發布時間:2025/3/21 pytorch 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习(二十三)Maxout网络学习-ICML 2013 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Maxout網絡學習

原文地址:http://blog.csdn.net/hjimce/article/details/50414467

作者:hjimce

一、相關理論

? ?本篇博文主要講解2013年,ICML上的一篇文獻:《Maxout ?Networks》,這個算法我目前也很少用到,個人感覺最主要的原因應該是這個算法參數個數會成k倍增加(k是maxout的一個參數),不過沒關系,對于我們來說知識積累才是最重要的,指不定某一天我們就需要用到這個算法,技多不壓身。個人感覺Maxout網絡和Dropout有很多相似的地方。

? ? 本篇博文將從什么是maxout網絡講起,先解答maxout的源碼層實現,因為很多人最感興趣的還是算法要怎么實現,當然我也是這樣的。我看文獻,一般最在意的還是源碼的實現,有的文獻理論公式推導了十幾頁,結果5行代碼搞定,我看到想哭,這也許就是我討厭做學術研究的原因吧。知道了源碼怎么實現后,我們簡單啰嗦一下maxout相關的理論意義。

二、Maxout算法流程

1、算法概述

開始前我們先講解什么叫maxout networks,等我們明白了什么叫maxout 網絡后,再對maxout的相理論意義做出解釋。Maxout是深度學習網絡中的一層網絡,就像池化層、卷積層一樣等,我們可以把maxout 看成是網絡的激活函數層,這個后面再講解,本部分我們要先知道什么是maxout。我們假設網絡某一層的輸入特征向量為:X=(x1,x2,……xd),也就是我們輸入是d個神經元。Maxout隱藏層每個神經元的計算公式如下:

?

上面的公式就是maxout隱藏層神經元i的計算公式。其中,k就是maxout層所需要的參數了,由我們人為設定大小。就像dropout一樣,也有自己的參數p(每個神經元dropout概率),maxout的參數是k。公式中Z的計算公式為:

?

權重w是一個大小為(d,m,k)三維矩陣,b是一個大小為(m,k)的二維矩陣,這兩個就是我們需要學習的參數。如果我們設定參數k=1,那么這個時候,網絡就類似于以前我們所學普通的MLP網絡。

我們可以這么理解,本來傳統的MLP算法在第i層到第i+1層,參數只有一組,然而現在我們不怎么干了,我們在這一層同時訓練n組參數,然后選擇激活值最大的作為下一層神經元的激活值。下面還是用一個例子進行講解,比較容易搞懂。

為了簡單起見,假設我們網絡第i層有2個神經元x1、x2,第i+1層的神經元個數為1個,如下圖所示:


(1)以前MLP的方法。我們要計算第i+1層,那個神經元的激活值的時候,傳統的MLP計算公式就是:

z=W*X+b

out=f(z)

其中f就是我們所謂的激活函數,比如Sigmod、Relu、Tanh等。

(2)Maxout 的方法。如果我們設置maxout的參數k=5,maxout層就如下所示:


相當于在每個輸出神經元前面又多了一層。這一層有5個神經元,此時maxout網絡的輸出計算公式為:

z1=w1*x+b1

z2=w2*x+b2

z3=w3*x+b3

z4=w4*x+b4

z5=w5*x+b5

out=max(z1,z2,z3,z4,z5)

所以這就是為什么采用maxout的時候,參數個數成k倍增加的原因。本來我們只需要一組參數就夠了,采用maxout后,就需要有k組參數。

三、源碼實現

ok,為了學習maxout源碼的實現過程,我這邊引用keras的源碼maxout的實現,進行講解。keras的網站為:http://keras.io/? ?。項目源碼網站為:https://github.com/fchollet/keras。下面是keras關于maxout網絡層的實現函數:

[python]?view plaincopy
  • #maxout?網絡層類的定義??
  • class?MaxoutDense(Layer):??
  • ????#?網絡輸入數據矩陣大小為(nb_samples,?input_dim)??
  • ????#?網絡輸出數據矩陣大小為(nb_samples,?output_dim)??
  • ????input_ndim?=?2??
  • ???#nb_feature就是我們前面說的k的個數了,這個是maxout層特有的參數??
  • ????def?__init__(self,?output_dim,?nb_feature=4,??
  • ?????????????????init='glorot_uniform',?weights=None,??
  • ?????????????????W_regularizer=None,?b_regularizer=None,?activity_regularizer=None,??
  • ?????????????????W_constraint=None,?b_constraint=None,?input_dim=None,?**kwargs):??
  • ????????self.output_dim?=?output_dim??
  • ????????self.nb_feature?=?nb_feature??
  • ????????self.init?=?initializations.get(init)??
  • ??
  • ????????self.W_regularizer?=?regularizers.get(W_regularizer)??
  • ????????self.b_regularizer?=?regularizers.get(b_regularizer)??
  • ????????self.activity_regularizer?=?regularizers.get(activity_regularizer)??
  • ??
  • ????????self.W_constraint?=?constraints.get(W_constraint)??
  • ????????self.b_constraint?=?constraints.get(b_constraint)??
  • ????????self.constraints?=?[self.W_constraint,?self.b_constraint]??
  • ??
  • ????????self.initial_weights?=?weights??
  • ????????self.input_dim?=?input_dim??
  • ????????if?self.input_dim:??
  • ????????????kwargs['input_shape']?=?(self.input_dim,)??
  • ????????self.input?=?K.placeholder(ndim=2)??
  • ????????super(MaxoutDense,?self).__init__(**kwargs)??
  • ????#參數初始化部分??
  • ????def?build(self):??
  • ????????input_dim?=?self.input_shape[1]??
  • ??
  • ????????self.W?=?self.init((self.nb_feature,?input_dim,?self.output_dim))#nb_feature是我們上面說的k。??
  • ????????self.b?=?K.zeros((self.nb_feature,?self.output_dim))??
  • ??
  • ????????self.params?=?[self.W,?self.b]??
  • ????????self.regularizers?=?[]??
  • ??
  • ????????if?self.W_regularizer:??
  • ????????????self.W_regularizer.set_param(self.W)??
  • ????????????self.regularizers.append(self.W_regularizer)??
  • ??
  • ????????if?self.b_regularizer:??
  • ????????????self.b_regularizer.set_param(self.b)??
  • ????????????self.regularizers.append(self.b_regularizer)??
  • ??
  • ????????if?self.activity_regularizer:??
  • ????????????self.activity_regularizer.set_layer(self)??
  • ????????????self.regularizers.append(self.activity_regularizer)??
  • ??
  • ????????if?self.initial_weights?is?not?None:??
  • ????????????self.set_weights(self.initial_weights)??
  • ????????????del?self.initial_weights??
  • ??
  • ????def?get_output(self,?train=False):??
  • ????????X?=?self.get_input(train)#需要切記這個x的大小是(nsamples,input_num)???
  • ????????#?--?don't?need?activation?since?it's?just?linear.??
  • ????????output?=?K.max(K.dot(X,?self.W)?+?self.b,?axis=1)#maxout激活函數??
  • ????????return?output??
  • 看上面的代碼的話,其實只需要看get_output()函數,就知道maxout的實現了。所以說有的時候,一篇文獻的代碼,其實就只有幾行代碼,maxout就僅僅只有一行代碼而已:

    [python]?view plaincopy
  • output?=?K.max(K.dot(X,?self.W)?+?self.b,?axis=1)#maxout激活函數??
  • 下面在簡單啰嗦一下相關的理論,畢竟文獻的作者寫了那么多頁,我們總得看一看才行。Maxout可以看成是一個激活函數?,然而它與原來我們以前所學的激活函數又有所不同。傳統的激活函數:

    比如閾值函數、S函數等。maxout激活函數,它具有如下性質:

    1、maxout激活函數并不是一個固定的函數,不像Sigmod、Relu、Tanh等函數,是一個固定的函數方程

    2、它是一個可學習的激活函數,因為我們W參數是學習變化的。

    3、它是一個分段線性函數:


    然而任何一個凸函數,都可以由線性分段函數進行逼近近似。其實我們可以把以前所學到的激活函數:relu、abs激活函數,看成是分成兩段的線性函數,如下示意圖所示:

     maxout的擬合能力是非常強的,它可以擬合任意的的凸函數。最直觀的解釋就是任意的凸函數都可以由分段線性函數以任意精度擬合(學過高等數學應該能明白),而maxout又是取k個隱隱含層節點的最大值,這些”隱隱含層"節點也是線性的,所以在不同的取值范圍下,最大值也可以看做是分段線性的(分段的個數與k值有關)-本段摘自:http://www.cnblogs.com/tornadomeet/p/3428843.html

    maxout是一個函數逼近器對于一個標準的MLP網絡來說,如果隱藏層的神經元足夠多,那么理論上我們是可以逼近任意的函數的。類似的,對于maxout 網絡也是一個函數逼近器。

    定理1:對于任意的一個連續分段線性函數g(v),我們可以找到兩個凸的分段線性函數h1(v)、h2(v),使得這兩個凸函數的差值為g(v):



    參考文獻:

    1、《Maxout ?Networks》

    2、http://www.cnblogs.com/tornadomeet/p/3428843.html

    **********************作者:hjimce ? 時間:2015.12.20 ?聯系QQ:1393852684 ? 地址:http://blog.csdn.net/hjimce? ?原創文章,版權所有,轉載請保留本行信息(不允許刪除)

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的深度学习(二十三)Maxout网络学习-ICML 2013的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 精品国精品国产 | 亚洲色图欧美色 | 91精品国产综合久久久蜜臀 | av在线网址大全 | 精品动漫3d一区二区三区免费版 | 婷婷导航 | 裸体黄色片| 精品国产av鲁一鲁一区 | 少妇一区二区视频 | 自拍偷拍国产 | 国产在线观看av | 懂色av蜜臀av粉嫩av分享 | 国产在线视频第一页 | 久久久婷| 亚洲国产综合网 | 亚洲欧美另类日韩 | 嫩草视频一区二区三区 | 成人午夜免费电影 | 日韩欧美精品一区二区三区 | 纯爱无遮挡h肉动漫在线播放 | 嫩草av在线 | 日本熟妇一区二区三区四区 | 六月婷婷久久 | 成人乱人乱一区二区三区一级视频 | 777米奇影视第四色 五月丁香久久婷婷 | 一区二区福利电影 | 黄色网址视频 | 久草午夜| 星空大象mv高清在线观看免费 | 在线看黄色的网站 | 中文字幕乱码一区二区三区 | 武林美妇肉伦娇喘呻吟 | 国产一区二区网站 | 日韩中出 | 午夜视频在线免费观看 | 伊人射 | 夜夜爽天天操 | 999伊人| 在线观看中文字幕码 | 日本中文在线 | 亚洲激情啪啪 | 国产呦小j女精品视频 | 亚洲第一色区 | 国产高清视频一区二区 | 肉丝肉足丝袜一区二区三区 | 深爱五月激情网 | 日韩欧美一区二区三区在线 | 国产伦精品一区二区三区在线观看 | 国产femdom调教7777 | 九九热在线视频 | 日韩欧美高清在线观看 | 国产欧美日韩在线观看 | 亲子乱aⅴ一区二区三区 | 亚洲视频99 | 免费观看理伦片在线播放视频软件 | 日本黄在线观看 | 精品美女久久久 | 一区二区三区影院 | 日日夜夜撸撸 | 一本一道久久a久久精品蜜桃 | 国产成人91精品 | 欧美大片在线观看 | 国产大片中文字幕在线观看 | 狠狠操天天干 | 美女视频在线观看免费 | 日本免费网址 | 在线综合网 | 久久发布国产伦子伦精品 | 综合网在线观看 | 国产精品1000部啪视频 | 任你躁av一区二区三区 | 欧美日韩久久 | 999国产精品视频免费 | 后进极品美女白嫩翘臀 | 天天射一射| 大象传媒成人在线观看 | 国产成人77亚洲精品www | 蜜桃成人无码区免费视频网站 | 国产伦精品一区二区三区精品 | 男人天堂网在线 | 久久免费视频精品 | 玉米地疯狂的吸允她的奶视频 | 亚洲福利视频一区 | 色噜噜狠狠狠综合曰曰曰88av | 91免费黄色 | 日本捏奶吃奶的视频 | 欧美人妻一区二区 | 天天曰天天 | 吸咬奶头狂揉60分钟视频 | aaa色| av在线片 | 男女做激情爱呻吟口述全过程 | 亚洲精品中文字幕乱码三区91 | 欧美aⅴ | 欧美久久成人 | 天天玩夜夜操 | 成人国产精品视频 | 日韩中文在线字幕 | 亚洲午夜精品 |