开心六月综合激情婷婷|欧美精品成人动漫二区|国产中文字幕综合色|亚洲人在线成视频

    1. 
      
        <b id="zqfy3"><legend id="zqfy3"><fieldset id="zqfy3"></fieldset></legend></b>
          <ul id="zqfy3"></ul>
          <blockquote id="zqfy3"><strong id="zqfy3"><dfn id="zqfy3"></dfn></strong></blockquote>
          <blockquote id="zqfy3"><legend id="zqfy3"></legend></blockquote>
          打開APP
          userphoto
          未登錄

          開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

          開通VIP
          深度學(xué)習(xí)之線性單元(梯度下降算法)(二)

          關(guān)于線性

          線性的概念:
          “線性”=“齊次性” “可加性”,
          "齊次性"是指類似于: f(ax)=af(x),
          "可加性"是指類似于: f(x y)=f(x) f(y),

          而對(duì)于單層感知器來(lái)說(shuō),是無(wú)法處理非線性的問題。非線性及不符合上述的條件的集合。
          例如異或問題:

          無(wú)法找到一個(gè)合適的直線,將兩邊分離開來(lái)。
          所以這時(shí)候就需要用到了delta法則。
          ##delta法則

          delta 法則的關(guān)鍵思想是使用梯度下降(gradient descent)來(lái)搜索可能權(quán)向量的假設(shè)空間, 以找到最佳擬合訓(xùn)練樣例的權(quán)向量。

          由于在真實(shí)情況下,并不能保證訓(xùn)練集是線性可分的。因而,當(dāng)訓(xùn)練集線性不可分時(shí)該如何訓(xùn)練感知器呢?這時(shí)我們使用delta法則,通過(guò)這種方式可以找出收斂到目標(biāo)的最佳近似值。

          其原理是:

          因?yàn)槠浼せ詈瘮?shù)是線性的,所以一般被稱為線性單元。

          激活函數(shù):

          用向量表示就是:

          當(dāng)然在這一種情況下,還需要考慮其每次計(jì)算后的結(jié)果的誤差,根據(jù)誤差來(lái)調(diào)整權(quán)值。
          而這就需要用到代價(jià)函數(shù):


          其中y為期望輸出,y`為實(shí)際輸出。

          在求得誤差結(jié)果最小的情況下,就是我們所求的最優(yōu)解。注:這里的1/2只是為了后面的計(jì)算方便,沒有實(shí)際意義。

          為了求得代價(jià)函數(shù)最小,因?yàn)椋?br>


          對(duì)路所有的樣本的誤差和來(lái)說(shuō):

          所以公式可以改寫為:

          因?yàn)閷?duì)于樣本來(lái)說(shuō)(其實(shí)是監(jiān)督學(xué)習(xí)的方式),x和y都是已知的,所以上述的公式中其實(shí)就是w和E(w)的關(guān)系。對(duì)整個(gè)代價(jià)函數(shù)來(lái)說(shuō),其實(shí)只有一個(gè)變量w。

          這樣如果想要獲取E(w)的最小值,及誤差最小,只需要獲取的上述變量的最小值即可。因此我們可以使用導(dǎo)數(shù)的方式來(lái)求取最小值。當(dāng)然計(jì)算機(jī)是不會(huì)解方程的,所以只能是一步一步的嘗試出最小值。

          因此引進(jìn)梯度下降算法:

          通過(guò)不斷的改變w的值,來(lái)找到使得E(w)最小的位置:

          對(duì)w求導(dǎo)結(jié)果:

          這樣就獲取的權(quán)值調(diào)整公式。

          我們可以來(lái)看一下推斷出來(lái)的公式和上一章的單層感知器的差異:

          其實(shí)只有激活函數(shù)不一樣?。?!
          下面舉個(gè)簡(jiǎn)單的例子說(shuō)明一下:

          問題

          輸入一組工作年限 [[5], [3], [8], [1.4], [10.1]];
          期望輸出其代表的年薪:[5500, 2300, 7600, 1800, 11400]
          通過(guò)隨意輸入一個(gè)工作年限來(lái)預(yù)算其的年薪。

          代碼

          # coding=utf-8
          # numpy 支持高級(jí)大量的維度數(shù)組與矩陣運(yùn)算
          import numpy  as np
          # Matplotlib 是一個(gè) Python 的 2D繪圖庫(kù)
          import matplotlib.pyplot as plt
          
          
          #定義坐標(biāo),設(shè)定5組輸入數(shù)據(jù),每組為(x0,x1,)
          X=np.array([[1,5],
                      [1,3],
                      [1,8],
                      [1,1.4],
                      [1,10.1]]);
          
          #設(shè)定輸入向量的期待輸出值
          Y=np.array([5500,2300,7600,1800,11400]);
          
          #設(shè)定權(quán)值向量(w0,w1)
          W = np.array([0,0]); 
          
          #設(shè)定學(xué)習(xí)率
          lr = 0.01;
          #計(jì)算迭代次數(shù)
          n=0;
          #神經(jīng)網(wǎng)絡(luò)輸出
          O=0;
          
          def  updateW():
              global  X,Y,W,lr,n;
              n =1;
              O=np.dot(X,W.T);
              #計(jì)算權(quán)值
              W_Tmp = lr*((Y-O.T).dot(X))/int(X.shape[0]);
              #更新權(quán)值向量
              W = W W_Tmp;
          
          def draw():
          	global W;
          
          	x1=[5,3,8,1.4,10.1];
          	y1=[5500,2300,7600,1800,11400];
          
          	#繪制分割線需要的等差數(shù)列
          	x=np.linspace(0,12);
          	#創(chuàng)建子圖
          	plt.figure();
          	#根據(jù)坐標(biāo)繪圖 激活函數(shù):y=x1W1 w0
          	plt.plot(x,x*W[1] W[0],'r');
          	plt.plot(x1,y1,'*');
          	plt.show();
          
          if __name__ == '__main__':
          	#設(shè)置迭代次數(shù)
              for index in range (100):
                  updateW();
                  #獲取組合器輸出結(jié)果
                  O=np.dot(X,W.T);
                  #打印 實(shí)際值
                  print O;
          
              draw();
          

          執(zhí)行結(jié)果:

          參考:

          線性學(xué)習(xí)器
          https://blog.csdn.net/wasd6081058/article/details/7886697
          零基礎(chǔ)入門深度學(xué)習(xí)(2) - 線性單元和梯度下降(寫的非常通俗易懂?。。「兄x作者)
          https://www.zybuluo.com/hanbingtao/note/448086
          網(wǎng)易視頻課程——深度學(xué)習(xí)入門系列
          http://study.163.com/course/courseMain.htm?courseId=1004111045

          來(lái)源:http://www.icode9.com/content-1-24611.html
          本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
          打開APP,閱讀全文并永久保存 查看更多類似文章
          猜你喜歡
          類似文章
          從零開始,用Python徒手寫線性回歸
          帶你一文透徹學(xué)習(xí)【PyTorch深度學(xué)習(xí)實(shí)踐】分篇——線性模型 & 梯度下降
          詳解線性回歸算法的純Python實(shí)現(xiàn)
          Python機(jī)器學(xué)習(xí)算法:線性回歸
          降維講解:使用python實(shí)現(xiàn)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)(BP算法)
          word2vec中的數(shù)學(xué)模型
          更多類似文章 >>
          生活服務(wù)
          分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
          綁定賬號(hào)成功
          后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
          如果VIP功能使用有故障,
          可點(diǎn)擊這里聯(lián)系客服!

          聯(lián)系客服