中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

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

做平面設(shè)計(jì)應(yīng)該在哪個(gè)網(wǎng)站求職推廣策略都有哪些

做平面設(shè)計(jì)應(yīng)該在哪個(gè)網(wǎng)站求職,推廣策略都有哪些,深圳外貿(mào)網(wǎng)站制作公司,有關(guān)做內(nèi)購(gòu)的網(wǎng)站簡(jiǎn)介:隨著人工智能(AI)蓬勃發(fā)展,也有越來(lái)越多的人涌入到這一行業(yè)。下面簡(jiǎn)單介紹一下機(jī)器學(xué)習(xí)的各大領(lǐng)域,機(jī)器學(xué)習(xí)包含深度學(xué)習(xí)以及強(qiáng)化學(xué)習(xí),在本節(jié)的機(jī)器學(xué)習(xí)中主要闡述一下機(jī)器學(xué)習(xí)的線性回歸邏輯回歸&…

簡(jiǎn)介:隨著人工智能(AI)蓬勃發(fā)展,也有越來(lái)越多的人涌入到這一行業(yè)。下面簡(jiǎn)單介紹一下機(jī)器學(xué)習(xí)的各大領(lǐng)域,機(jī)器學(xué)習(xí)包含深度學(xué)習(xí)以及強(qiáng)化學(xué)習(xí),在本節(jié)的機(jī)器學(xué)習(xí)中主要闡述一下機(jī)器學(xué)習(xí)的線性回歸邏輯回歸(二分類以及多分類問(wèn)題),以及深度學(xué)習(xí)的一些神經(jīng)網(wǎng)絡(luò)變型,包括有CNN經(jīng)典模型殘差神經(jīng)網(wǎng)絡(luò)(ResNet),RNN經(jīng)典模型長(zhǎng)短時(shí)期記憶網(wǎng)絡(luò)(LSTM)。

在人工智能上花一年時(shí)間,這足以讓人相信上帝的存在。--艾倫\cdot佩利

目錄

1、激活函數(shù)

(1)什么是激活函數(shù):

(2)常見(jiàn)激活函數(shù):

2、線性回歸與邏輯回歸任務(wù)

3、梯度優(yōu)化算法

(1)梯度下降(Gradient descent,簡(jiǎn)稱GD)

(2)梯度消失以及梯度爆炸

(3)學(xué)習(xí)率(learning rate,簡(jiǎn)稱lr)

4、擬合問(wèn)題

(1)訓(xùn)練集和測(cè)試集

(2)過(guò)擬合與欠擬合

(3)如何解決過(guò)擬合和欠擬合問(wèn)題

(4)提前stop?training

5、數(shù)據(jù)預(yù)處理部分

歸一化(Normalization)與標(biāo)準(zhǔn)化(Standardization)

數(shù)據(jù)缺失

?圖像處理(計(jì)算機(jī)視覺(jué))

6、RNN循環(huán)神經(jīng)網(wǎng)絡(luò)

LSTM算法

7、CNN卷積神經(jīng)網(wǎng)絡(luò)?

8、使用Tensorflow1.0/2.0框架創(chuàng)建神經(jīng)網(wǎng)絡(luò)


1、激活函數(shù)

(1)什么是激活函數(shù):

神經(jīng)網(wǎng)絡(luò)有單一的神經(jīng)元接收上一層神經(jīng)元的輸出作為本神經(jīng)元的輸入,即一種在神經(jīng)元上運(yùn)行的函數(shù),把神經(jīng)元的輸入映射到輸出端。

單神經(jīng)元
圖1 單神經(jīng)元

?如圖1(單輸入單輸出神經(jīng)元)所示,p為輸入,w為權(quán)重,b為偏置,若引入激活函數(shù)f,則相應(yīng)的輸出為a=f(wp+b),但若無(wú)激活函數(shù),相應(yīng)的輸出a'=wp+b。其實(shí)也就是說(shuō),

y(x) = \left\{\begin{matrix} f(x)& & ,ifactivation function is f\\ x& & ,else \end{matrix}\right.

它的作用是引入非線性性質(zhì),使得神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)和逼近更復(fù)雜的函數(shù)。在實(shí)際生活中,無(wú)論如何搭建神經(jīng)網(wǎng)絡(luò),輸出都是對(duì)于輸入的線性模型疊加。因此引入非線性因素后使得神經(jīng)網(wǎng)絡(luò)可以逼近任意非線性函數(shù),使得神經(jīng)網(wǎng)絡(luò)可以應(yīng)用到大量的非線性模型中。

(2)常見(jiàn)激活函數(shù):

tanh、relu、sigmoid、relkyrelu激活函數(shù),各個(gè)激活函數(shù)的圖像在Tesorflow多層感知器實(shí)現(xiàn)廣告的預(yù)測(cè)-CSDN博客

中有詳細(xì)介紹,其中softmax是一個(gè)特殊的整流函數(shù)。下面要與線性回歸與邏輯回歸聯(lián)合在一起。

圖2 softmax激活函數(shù)

?由分類問(wèn)題可以引出二分類以及多分類問(wèn)題,對(duì)于大多的二分類問(wèn)題,僅需要在預(yù)測(cè)結(jié)果回復(fù)True or False,但對(duì)于多分類問(wèn)題,需要使用softmax激活函數(shù)為每一個(gè)類別分別設(shè)置一個(gè)概率,這樣便可以計(jì)算出每一個(gè)類別占總體的百分比。但僅這樣是考慮不全面的,當(dāng)輸入存在有負(fù)數(shù)時(shí),單靠上面那種方法顯然是不可行的,故有引入指數(shù)函數(shù)e^{x_{i}},以保證最后每個(gè)單元輸出的概率在范圍(0,1),輸出之和為1。

Softmax函數(shù)的特點(diǎn)包括:
(1)將輸入映射到0和1之間:Softmax函數(shù)確保每個(gè)類別的概率在0和1之間,因此可以用來(lái)表示每個(gè)類別的相對(duì)權(quán)重。
(2)歸一化:Softmax函數(shù)對(duì)原始分?jǐn)?shù)進(jìn)行歸一化,使所有類別的概率之和為1,這使得它適用于多類別互斥的分類問(wèn)題。
(3)放大差異:Softmax函數(shù)會(huì)放大具有更高原始分?jǐn)?shù)的類別的概率,因此可以更好地區(qū)分不同類別的可能性。

2、線性回歸與邏輯回歸任務(wù)

