国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

動(dòng)態(tài)網(wǎng)站后臺(tái)怎么做2021年最為成功的營(yíng)銷案例

動(dòng)態(tài)網(wǎng)站后臺(tái)怎么做,2021年最為成功的營(yíng)銷案例,建網(wǎng)站做商城個(gè)體戶資質(zhì)可以,武漢家裝十大排名最近接觸目標(biāo)檢測(cè)較多,再此對(duì)最基本的神經(jīng)網(wǎng)絡(luò)知識(shí)進(jìn)行補(bǔ)充,本博客適合想入門(mén)人工智能、其含有線性代數(shù)及高等數(shù)學(xué)基礎(chǔ)的人群觀看 1.構(gòu)成 由輸入層、隱藏層、輸出層、激活函數(shù)、損失函數(shù)組成。 輸入層:接收原始數(shù)據(jù)隱藏層:進(jìn)行…

最近接觸目標(biāo)檢測(cè)較多,再此對(duì)最基本的神經(jīng)網(wǎng)絡(luò)知識(shí)進(jìn)行補(bǔ)充,本博客適合想入門(mén)人工智能、其含有線性代數(shù)及高等數(shù)學(xué)基礎(chǔ)的人群觀看

1.構(gòu)成

由輸入層、隱藏層、輸出層、激活函數(shù)、損失函數(shù)組成。

  • 輸入層:接收原始數(shù)據(jù)
  • 隱藏層:進(jìn)行特征提取和轉(zhuǎn)換
  • 輸出層:輸出預(yù)測(cè)結(jié)果
  • 激活函數(shù):非線性變換
  • 損失函數(shù):衡量模型預(yù)測(cè)結(jié)果與真實(shí)值之間的差距

2.正向傳播過(guò)程

? 基礎(chǔ)的神經(jīng)網(wǎng)絡(luò)如下圖所示,其中層1為輸入層,層2為隱藏層,層3為輸出層:

神經(jīng)網(wǎng)絡(luò)

? 每一個(gè)圓圈代表了一個(gè)神經(jīng)元,各層的神經(jīng)元各自相連,如圖中的綠色箭頭。每一條相連的綠線上擁有起始設(shè)定好的權(quán)重。隱藏層的神經(jīng)元后跟著激活函數(shù),進(jìn)行信號(hào)的轉(zhuǎn)變。

? 對(duì)于每一層信號(hào)的輸入輸出,均有以下公式表達(dá),X為此層的輸入,O為此層的輸出,一般輸入層采用激活函數(shù),即輸入即為輸出。
X = W ? I n p u t O = s i g m o i d ( X ) X=W·Input\\ O=sigmoid(X) X=W?InputO=sigmoid(X)
I n p u t Input Input 為輸入矩陣,此處以如下為例:
I n p u t = [ 1.0 0.5 0.35 ] Input = \begin{bmatrix} 1.0\\ 0.5\\ 0.35 \end{bmatrix} Input= ?1.00.50.35? ?
W W W 為權(quán)重矩陣,各層的權(quán)重各不相同
W = [ w 1.1 w 1.2 w 1.3 w 2.1 w 2.2 w 2.3 w 3.1 w 3.2 w 3.3 ] W= \begin{bmatrix} w_{1.1} & w_{1.2} &w_{1.3}\\ w_{2.1} & w_{2.2} &w_{2.3}\\ w_{3.1} & w_{3.2} &w_{3.3} \end{bmatrix} W= ?w1.1?w2.1?w3.1??w1.2?w2.2?w3.2??w1.3?w2.3?w3.3?? ?
s i g m o i d sigmoid sigmoid 為激活函數(shù)
y = 1 1 + e ? x y=\frac{1}{1+e^{-x}} y=1+e?x1?

過(guò)程演示(3層)

1.輸入層: 由于輸入層一般不使用激活函數(shù),輸入層的輸出即為輸入數(shù)據(jù) I n p u t Input Input