回歸分析是處理多變量間相關(guān)關(guān)系的一種數(shù)學(xué)方法,當(dāng)自變量為非隨機(jī)變量而因變量為隨機(jī)變量時(shí),它們的關(guān)系分析成為 回歸分析?;貧w分析又可分為線性回歸與邏輯回歸。

什么是分類任務(wù),什么是回歸任務(wù)?

線性回歸主要功能是擬合數(shù)據(jù),就是將輸入項(xiàng)分別乘以一些常量(constant),將他們的結(jié)果求和即為輸出,線性回歸可以分為一元線性回歸與多元線性回歸。

線性回歸易理解且快,但對(duì)于一些相對(duì)復(fù)雜的模型(比如非線性關(guān)系或樣本屬性的維度過(guò)大時(shí)),預(yù)測(cè)結(jié)果不好。

  • 一元線性回歸:Y=ax+b,其中,x為自變量,a為相關(guān)系數(shù),b為截距,Y則為因變量。
  • 多元線性回歸(多自變量單因變量):Y=a_{1}X_{1}+a_{2}X_{2}+...+a_{n}X_{n}+b,其中,a_{1},a_{2},...,a_{n}為回歸系數(shù),b為截距。

本人線性回歸案例:Tensorflow練手機(jī)器學(xué)習(xí)原理--線性回歸-CSDN博客

邏輯回歸主要功能是區(qū)分?jǐn)?shù)據(jù),找到?jīng)Q策邊界。

邏輯回歸實(shí)際上是一種分類方法。

本人邏輯回歸案例:Tensorflow之邏輯回歸與交叉熵-CSDN博客

圖2

3、梯度優(yōu)化算法

損失函數(shù)(Loss function):?單個(gè)樣本預(yù)測(cè)結(jié)果和正確結(jié)果的誤差值。

代價(jià)函數(shù)(Cost function):?所有樣本損失函數(shù)的總和,用來(lái)衡量評(píng)估模型的好壞,一般情況下它的值越小則模型越好。

(1)梯度下降(Gradient descent,簡(jiǎn)稱GD)

對(duì)于線性關(guān)系y = w*x + b,而言,需要找到最優(yōu)的w^{*}b^{*},使得訓(xùn)練的誤差(損失Loss)最小,對(duì)于計(jì)算機(jī)而言,可以借助強(qiáng)大的計(jì)算能力去多次搜索和試錯(cuò),使得誤差逐漸減小,最簡(jiǎn)單的優(yōu)化方法就是暴力搜索和隨機(jī)試驗(yàn),但當(dāng)面對(duì)大規(guī)模和高維度數(shù)據(jù)時(shí)效率極低,下面介紹一下梯度下降算法。

將梯度下降算法配合強(qiáng)大的圖形處理芯片GPU的并行加速能力非常適合優(yōu)化海量數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)模型。

函數(shù)的梯度指的是函數(shù)對(duì)各個(gè)自變量的偏導(dǎo)數(shù)組成的向量(多元微分),梯度的方向是函數(shù)值變化最快的方向。

在建立好模型后,會(huì)有相關(guān)的損失函數(shù),比如均方差損失函數(shù)或交叉熵?fù)p失函數(shù)等。分別對(duì)于每一個(gè)參數(shù)\theta,求出損失函數(shù)關(guān)于其的梯度,然后朝著梯度相反的方向使得函數(shù)值下降的最快,反復(fù)求解梯度,最后就能到達(dá)局部最小值。

  • 在單變量函數(shù)中,梯度其實(shí)就是函數(shù)的微分,代表函數(shù)在給定的某一個(gè)點(diǎn)的切線的斜率。
  • 在多變量函數(shù)中,梯度為多元微分組成的向量,代表一個(gè)方向,梯度的方向就指明了函數(shù)在給定點(diǎn)上升最快的方向。

梯度下降更新公式:\theta =\theta -\alpha \frac{\partial J(\theta )}{\partial x},這里的\theta包含網(wǎng)絡(luò)參數(shù)w和b(weight,bias)。

梯度上升更新公式:\theta =\theta +\alpha \frac{\partial J(\theta )}{\partial x},需要找最大時(shí)用梯度上升。

在下面舉一個(gè)多變量函數(shù)的梯度下降過(guò)程,目標(biāo)函數(shù)為J(\theta )={\theta _{1}}^{2}+{\theta _{2}}^{2},最小值對(duì)應(yīng)為(0,0),假設(shè)初始起點(diǎn)為(1,2),(初始起點(diǎn)就相當(dāng)于網(wǎng)絡(luò)參數(shù)初始化部分,有很多種方法:random初始化,Xavier初始化,He初始化等,選擇合理的初始化方法有利于更好的處理網(wǎng)絡(luò)梯度問(wèn)題,提高網(wǎng)絡(luò)性能),初始學(xué)習(xí)率\alpha=0.1,則函數(shù)的梯度為\bigtriangledown J(\theta )=(2\theta _{1}+2\theta _{2}),多次Iterate,

\theta ^{0}=(1,2)

?\theta ^{1}=\theta ^{0}-\alpha \bigtriangledown J(\theta )=(1,2)-0.1*(2,4)=(0.8,1.6)

?\theta ^{2}=\theta ^{1}-\alpha \bigtriangledown J(\theta )=(0.8,1.6)-0.1*(1.6,3.2)=(0.64,1.28)?

......?

就這樣不斷減小,向最小值(0,0)不斷逼近,結(jié)束。

(2)梯度消失以及梯度爆炸

梯度消失:神經(jīng)?絡(luò)靠輸?端的?絡(luò)層的系數(shù)逐漸不再隨著訓(xùn)練?變化,或者變化?常緩慢。隨著?絡(luò)層數(shù)增加,這個(gè)現(xiàn)象越發(fā)明顯。

解決方案:

  • 使用更穩(wěn)定的激活函數(shù):ReLU、Leaky ReLU 或 ELU 激活函數(shù)通常比 Sigmoid 和 Tanh 更不容易出現(xiàn)梯度消失問(wèn)題;
  • 使用 Batch Normalization:Batch Normalization 可以加速神經(jīng)網(wǎng)絡(luò)的收斂,并且減少梯度消失問(wèn)題。
  • 使用殘差連接(Residual Connections):ResNet 中的殘差連接可以幫助信息在網(wǎng)絡(luò)中更快地傳播,減輕梯度消失問(wèn)題。

梯度爆炸:梯度爆炸是深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程中的一種現(xiàn)象,指的是在反向傳播過(guò)程中,梯度值因?yàn)槎啻蜗喑硕眲≡龃?#xff0c;導(dǎo)致梯度變得非常巨大甚至溢出。這會(huì)造成參數(shù)更新過(guò)大,導(dǎo)致模型無(wú)法收斂或產(chǎn)生不穩(wěn)定的訓(xùn)練結(jié)果。

解決方案:

  • 梯度截?cái)?#xff08;Gradient Clipping):限制梯度的大小,防止梯度爆炸。
  • 初始化權(quán)重:使用適當(dāng)?shù)臋?quán)重初始化方法,如Xavier初始化,可以幫助減少梯度爆炸的發(fā)生。
  • 調(diào)整學(xué)習(xí)率:適當(dāng)調(diào)整學(xué)習(xí)率的大小,可能有助于避免梯度爆炸。
(3)學(xué)習(xí)率(learning rate,簡(jiǎn)稱lr)

學(xué)習(xí)率代表在一次迭代過(guò)程中梯度向損失函數(shù)的最優(yōu)解移動(dòng)的步長(zhǎng),通常用\alpha表示,它的大小決定網(wǎng)絡(luò)學(xué)習(xí)的快慢。

  • 當(dāng)學(xué)習(xí)率過(guò)大時(shí),網(wǎng)絡(luò)參數(shù)學(xué)習(xí)會(huì)很快,進(jìn)而加快收斂速度,但有可能會(huì)在最優(yōu)解附近來(lái)回震蕩導(dǎo)致最后難以收斂,如圖3中的紅色箭頭所示。
  • 當(dāng)學(xué)習(xí)率過(guò)小時(shí),網(wǎng)絡(luò)參數(shù)學(xué)習(xí)會(huì)很慢,這樣雖然不會(huì)錯(cuò)過(guò)最優(yōu)解,但也容易陷入局部最優(yōu)。

因此,選擇一個(gè)合適的學(xué)習(xí)率,對(duì)于網(wǎng)絡(luò)參數(shù)的學(xué)習(xí)至關(guān)重要,合適的學(xué)習(xí)率可以使網(wǎng)絡(luò)參數(shù)以適當(dāng)?shù)乃俣缺平肿顑?yōu)解(如圖3黃色箭頭)。但學(xué)習(xí)率一般是需要觀察訓(xùn)練過(guò)程的各個(gè)參數(shù)的性能,(不能僅靠損失函數(shù)來(lái)判定,需要多方面評(píng)估)。學(xué)習(xí)率一般為0.1,0.001,0.0001這樣找到一個(gè)區(qū)間,然后在區(qū)間內(nèi)可以采用二分法逐步判斷找到適合的學(xué)習(xí)率。但如果最后損失收斂在一個(gè)較大的范圍,可以考慮使用便學(xué)習(xí)率,這樣讓損失最后收斂在一個(gè)較小的范圍。

圖3

4、擬合問(wèn)題

模型的容量是指模型擬合復(fù)雜函數(shù)的能力。

(1)訓(xùn)練集和測(cè)試集

訓(xùn)練集(Train set):是用于模型擬合的數(shù)據(jù)樣本。

驗(yàn)證集(Development set):是模型訓(xùn)練過(guò)程中單獨(dú)留出的樣本集,它可以用于調(diào)整模型的超參數(shù)和用于對(duì)模型的能力進(jìn)行初步評(píng)估。一般地,通過(guò)驗(yàn)證集尋找最優(yōu)的網(wǎng)絡(luò)深度(隱藏層個(gè)數(shù))以及網(wǎng)絡(luò)的寬度(每層的神經(jīng)元個(gè)數(shù))。由原本的訓(xùn)練集數(shù)據(jù)劃分而來(lái),用于調(diào)參和選擇模型。

在這里,超參數(shù)可以有很多,主要包括一些在訓(xùn)練過(guò)程中不會(huì)發(fā)生變化的參數(shù),比如學(xué)習(xí)率(采用定學(xué)習(xí)率時(shí)),經(jīng)驗(yàn)回放緩存大小,小批量訓(xùn)練大小等。

測(cè)試集(Test set):用來(lái)評(píng)估模型最終的泛化能力。

圖3 模型表現(xiàn)
(2)過(guò)擬合與欠擬合
  • 過(guò)擬合是指學(xué)習(xí)時(shí)選擇的模型所包含的參數(shù)過(guò)多,以至于出現(xiàn)這一模型對(duì)已知數(shù)據(jù)預(yù)測(cè)的很好,但對(duì)未知數(shù)據(jù)預(yù)測(cè)得很差的現(xiàn)象。這種情況下模型可能只是記住了訓(xùn)練集數(shù)據(jù),而不是學(xué)習(xí)到了數(shù)據(jù)特征。在這種情況下,模型會(huì)在訓(xùn)練集上表現(xiàn)良好,在測(cè)試集(未見(jiàn)的數(shù)據(jù)集)上表現(xiàn)不太好。
  • 欠擬合是指模型描述能力太弱,以至于不能很好地學(xué)習(xí)到數(shù)據(jù)中的規(guī)律。產(chǎn)生欠擬合的原因通常是模型過(guò)于簡(jiǎn)單。在這種情況下,模型在訓(xùn)練集和測(cè)試集表現(xiàn)都不會(huì)太好。
(3)如何解決過(guò)擬合和欠擬合問(wèn)題

以及什么是droupout,如何解決過(guò)擬合問(wèn)題?

解決過(guò)擬合問(wèn)題(通過(guò)降低網(wǎng)絡(luò)容量):

  • 重新設(shè)計(jì)網(wǎng)絡(luò)容量:降低網(wǎng)絡(luò)深度或減小網(wǎng)絡(luò)寬度。
  • 增加訓(xùn)練數(shù)據(jù)樣本,或者是說(shuō)為數(shù)據(jù)集擴(kuò)增,比如在強(qiáng)化學(xué)習(xí)中網(wǎng)絡(luò)參數(shù)引入隨機(jī)噪聲(加入Noisy Net,名義上稱為噪聲,實(shí)際可以對(duì)action產(chǎn)生與\epsilon -greedy差不多的效果)再訓(xùn)練,或者是對(duì)原始圖像做部分截取或旋轉(zhuǎn)角度等。
  • Dropout:Dropout是通過(guò)改動(dòng)神經(jīng)網(wǎng)絡(luò)本身實(shí)現(xiàn)的,在訓(xùn)練時(shí)隨機(jī)斷開(kāi)神經(jīng)網(wǎng)絡(luò)的連接,減少每次模型在訓(xùn)練時(shí)實(shí)際參與計(jì)算的參數(shù)量,但在測(cè)試時(shí),為保證模型獲得較好的性能Dropout會(huì)恢復(fù)所有的連接部分,如圖4所示。