2.隱藏層: 此層的輸入為:
X h i d d e n = W i n p u t 2 h i d d e n ? I n p u t = [ w 1.1 w 1.2 w 1.3 w 2.1 w 2.2 w 2.3 w 3.1 w 3.2 w 3.3 ] ? [ 1.0 0.5 0.35 ] X_{hidden}=W_{input2hidden} · Input= \begin{bmatrix} w_{1.1} & w_{1.2} &w_{1.3}\\ w_{2.1} & w_{2.2} &w_{2.3}\\ w_{3.1} & w_{3.2} &w_{3.3} \end{bmatrix} · \begin{bmatrix} 1.0\\ 0.5\\ 0.35 \end{bmatrix} Xhidden?=Winput2hidden??Input= ?w1.1?w2.1?w3.1??w1.2?w2.2?w3.2??w1.3?w2.3?w3.3?? ?? ?1.00.50.35? ?
? 此層的輸出為:
O h i d d e n = s i g m o i d ( X h i d d e n ) = 1 1 + e X h i d d e n O_{hidden} = sigmoid(X_{hidden})=\frac{1}{1+e^{X_{hidden}}} Ohidden?=sigmoid(Xhidden?)=1+eXhidden?1?
3.輸出層: 輸出層永遠(yuǎn)不使用激活函數(shù),輸出層的輸出即為輸入,輸出層的輸入為:
X o u t p u t = W h i d d e n 2 o u t p u t ? O h i d d e n X_{output} = W_{hidden2output}·O_{hidden} Xoutput?=Whidden2output??Ohidden?

3.激活函數(shù)

? 上文使用的是 s i g m o i d sigmoid sigmoid函數(shù)作為激活函數(shù),還可以將其根據(jù)具體應(yīng)用,更換為以下函數(shù):

  • Sigmoid函數(shù):將輸入值壓縮到0到1之間,常用于二分類問(wèn)題

sigmoid

  • ReLU函數(shù):將負(fù)值置為0,常用于深度神經(jīng)網(wǎng)絡(luò)中
    ReLU
  • Tanh函數(shù):將輸入值壓縮到-1到1之間,常用于回歸問(wèn)題

tanh

  • Leaky ReLU函數(shù):對(duì)負(fù)值進(jìn)行微小的縮放,避免梯度消失問(wèn)題

Leaky ReLU

4.反向傳播過(guò)程

? 誤差計(jì)算:目標(biāo)值-實(shí)際值 e n = t n ? o n e_n = t_n - o_n en?=tn??on?

? 下面以單個(gè)神經(jīng)元返回誤差為例:
bp傳播

? 對(duì)于最后輸出的誤差我們需要將他根據(jù)前一層的權(quán)重傳播到前一層,以上面單個(gè)神經(jīng)元的反向傳播過(guò)程為例。傳回1號(hào)神經(jīng)元的誤差為 e r r o r s ? w 1 w 1 + w 2 errors·\frac{w_1}{w_1+w_2} errors?w1?+w2?w1?? ,傳回2號(hào)神經(jīng)元的誤差為 e r r o r s ? w 2 w 1 + w 2 errors·\frac{w_2}{w_1+w_2} errors?w1?+w2?w2??

過(guò)程演示(3層)

? 下面我們把這個(gè)過(guò)程放到三層的神經(jīng)網(wǎng)絡(luò)中分析:

反向傳播

? 我們以第二層第一個(gè)神經(jīng)元為例,分析誤差傳播到此的值。
e h i d d e n 1 = e o u t p u t 1 ? w 1.1 w 1.1 + w 2.1 + w 3.1 + e o u t p u t 2 ? w 1.2 w 1.2 + w 2.2 + w 3.2 + e o u t p u t 3 ? w 1.3 w 1.3 + w 2.3 + w 3.3 e_{hidden1} = e_{output1}·\frac{w_{1.1}}{w_{1.1}+w_{2.1}+w_{3.1}}+e_{output2}·\frac{w_{1.2}}{w_{1.2}+w_{2.2}+w_{3.2}}+e_{output3}·\frac{w_{1.3}}{w_{1.3}+w_{2.3}+w_{3.3}} ehidden1?=eoutput1??w1.1?+w2.1?+w3.1?w1.1??+eoutput2??w1.2?+w2.2?+w3.2?w1.2??+eoutput3??w1.3?+w2.3?+w3.3?w1.3??
? 接下來(lái)我們使用矩陣來(lái)表達(dá)這個(gè)麻煩的公式:

輸出層誤差:
e r r o r o u t p u t = ( e 1 e 2 e 3 ) error_{output}=\begin{pmatrix} e_1\\ e_2\\ e_3 \end{pmatrix} erroroutput?= ?e1?e2?e3?? ?
隱藏層誤差:
e r r o r h i d d e n = [ w 1.1 w 1.1 + w 2.1 + w 3.1 w 1.2 w 1.2 + w 2.2 + w 3.2 w 1.3 w 1.3 + w 2.3 + w 3.3 w 2.1 w 1.1 + w 2.1 + w 3.1 w 2.2 w 1.2 + w 2.2 + w 3.2 w 2.3 w 1.3 + w 2.3 + w 3.3 w 3.1 w 1.1 + w 2.1 + w 3.1 w 3.2 w 1.2 + w 2.2 + w 3.2 w 3.3 w 1.3 + w 2.3 + w 3.3 ] ? e r r o r o u t p u t error_{hidden}=\begin{bmatrix} \frac{w_{1.1}}{w_{1.1}+w_{2.1}+w_{3.1}} &\frac{w_{1.2}}{w_{1.2}+w_{2.2}+w_{3.2}} &\frac{w_{1.3}}{w_{1.3}+w_{2.3}+w_{3.3}}\\ \frac{w_{2.1}}{w_{1.1}+w_{2.1}+w_{3.1}} &\frac{w_{2.2}}{w_{1.2}+w_{2.2}+w_{3.2}} &\frac{w_{2.3}}{w_{1.3}+w_{2.3}+w_{3.3}}\\ \frac{w_{3.1}}{w_{1.1}+w_{2.1}+w_{3.1}} &\frac{w_{3.2}}{w_{1.2}+w_{2.2}+w_{3.2}} &\frac{w_{3.3}}{w_{1.3}+w_{2.3}+w_{3.3}}\\ \end{bmatrix} · error_{output} errorhidden?= ?w1.1?+w2.1?+w3.1?w1.1??w1.1?+w2.1?+w3.1?w2.1??w1.1?+w2.1?+w3.1?w3.1???w1.2?+w2.2?+w3.2?w1.2??w1.2?+w2.2?+w3.2?w2.2??w1.2?+w2.2?+w3.2?w3.2???w1.3?+w2.3?+w3.3?w1.3??w1.3?+w2.3?+w3.3?w2.3??w1.3?+w2.3?+w3.3?w3.3??? ??erroroutput?
去歸一化:
e r r o r h i d d e n = [ w 1.1 w 1.2 w 1.3 w 2.1 w 2.2 w 2.3 w 3.1 w 3.2 w 3.3 ] ? e r r o r o u t p u t = w h i d d e n 2 o u t p u t ? e r r o r o u t p u t error_{hidden}=\begin{bmatrix} w_{1.1} & w_{1.2} & w_{1.3}\\ w_{2.1} & w_{2.2} & w_{2.3}\\ w_{3.1} & w_{3.2} & w_{3.3} \end{bmatrix} · error_{output} = w_{hidden2output}·error_{output} errorhidden?= ?w1.1?w2.1?w3.1??w1.2?w2.2?w3.2??w1.3?w2.3?w3.3?? ??erroroutput?=whidden2output??erroroutput?

5.更新權(quán)重

? 下一步需要取得誤差最小的權(quán)重作為最優(yōu)權(quán)重,在此我們使用梯度下降的方法找到誤差最小時(shí)的權(quán)重。

? 梯度下降: 用于計(jì)算函數(shù)的最小值。隨機(jī)起始點(diǎn),通過(guò)導(dǎo)數(shù)的正負(fù)判斷方向,朝著函數(shù)減小的方向,一步步增加x,并計(jì)算他的導(dǎo)數(shù)當(dāng)導(dǎo)數(shù)為零或?yàn)樵O(shè)定范圍內(nèi),取得最小值;否則繼續(xù)增加。

? 在神經(jīng)網(wǎng)絡(luò)中由于x為權(quán)重矩陣,我們使用的梯度下降為多維梯度下降。

設(shè)定誤差函數(shù)

? 在此例中我們使用 E = ( t n ? o n ) 2 E = (t_n-o_n)^2 E=(tn??on?)2