圖4
  • 添加正則化手段(L0,L1,L2)
  • 提前停止訓(xùn)練。

解決欠擬合問(wèn)題:可以通過(guò)增加網(wǎng)絡(luò)容量(增加網(wǎng)絡(luò)深度以及網(wǎng)絡(luò)寬度),嘗試更加復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)。

(4)提前stop?training

一般地,把對(duì)訓(xùn)練集中的一個(gè)Batch運(yùn)算稱作為一個(gè)step,對(duì)訓(xùn)練集的所有樣本循環(huán)迭代一次稱為一個(gè)Epoch。

當(dāng)模型正常擬合的情況下,模型的各個(gè)參數(shù)會(huì)趨向收斂的狀態(tài),損失不再降低,這時(shí)如果不及時(shí)停止訓(xùn)練模型,就會(huì)導(dǎo)致模型過(guò)度學(xué)習(xí)訓(xùn)練的數(shù)據(jù)集,不僅學(xué)習(xí)到了數(shù)據(jù)集的特征,還把額外的觀測(cè)誤差也學(xué)習(xí)到,極大的降低泛化能力。

# 帶有Early stopping的網(wǎng)絡(luò)訓(xùn)練算法
Output:the performence of the network parameter seta and test
Random initialize the parameter seta
Initialize the size of mini-banch and experience replay buffer |D|
repeatfor step=1,2,...,N doRandom sample Batch{(x,y)}~DUpdate seta with gradient descent algorithmendif every the n-th Epoch doTest the performence of all {(x,y)}~Dif Multiple failures to improve performance during validation doSave the state of the network,early stoppingend ifend if
until Training to the maximum number of Epoch

5、數(shù)據(jù)預(yù)處理部分

特征選擇、特征提取、特征工程

特征選擇:從原始數(shù)據(jù)中選擇最相關(guān)和最有價(jià)值的特征,從而提高模型的性能和準(zhǔn)確性,同時(shí)減少模型的復(fù)雜度和計(jì)算資源消耗。就是為了消除一些冗余和目標(biāo)無(wú)關(guān)的特征,保留對(duì)預(yù)測(cè)目標(biāo)有用的特征,進(jìn)而提高模型的泛化能力和效率。

使用的方法:

特征提取:將原始數(shù)據(jù)轉(zhuǎn)換為具有更高維度或更有意義的特征表示的過(guò)程,旨在提高模型的學(xué)習(xí)效果。

特征工程:通過(guò)對(duì)數(shù)據(jù)進(jìn)行處理和轉(zhuǎn)換,提取出更有用的特征以供機(jī)器學(xué)習(xí)模型使用,從而改善模型的性能和效果,有利于減少數(shù)據(jù)噪聲,提高模型的泛化能力。

為什么要建立特征工程?

  • 歸一化(Normalization)與標(biāo)準(zhǔn)化(Standardization)

歸一化與標(biāo)準(zhǔn)化都是對(duì)數(shù)據(jù)做變換的方式,對(duì)數(shù)據(jù)特征縮放到某一個(gè)范圍,把原始數(shù)據(jù)的某一列數(shù)據(jù)轉(zhuǎn)換到某一個(gè)范圍或者某種形態(tài)。

歸一化:將某一列中的數(shù)據(jù)縮放到某一個(gè)區(qū)間范圍內(nèi),通常這個(gè)區(qū)間可以為[0,1],[-1,1]等,可以根據(jù)實(shí)際需要設(shè)定,歸一化可以有很多種形式,如:

min-max normalization:f(x)=\frac{x-min(x)}{max(x)-min(x)},[0,1]區(qū)間

mean normalization:f(x)=\frac{x-mean(x)}{max(x)-min(x)},[-1,1]區(qū)間

標(biāo)準(zhǔn)化:將數(shù)據(jù)變換為均值為0且標(biāo)準(zhǔn)差為1的分布,此分布會(huì)追隨原本數(shù)據(jù)的分布狀態(tài),因此,經(jīng)標(biāo)準(zhǔn)化后數(shù)據(jù)的分布不一定是正態(tài)分布的。

standardization:\frac{X_{i}-\mu }{\sigma }

中心化:零均值處理,就是用原始數(shù)據(jù)減去這些數(shù)據(jù)的均值后的值。

批歸一化(Batch Normalization):可以對(duì)每一批(batch)數(shù)據(jù)進(jìn)行歸一化,傳統(tǒng)的歸一化操作一般都是在輸入網(wǎng)絡(luò)之前對(duì)特征進(jìn)行歸一化,但是BN可以在網(wǎng)絡(luò)的任意一層進(jìn)行歸一化處理。

  • 數(shù)據(jù)缺失

數(shù)據(jù)缺失可由機(jī)械錯(cuò)誤(機(jī)械原因?qū)е碌臄?shù)據(jù)集中缺失數(shù)據(jù))和人為錯(cuò)誤(由人的主觀因素:漏錄,無(wú)效數(shù)據(jù)等)導(dǎo)致。若有數(shù)據(jù)缺失,則要么刪除有缺失項(xiàng)的數(shù)據(jù)整體,要么是對(duì)數(shù)據(jù)缺失的數(shù)據(jù)項(xiàng)做一些處理,再就是對(duì)其置之不理。

缺失值從缺失的分布來(lái)講可以分為完全隨機(jī)缺失(數(shù)據(jù)的缺失是隨機(jī)的,數(shù)據(jù)的缺失不依賴任何不完全變量或完全變量),隨機(jī)缺失(數(shù)據(jù)缺失不是完全隨機(jī)的,依賴于其他完全變量)和非完全隨機(jī)缺失(數(shù)據(jù)缺失依賴于不完全變量本身)。

缺失值從缺失屬性來(lái)講,若所有缺失值都為同一屬性(同一列)則為單值缺失,若為不同的屬性,則為任意缺失。

1、刪除包含缺失項(xiàng)的數(shù)據(jù)整體,主要包含簡(jiǎn)單刪除發(fā)和權(quán)重法。

  • 簡(jiǎn)單刪除:將存在缺失值的個(gè)案刪除,當(dāng)缺失值為非完全隨機(jī)時(shí),可通過(guò)對(duì)完整數(shù)據(jù)加權(quán)來(lái)減小偏差
  • 用可能值插補(bǔ)缺失值:

  • ?圖像處理(計(jì)算機(jī)視覺(jué))

圖像透視變化?改變圖像的透視效果,使得原本在三維空間中呈現(xiàn)的透視關(guān)系在二維圖像中得到修正或變換。透視變換通常用于校正圖像中的透視畸變,例如將斜視角拍攝的圖像調(diào)整為正視角,或者將圖像中的某些區(qū)域拉伸或壓縮以改變其形狀。

圖像去噪/降噪?在數(shù)字圖像中減少或去除由于圖像采集、傳輸或處理過(guò)程中引入的噪聲的過(guò)程。噪聲可以是由傳感器、電路、環(huán)境等因素引起的隨機(jī)干擾,降噪技術(shù)旨在提高圖像的質(zhì)量和清晰度,以便更好地進(jìn)行后續(xù)的圖像分析、處理或展示。

圖像配準(zhǔn)?將多幅圖像中的對(duì)應(yīng)特征點(diǎn)或區(qū)域進(jìn)行匹配和對(duì)齊的過(guò)程,以使它們?cè)谕蛔鴺?biāo)系下對(duì)齊或校準(zhǔn)。這個(gè)過(guò)程通常涉及到圖像中的旋轉(zhuǎn)、平移、縮放和畸變等變換,旨在消除圖像間的空間差異,以便進(jìn)行后續(xù)的分析或處理。

圖像分割?將數(shù)字圖像劃分為多個(gè)具有獨(dú)特特征或語(yǔ)義的區(qū)域或像素的過(guò)程。這些區(qū)域通常代表了圖像中的不同對(duì)象、結(jié)構(gòu)或區(qū)域。

數(shù)據(jù)清洗?對(duì)數(shù)據(jù)進(jìn)行檢查、修復(fù)、刪除或補(bǔ)充,以確保數(shù)據(jù)質(zhì)量符合特定標(biāo)準(zhǔn)或要求的過(guò)程。這包括識(shí)別和糾正數(shù)據(jù)中的錯(cuò)誤、缺失、重復(fù)或不一致的部分,以便在進(jìn)行數(shù)據(jù)分析、建?;驊?yīng)用程序開(kāi)發(fā)時(shí)能夠得到準(zhǔn)確、可靠的結(jié)果。

目標(biāo)檢測(cè)?在圖像或視頻中自動(dòng)識(shí)別和定位特定對(duì)象的過(guò)程,目標(biāo)檢測(cè)不僅要確定圖像中是否存在目標(biāo),還要準(zhǔn)確地標(biāo)出目標(biāo)的位置。

6、RNN循環(huán)神經(jīng)網(wǎng)絡(luò)

RNN中包含的模型目前主要有LSTM和GRU,下面簡(jiǎn)單介紹一下LSTM算法。

RNN與傳統(tǒng)全連接網(wǎng)絡(luò)不同,引入新的名詞隱狀態(tài)h_{t}(hidden state),隱狀態(tài)可以對(duì)序列行的數(shù)據(jù)提取特征,再轉(zhuǎn)換為輸出。?

h_{t}=f_{\theta }(h_{t-1},x_{t})=f(Ux_{t}+Wh_{t-1}+b)

其中,h_{t-1}和?x_{t}經(jīng)過(guò)上述變換后,得到當(dāng)前時(shí)間戳的新的狀態(tài)向量h_{t}并寫入內(nèi)存狀態(tài)中,然后對(duì)應(yīng)在每個(gè)時(shí)間戳上均有輸出y_{t}產(chǎn)生,y_{t}=g_{\phi }(h_{t})。上述網(wǎng)路結(jié)構(gòu)在時(shí)間戳上重疊,網(wǎng)絡(luò)循環(huán)接受序列的每個(gè)特征向量x_{t},并刷新內(nèi)部狀態(tài)向量ht,同時(shí)形成輸出yt。f一般為非線性激活函數(shù),且尤為重點(diǎn)的就是在RNN中計(jì)算時(shí),每一個(gè)時(shí)間戳計(jì)算時(shí)所用到的參數(shù)U,W,b都是一樣的,即經(jīng)典RNN的參數(shù)是共享的(RNN的權(quán)值是在同一個(gè)向量中,只是時(shí)間戳t不同而已)。

h_{1}=f(Ux_{1}+Wh_{0}+b)?

h_{2}=f(Ux_{2}+Wh_{0}+b)?

...?

其中,在任意時(shí)間戳t,x_{t}對(duì)應(yīng)為當(dāng)前時(shí)間戳的輸入,h_{t-1}對(duì)應(yīng)為上一個(gè)時(shí)間戳的網(wǎng)絡(luò)狀態(tài)向量,

圖4 不帶有輸出

?對(duì)于輸出y_{t}=g_{\phi }(h_{t}),可以通過(guò)自己設(shè)定,可以讓當(dāng)前時(shí)刻t的狀態(tài)向量直接作為輸出(什么處理也不做),即y_{t}=h_{t};可以對(duì)h_{t}做一個(gè)線性變換,即輸出y_{t}=W_{t}h_{t};也可以對(duì)h_{t}做一個(gè)非線性處理,比如在其外面再加入激活函數(shù),sigmoid,relu,softmax等變換,即輸出y_{t}=f(h_{t})。這里要注意,對(duì)狀態(tài)向量h_{t}做處理時(shí),也要遵守權(quán)值共享原則。

圖5 帶有輸出

RNN的堆疊形式如圖6左邊所示,展開(kāi)則由圖6中的右邊所示,RNN可以看成是一個(gè)神經(jīng)網(wǎng)絡(luò)的多次復(fù)制,每一個(gè)神經(jīng)網(wǎng)絡(luò)模塊A會(huì)把消息依次傳遞給下一個(gè)模塊。

圖6?

解釋一下RNN的短期和長(zhǎng)期依賴問(wèn)題:

以自然語(yǔ)言處理為例,當(dāng)RNN在處理較簡(jiǎn)單的句子預(yù)測(cè)時(shí),前面的信息和預(yù)測(cè)的詞間距很小時(shí),那么,RNN會(huì)學(xué)會(huì)使用先前的信息,較好的表現(xiàn)。但是當(dāng)在一些復(fù)雜的場(chǎng)景時(shí),在預(yù)測(cè)“I grow up in China ... and I like China”這段文本的最后一個(gè)詞China時(shí),可能會(huì)知道當(dāng)前需要填寫一個(gè)語(yǔ)言類型,但是需要離當(dāng)前位置較遠(yuǎn)的先前提到的“China”的前后文的。經(jīng)研究人員發(fā)現(xiàn),RNN僅能理解有線長(zhǎng)度范圍內(nèi)的信息,對(duì)于較長(zhǎng)范圍內(nèi)的有用信息往往不能很好地利用起來(lái),即會(huì)喪失學(xué)習(xí)連接到如此遠(yuǎn)的信息的能力,稱為短時(shí)記憶