誤差函數(shù)的斜率

? E ? w i j = ? ? w i j ∑ n ( t n ? o n ) 2 \frac{\partial E}{\partial w_{ij}}=\frac{\partial}{\partial w_{ij}}\sum_n(t_n-o_n)^2 ?wij??E?=?wij???n?(tn??on?)2

由于在這里 o n o_n on?? 僅取決于連接著的權(quán)重,所以誤差函數(shù)的斜率可以改寫(xiě)為:
? ? w i j ( t n ? o n ) 2 \frac{\partial}{\partial w_{ij}}(t_n-o_n)^2 ?wij???(tn??on?)2
根據(jù)導(dǎo)數(shù)的鏈?zhǔn)椒▌t,我們改寫(xiě)斜率函數(shù):
? E ? w i j = ? E ? o n × ? o n ? w i j = ? 2 ( t n ? o n ) ? o n ? w i j \frac{\partial E}{\partial w_{ij}}=\frac{\partial E}{\partial o_n}\times \frac{\partial o_n}{\partial w_{ij}}=-2(t_n-o_n)\frac{\partial o_n}{\partial w_{ij}} ?wij??E?=?on??E?×?wij??on??=?2(tn??on?)?wij??on??
我們?cè)賹?span id="ieo6y2aa" class="katex--inline"> o n o_n on?帶入到此函數(shù) o n = s i g m o i d ( ∑ j w j , k ? o j ) o_n=sigmoid(\sum_j w_{j,k}·o_j) on?=sigmoid(j?wj,k??oj?) o j o_j oj?為前一層的輸出,得到函數(shù)如下:
斜率函數(shù) = ? 2 ( t n ? o n ) ? ? w i , j s i g m o i d ( ∑ j w j k ? o j ) 斜率函數(shù) = -2(t_n-o_n)\frac{\partial}{\partial w_{i,j}}sigmoid(\sum_j w_{jk}·o_j) 斜率函數(shù)=?2(tn??on?)?wi,j???sigmoid(j?wjk??oj?)
我們對(duì)sigmoid函數(shù)進(jìn)行微分:
? s i g m o i d ( x ) ? x = s i g m o i d ( x ) ( 1 ? s i g m o i d ( x ) ) \frac{\partial sigmoid(x)}{\partial x} = sigmoid(x)(1-sigmoid(x)) ?x?sigmoid(x)?=sigmoid(x)(1?sigmoid(x))
我們?cè)侔阉诺叫甭屎瘮?shù)之中:
斜率函數(shù) = ? 2 ? ( t n ? o n ) ? s i g m o i d ( ∑ j w j k ? o j ) ? ( 1 ? ∑ j w j k ? o j ) ? ? ? w i . j ( ∑ j w j k ? o j ) = ? 2 ? ( t n ? o n ) ? s i g m o i d ( ∑ j w j k ? o j ) ? ( 1 ? ∑ j w j k ? o j ) ? o j 斜率函數(shù)=-2·(t_n-o_n)·sigmoid(\sum_jw_{jk}·o_j)·(1-\sum_jw_{jk}·o_j)·\frac{\partial }{\partial w_{i.j}}(\sum_jw_{jk}·o_j)\\ =-2·(t_n-o_n)·sigmoid(\sum_jw_{jk}·o_j)·(1-\sum_jw_{jk}·o_j)·o_j 斜率函數(shù)=?2?(tn??on?)?sigmoid(j?wjk??oj?)?(1?j?wjk??oj?)??wi.j???(j?wjk??oj?)=?2?(tn??on?)?sigmoid(j?wjk??oj?)?(1?j?wjk??oj?)?oj?
由于在此過(guò)程中我們只需判斷斜率方向,我們可以把常數(shù)去除,即:
斜率函數(shù) = ? ( t n ? o n ) ? s i g m o i d ( ∑ j w j k ? o j ) ? ( 1 ? ∑ j w j k ? o j ) ? o j 斜率函數(shù)=-(t_n-o_n)·sigmoid(\sum_jw_{jk}·o_j)·(1-\sum_jw_{jk}·o_j)·o_j 斜率函數(shù)=?(tn??on?)?sigmoid(j?wjk??oj?)?(1?j?wjk??oj?)?oj?
我們根據(jù)已有的關(guān)系對(duì)斜率在此修改:

  • ( t n ? o n ) (t_n - o_n) (tn??on?) ( 目標(biāo)值 ? 實(shí)際值 ) (目標(biāo)值-實(shí)際值) (目標(biāo)值?實(shí)際值),即 e i e_i ei?
  • ∑ i w i , j ? o i \sum_i w_{i,j}·o_i i?wi,j??oi? 為進(jìn)入上一層的輸入
  • o i o_i oi? 為上一層的輸出