故經(jīng)研究人員研究,發(fā)現(xiàn)記憶能力更強(qiáng),一種更擅長(zhǎng)處理較長(zhǎng)的序列信號(hào)的數(shù)據(jù),LSTM(Long Short-Term Memory),下面將介紹LSTM算法。?

  • LSTM算法

下面講述一下LSTM算法,相對(duì)于基礎(chǔ)的RNN網(wǎng)絡(luò)只有一個(gè)狀態(tài)向量h_{t},LSTM新增了一個(gè)狀態(tài)向量C_{t},同時(shí)引入門控(Gate)機(jī)制,通過(guò)門控單元來(lái)控制信息的遺忘和刷新。

所有的RNN網(wǎng)絡(luò),都是一種具有重復(fù)神經(jīng)網(wǎng)絡(luò)的鏈?zhǔn)降慕Y(jié)構(gòu),在標(biāo)準(zhǔn)的RNN網(wǎng)絡(luò)中,這個(gè)重復(fù)的模塊(神經(jīng)網(wǎng)絡(luò))只有一個(gè)簡(jiǎn)單的結(jié)構(gòu),例如一個(gè)tanh或sigmoid層,tanh使得數(shù)據(jù)范圍控制在[-1,1]之間,有利于幫助調(diào)節(jié)流經(jīng)神經(jīng)網(wǎng)絡(luò)的之值。但對(duì)于LSTM網(wǎng)絡(luò),重復(fù)的模塊有一個(gè)不同的結(jié)構(gòu),LSTM中重復(fù)的模塊一般包含有四個(gè)交互的層,3個(gè)sigmoid和一個(gè)tanh層,使用sigmoid的原因主要是因?yàn)槠淙≈捣秶赱0,1],有利于較好的選取數(shù)據(jù)記憶(更新或遺忘,x*0=0,x*1=x)。

圖7 LSTM

?在這里,如圖8,講一下各個(gè)符號(hào)代表的含義,每一條黑線傳輸著一整個(gè)向量,從一個(gè)節(jié)點(diǎn)的輸出到其他節(jié)點(diǎn)的輸入。圓圈代表pointwise的操作,諸如向量的和或向量的乘(看圈中是什么符號(hào)),而黃色的矩陣就是學(xué)習(xí)到的神經(jīng)網(wǎng)絡(luò)層。合在一起的線表示向量的連接,分開(kāi)的線表示內(nèi)容被復(fù)制,然后分發(fā)到不同的位置。

圖8 symbol

在這里,由于LSTM由遺忘門、輸入門和輸出門組成,下面簡(jiǎn)單敘述一下各部分的用處,就能看懂各個(gè)部分的過(guò)程,如圖?9,

遺忘門:通過(guò)讀取h_{t-1}x_{t}做一個(gè)sigmoid(等同于圖9中的\sigma)的非線性映射,輸出一個(gè)向量f_{t},向量中的不同維度上的值有不同的意義(1完全保留,0忘記/丟失)。

輸入門:會(huì)決定什么樣的信息被存放在細(xì)胞狀態(tài)中,sigmoid決定什么值將要被更新,tanh層創(chuàng)建了一個(gè)新的候選值向量Ct,被加入到狀態(tài)中。

輸出門:

圖9 process

7、CNN卷積神經(jīng)網(wǎng)絡(luò)?

首先,闡述一下為什么要有卷積神經(jīng)網(wǎng)絡(luò)CNN,CNN相比于全連接神經(jīng)網(wǎng)絡(luò)的好處有哪些?

  • 局部相關(guān)性:以圖片類型數(shù)據(jù)為輸入的場(chǎng)景為例,對(duì)于二維圖片數(shù)據(jù)在傳入全連接層之前(fully-connected layer),需將矩陣打平成為一維向量,然后每個(gè)像素點(diǎn)與每個(gè)輸出節(jié)點(diǎn)兩兩相連,其輸出與輸入的關(guān)系為(nodes(I)表示第I層的節(jié)點(diǎn)集合):

o_{j}=\sigma (\sum_{i\epsilon nodes(I)}^{}w_{ij}x_{i}+b_{j})

?下面,找一種近似的簡(jiǎn)化模型,可以分析輸入節(jié)點(diǎn)對(duì)輸出節(jié)點(diǎn)的重要性分布,僅考慮較重要的一部分輸入節(jié)點(diǎn),這樣輸出節(jié)點(diǎn)只需要與部分輸入節(jié)點(diǎn)相連接,表達(dá)為:

o_{j}=\sigma (\sum_{i\epsilon top(I,j,k)}^{}w_{ij}x_{i}+b_{j})

其中top(I,j,k)表示第I層中對(duì)于J層中的j號(hào)節(jié)點(diǎn)重要性最高的前n個(gè)節(jié)點(diǎn)集合,通過(guò)這種方式,可以把權(quán)值個(gè)數(shù)由|| I ||*|| J || 減少到k*|| J ||,其中?|| I ||和|| J ||分別表示I、J層的節(jié)點(diǎn)數(shù)量。

接著問(wèn)題轉(zhuǎn)化為探索第I層中對(duì)于第J層中的j號(hào)輸出節(jié)點(diǎn)重要分布,然后認(rèn)為圖片每個(gè)像素點(diǎn)和周邊像素點(diǎn)的關(guān)聯(lián)度更大(位置相關(guān))。以二維圖片數(shù)據(jù)為例,簡(jiǎn)單認(rèn)為像素的歐氏距離小于等于x的像素點(diǎn)重要性較高,大于x的像素點(diǎn)重要性較低,這種僅關(guān)注和自己距離較近的部分節(jié)點(diǎn)而忽略距離較遠(yuǎn)的節(jié)點(diǎn)稱為局部相關(guān)性。

  • 權(quán)值共享:每個(gè)輸出節(jié)點(diǎn)僅與感受野區(qū)域內(nèi)k*k個(gè)輸入節(jié)點(diǎn)相連接,輸出節(jié)點(diǎn)數(shù)為|| J ||,則當(dāng)前層參數(shù)量為k*k*|| J ||,通過(guò)權(quán)值共享的思路,對(duì)于每個(gè)輸出節(jié)點(diǎn)o_{j},均使用相同的權(quán)值矩陣W,那么無(wú)論輸出節(jié)點(diǎn)數(shù)量|| J ||為多少,網(wǎng)絡(luò)參數(shù)量總是k*k。準(zhǔn)確的說(shuō),在但單入通道、單卷積核的條件下,參數(shù)量由|| I ||*|| J ||成功減低到k*k。