? E ? w i j = ? e i ? s i g m o i d ( ∑ i w i j o i ) ? ( 1 ? s i g m o i d ( ∑ i w i j o i ) ) ? o i \frac{\partial E}{\partial w_{ij}}=-e_i \cdot sigmoid(\sum_i w_{ij}o_i)\cdot (1-sigmoid(\sum_i w_{ij}o_i))\cdot o_i ?wij??E?=?ei??sigmoid(i?wij?oi?)?(1?sigmoid(i?wij?oi?))?oi?

更新權(quán)重

? 有了誤差函數(shù)的斜率,我們就可以通過(guò)梯度下降的方式更新權(quán)重,其中 α \alpha α為設(shè)定好的學(xué)習(xí)率:
W n e w = W o l d ? α ? E ? w i j W_{new} = W_{old}-\alpha \frac{\partial E}{\partial w_{ij}} Wnew?=Wold??α?wij??E?

權(quán)重的矩陣變化

Δ w i j = α ? E k ? o k ? ( 1 ? o k ) ? o j \Delta w_{ij} = \alpha \cdot E_k \cdot o_k \cdot (1-o_k) \cdot o_j Δwij?=α?Ek??ok??(1?ok?)?oj?

6.代碼實(shí)現(xiàn)

神經(jīng)網(wǎng)絡(luò)代碼應(yīng)該由三部分組成:初始化函數(shù)、訓(xùn)練函數(shù)、查詢函數(shù)

  • 初始化函數(shù):應(yīng)該包含各層的節(jié)點(diǎn)數(shù),學(xué)習(xí)率,隨機(jī)權(quán)重矩陣以及激活函數(shù)
  • 訓(xùn)練函數(shù):應(yīng)該包含正、反向傳播,權(quán)重更新
  • 查詢函數(shù):正向傳播過(guò)程
import numpy.random
import scipy.special# 激活函數(shù)設(shè)置
def activation_function(x):return scipy.special.expit(x)# 神經(jīng)網(wǎng)絡(luò)類
class NeuralNetwork:# 初始化函數(shù)def __init__(self, inputnodes, hiddennodes, outputnodes, learningrate):# 輸入層、隱含層、輸出層節(jié)點(diǎn)數(shù)self.inodes = inputnodesself.hnodes = hiddennodesself.onodes = outputnodes# 學(xué)習(xí)率self.lr = learningrate# 隨機(jī)權(quán)重矩陣self.Wih = numpy.random.normal(0.0, pow(self.hnodes, -0.5), (self.hnodes, self.inodes))self.Who = numpy.random.normal(0.0, pow(self.onodes, -0.5), (self.onodes, self.hnodes))# 激活函數(shù)self.activation_function = activation_functionpass# 訓(xùn)練函數(shù)def train(self, inputs_list, targets_list):# 輸入的目標(biāo)list改為2D數(shù)組targets = numpy.array(targets_list, ndmin=2).T# 第一步計(jì)算結(jié)果(與query一致)inputs = numpy.array(inputs_list, ndmin=2).Thidden_inputs = numpy.dot(self.Wih, inputs)hidden_outputs = self.activation_function(hidden_inputs)final_inputs = numpy.dot(self.Who, hidden_outputs)final_outputs = self.activation_function(final_inputs)# 計(jì)算輸出層誤差 error_output = 目標(biāo)值 - 測(cè)量值output_errors = targets - final_outputs# 計(jì)算隱含層誤差 errors_hidden = w_hidden2output^T · errors_outputhidden_errors = numpy.dot(self.Who.T, output_errors)# 權(quán)重更新self.Who += self.lr * numpy.dot((output_errors * final_outputs * (1.0 - final_outputs)),numpy.transpose(hidden_outputs))self.Wih += self.lr * numpy.dot((hidden_errors * hidden_outputs * (1.0 - hidden_outputs)),numpy.transpose(inputs))pass# 查詢函數(shù)def query(self, inputs_list):# 輸入的list改為2D數(shù)組inputs = numpy.array(inputs_list, ndmin=2).T# 隱含層的輸入 hidden_inputs = w_input2hedden · inputshidden_inputs = numpy.dot(self.Wih, inputs)# 隱含層的輸出 hidden_outputs = sigmoid(hidden_inputs)hidden_outputs = self.activation_function(hidden_inputs)# 輸出層的輸入final_inputs = numpy.dot(self.Who, hidden_outputs)# 輸出層的輸出final_outputs = self.activation_function(final_inputs)return final_outputs
http://aloenet.com.cn/news/39122.html