CNN由輸入層、卷積層、池化層、全連接層以及輸出層組成。

  • 輸入層:輸入圖像等信息。
  • 卷積層:用來(lái)提取圖像的底層特征。
  • 池化層/降采樣:防止過(guò)擬合,將數(shù)據(jù)維度減小。
  • 全連接層:匯總卷積層和池化層得到的圖像的底層特征和信息。
  • 輸出層:根據(jù)全連接層的信息得到概率最大的結(jié)果。
圖10

輸入層:就是把相對(duì)應(yīng)的圖像轉(zhuǎn)換為與其對(duì)應(yīng)的由像素構(gòu)成的二維矩陣,并將次二維矩陣存儲(chǔ)起來(lái)等待后面操作。

卷積層:可以包含有多個(gè)可學(xué)習(xí)的濾波器(也稱為卷積核),在輸入數(shù)據(jù)上滑動(dòng),進(jìn)行卷積操作進(jìn)而生成特征圖(圖像領(lǐng)域中通常為新生成的二維矩陣),且每個(gè)卷積核只能完成某種邏輯的特征提取,當(dāng)需要有多種邏輯特征提取時(shí),可以選擇增加多個(gè)卷積核得到多種特征。

圖11

以圖片的二維矩陣為例,想要提取其中特征,那么卷積操作就會(huì)為存在特征的區(qū)域確定一個(gè)高值,否則確定一個(gè)低值。

卷積核也是一個(gè)二維矩陣,當(dāng)然這個(gè)二維矩陣要比輸入圖像的二維矩陣要小或相等,卷積核通過(guò)在輸入圖像的二維矩陣上不停的移動(dòng),每一次移動(dòng)(按照從左到右,移動(dòng)到右邊邊界后回到行首,接著從上到下的順序移動(dòng),一直移動(dòng)到原始圖片數(shù)據(jù)的右下方)都進(jìn)行一次乘積的求和,作為此位置的值。

圖12

?中間的核函數(shù)就是卷積核,左邊紅色方框內(nèi)的四個(gè)元素稱為感受野,與卷積核的大小相同,那么是如何得到特征圖的呢?卷積核與感受野之間的運(yùn)算就是把兩個(gè)矩陣對(duì)應(yīng)的元素相乘得到的矩陣各元素求和填到特征圖的對(duì)應(yīng)位置上。卷積核為2*2,感受野也為2*2(每次移動(dòng)的步長(zhǎng)為2),故在計(jì)算特征圖的時(shí)候s1 = a*k1+b*k2+e*k3+f*k4,s2=c*k1+d*k2+g*k3+h*k4,s3=i*k1+j*k2+m*k3+n*k4,s4=k*k1+l*k2+o*k3+p*k4,且s2填寫在s1的右邊,最后特征圖為[[s1,s2],[s3,s4]]。

下面講解一下為什么要填充(Padding):

由于卷積核在計(jì)算特征圖時(shí),需要與原本的圖像數(shù)據(jù)中截取感受野大小的窗口進(jìn)行計(jì)算,隨著每次移動(dòng)一定的步長(zhǎng),會(huì)發(fā)現(xiàn)靠近中間的圖片像素?cái)?shù)據(jù)會(huì)被計(jì)算多次,但靠近邊框的圖片像素點(diǎn)數(shù)據(jù)被計(jì)算的次數(shù)會(huì)少很多,因此選擇在原始數(shù)據(jù)的外圍擴(kuò)展一些空格,這樣原本邊框的數(shù)據(jù)也會(huì)被計(jì)算多次。

圖13

池化層:減小特征圖的空間維度,從而減少模型的參數(shù)量和計(jì)算復(fù)雜度,并且可以增強(qiáng)模型的魯棒性.

有幾個(gè)卷積核就有多少個(gè)特征圖,現(xiàn)實(shí)中情況肯定更為復(fù)雜,也就會(huì)有更多的卷積核,那么就會(huì)有更多的特征圖。池化層又稱為下采樣/降采樣,也就是說(shuō),當(dāng)我們進(jìn)行卷積操作后,再將得到的特征圖進(jìn)行特征提取,將其中最具有代表性的特征提取出來(lái)(保持主要特征并減少冗余信息來(lái)提取出更加重要的特征),可以起到減小過(guò)擬合和降低維度的作用,這個(gè)過(guò)程如下所示:

圖14

另外,池化可以分為最大池化和平均池化。?

最大池化就是每次取正方形中所有值的最大值,這個(gè)最大值也就相當(dāng)于當(dāng)前位置最具有代表性的特征,如圖13所示,最大池化用的稍微多點(diǎn)。

平均池化就是取此正方形區(qū)域中所有值的平均值,考慮到每個(gè)位置的值對(duì)于此處特征的影響。

全連接層: 對(duì)運(yùn)算得到的特征圖展平,將其維度變?yōu)?*x,然后進(jìn)行計(jì)算,得到輸出值。

全連接層將卷積層和池化層提取到的特征連接起來(lái),并輸出最終的分類或回歸結(jié)果。它采用傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中常見(jiàn)的全連接結(jié)構(gòu),每個(gè)神經(jīng)元都與上一層的所有神經(jīng)元相連。全連接層的作用是對(duì)特征進(jìn)行組合和整合,以便進(jìn)行最終的預(yù)測(cè)。

圖15

輸出層:輸出最后的預(yù)測(cè)結(jié)果,如圖14所示,二分類用sigmoid,多分類用softmax。

import tensorflow as tf
from tensorflow.keras import layers# 構(gòu)建CNN模型
model = tf.keras.Sequential()# 添加卷積層
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(64, 64, 3)))
model.add(layers.MaxPooling2D((2, 2)))# 添加更多卷積層和池化層
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))# 將特征圖展平為一維向量
model.add(layers.Flatten())# 添加全連接層
model.add(layers.Dense(64, activation='relu'))# 輸出層
model.add(layers.Dense(10, activation='softmax'))# 編譯模型
model.compile(optimizer='adam',loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),metrics=['accuracy'])# 加載數(shù)據(jù)并訓(xùn)練模型
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data()
model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))

8、使用Tensorflow1.0/2.0框架創(chuàng)建神經(jīng)網(wǎng)絡(luò)

  • Tensorflow1.0代碼:注意,1.0版本的對(duì)應(yīng)x,y只是占位符,張量形狀此時(shí)已經(jīng)有,值是在下面對(duì)話session中傳入的。
import tensorflow as tf# 定義神經(jīng)網(wǎng)絡(luò)的輸入
x = tf.placeholder(tf.float32, [None, 784])# 定義神經(jīng)網(wǎng)絡(luò)的參數(shù)
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))# 定義神經(jīng)網(wǎng)絡(luò)的輸出
y = tf.nn.softmax(tf.matmul(x, W) + b)# 定義損失函數(shù)
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))# 定義優(yōu)化方法
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)# 創(chuàng)建會(huì)話并進(jìn)行訓(xùn)練
with tf.Session() as sess:sess.run(tf.global_variables_initializer())for i in range(1000):batch_xs, batch_ys = mnist.train.next_batch(100)sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

  • Tensorflow2.0代碼
import tensorflow as tf# 加載數(shù)據(jù),數(shù)據(jù)預(yù)處理部分
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0# 定義神經(jīng)網(wǎng)絡(luò)的模型
model = tf.keras.Sequential([tf.keras.layers.Flatten(input_shape=(28, 28)),tf.keras.layers.Dense(128, activation='relu'),tf.keras.layers.Dropout(0.2),tf.keras.layers.Dense(10, activation='softmax')
])# 編譯模型
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])# 訓(xùn)練模型
model.fit(x_train, y_train, epochs=5)# 評(píng)估模型
model.evaluate(x_test,  y_test, verbose=2)

Reference

?[1]《Tensorflow深度學(xué)習(xí)》書(shū)籍

?[2] 《Netural Network Design》書(shū)籍

?[3]激活函數(shù)(Activation Function)小結(jié)_有一個(gè)機(jī)器學(xué)習(xí)常用的激活函數(shù)activation function,當(dāng)輸入<0-CSDN博客

?[4]學(xué)習(xí)率設(shè)置-CSDN博客

?[5]回歸分析(線性回歸、邏輯回歸)詳解與 Python 實(shí)現(xiàn)_多變量邏輯回歸分析-CSDN博客

?[6]梯度下降算法原理講解——機(jī)器學(xué)習(xí)-CSDN博客

?[7]標(biāo)準(zhǔn)化和歸一化,請(qǐng)勿混為一談,透徹理解數(shù)據(jù)變換-CSDN博客

?[8]如何從RNN起步,一步一步通俗理解LSTM_rnn lstm-CSDN博客

?[9]卷積神經(jīng)網(wǎng)絡(luò)CNN的由來(lái),為什么要用卷積?_卷積神經(jīng)網(wǎng)絡(luò)為什么叫卷積-CSDN博客

?[10]卷積神經(jīng)網(wǎng)絡(luò)(CNN)詳細(xì)介紹及其原理詳解-CSDN博客

?[11]卷積神經(jīng)網(wǎng)絡(luò) Convolutional Neural Network | CNN-CSDN博客

?[12]卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)

?[13]https://zhuanlan.zhihu.com/p/589762877

http://www.risenshineclean.com/news/55536.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)在作用是什么青島網(wǎng)站建設(shè)
  • 網(wǎng)站建設(shè)推廣費(fèi)用優(yōu)化營(yíng)商環(huán)境條例解讀
  • wordpress博客功能網(wǎng)站關(guān)鍵詞seo優(yōu)化公司
  • 網(wǎng)站虛擬空間更新緩存b2b平臺(tái)運(yùn)營(yíng)模式
  • 免費(fèi)自己創(chuàng)建個(gè)人網(wǎng)站營(yíng)銷型網(wǎng)站建設(shè)套餐
  • 淄博公司制作網(wǎng)站有哪些網(wǎng)絡(luò)推廣公司排行榜
  • 網(wǎng)站申請(qǐng)微信登錄谷歌aso優(yōu)化
  • php制作網(wǎng)站小程序平臺(tái)
  • 建材網(wǎng)站制作黑馬培訓(xùn)是正規(guī)學(xué)校嗎
  • 如何個(gè)網(wǎng)站做優(yōu)化長(zhǎng)沙網(wǎng)站seo技術(shù)廠家
  • 用asp.net做網(wǎng)站的書(shū)深圳網(wǎng)站開(kāi)發(fā)制作
  • 昆明網(wǎng)站建設(shè)多少錢快手秒贊秒評(píng)網(wǎng)站推廣
  • 政府內(nèi)網(wǎng)網(wǎng)站建設(shè)合肥網(wǎng)絡(luò)seo
  • 黔南住房和城鄉(xiāng)建設(shè)委員會(huì)網(wǎng)站鄭州seo學(xué)校
  • 工業(yè)設(shè)計(jì)網(wǎng)站排名軟文營(yíng)銷的成功案例
  • 域名備案不是網(wǎng)站公司做的龍巖網(wǎng)站推廣
  • 簡(jiǎn)潔大氣的公司網(wǎng)站愛(ài)網(wǎng)站關(guān)鍵詞查詢工具
  • 中國(guó)化工第九建設(shè)公司網(wǎng)站專業(yè)seo優(yōu)化推廣
  • 網(wǎng)站開(kāi)發(fā)工作室 建設(shè) 方案python培訓(xùn)
  • 高德地圖可以搜索國(guó)外嗎360搜索引擎優(yōu)化
  • WordPress網(wǎng)站hym地圖百度一下電腦版首頁(yè)網(wǎng)址
  • 靜態(tài)網(wǎng)站作品seo怎樣優(yōu)化網(wǎng)站
  • 簡(jiǎn)約中國(guó)風(fēng)免費(fèi)ppt模板seo網(wǎng)站編輯優(yōu)化招聘
  • 建設(shè)網(wǎng)站不顯示添加白名單全網(wǎng)營(yíng)銷系統(tǒng)
  • 鐵道部網(wǎng)上訂票網(wǎng)站素材百度識(shí)圖掃一掃
  • wordpress相冊(cè)插件中文海外aso優(yōu)化
  • 自己如何網(wǎng)站建設(shè)seo查詢百科
  • 工商聯(lián)網(wǎng)站建設(shè)作用湖州seo排名
  • 先搭建網(wǎng)站還是先做ui怎么創(chuàng)建網(wǎng)站教程
  • 化妝培訓(xùn)網(wǎng)站模板百度網(wǎng)頁(yè)網(wǎng)址