相關(guān)文章:

  • 建設(shè)銀行博士后招聘網(wǎng)站營(yíng)銷推廣軟件有哪些
  • baiduspider無(wú)法訪問(wèn)您的網(wǎng)站微信管理工具
  • 垂直網(wǎng)站建設(shè)東莞seo項(xiàng)目?jī)?yōu)化方法
  • 做網(wǎng)站公司鄭州鄭州的網(wǎng)站建設(shè)公司百度貼吧網(wǎng)頁(yè)版登錄
  • 徐州優(yōu)化網(wǎng)站建設(shè)網(wǎng)絡(luò)工程師培訓(xùn)機(jī)構(gòu)排名
  • WordPress用戶認(rèn)證中心百度seo提高排名費(fèi)用
  • 博客wordpress模版8.0外包seo服務(wù)口碑好
  • 信息技術(shù)咨詢公司鄭州靠譜seo電話
  • 企業(yè)網(wǎng)站功能描述企業(yè)網(wǎng)站seo點(diǎn)擊軟件
  • 我想在網(wǎng)站上賣(mài)食品怎么做seo大牛
  • 開(kāi)發(fā)網(wǎng)站商城流程優(yōu)化的七個(gè)步驟
  • 高端響應(yīng)式網(wǎng)站開(kāi)發(fā)2023b站免費(fèi)推廣入口
  • 網(wǎng)站開(kāi)發(fā)項(xiàng)目設(shè)計(jì)文檔n127網(wǎng)推廣
  • 做雞直播網(wǎng)站快排seo
  • 網(wǎng)站建設(shè)html5網(wǎng)絡(luò)推廣與網(wǎng)絡(luò)營(yíng)銷的區(qū)別
  • 電子商務(wù)自助建網(wǎng)站免費(fèi)seo教程資源
  • wordpress底部導(dǎo)航代碼seochinaz查詢
  • 如何做購(gòu)物網(wǎng)站的教程青山seo排名公司
  • 做seo要先做網(wǎng)站么輿情網(wǎng)站直接打開(kāi)
  • 一個(gè)可以做行程的網(wǎng)站seo外鏈工具有用嗎
  • 邢臺(tái)123生活最新帖子武漢企業(yè)seo推廣
  • 中衛(wèi)市網(wǎng)站開(kāi)發(fā)制作網(wǎng)址域名大全
  • 網(wǎng)站上傳照片失敗東莞seo外包公司哪家好
  • 網(wǎng)站版權(quán)文字seo排名賺app最新版本
  • 做設(shè)計(jì)一般用的素材網(wǎng)站是什么長(zhǎng)沙百度搜索排名
  • 蘇州建設(shè)培訓(xùn)中心網(wǎng)站國(guó)際形勢(shì)最新消息
  • 地稅網(wǎng)站如何做稅種確認(rèn)長(zhǎng)沙百家號(hào)seo
  • webydo生成的網(wǎng)站能下載代碼嗎網(wǎng)站權(quán)重是什么意思
  • 電子商務(wù)網(wǎng)頁(yè)設(shè)計(jì)論文搜索引擎優(yōu)化seo網(wǎng)站
  • 如何做網(wǎng)站網(wǎng)頁(yè)焊工培訓(xùn)心得體會(huì)