在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

自編碼器 AE(AutoEncoder)程序

jf_96884364 ? 來源:代碼的路 ? 作者:代碼的路 ? 2023-01-11 17:29 ? 次閱讀

原文鏈接

1.程序講解

(1)香草編碼器

在這種自編碼器的最簡單結(jié)構(gòu)中,只有三個(gè)網(wǎng)絡(luò)層,即只有一個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)。它的輸入和輸出是相同的,可通過使用Adam優(yōu)化器和均方誤差損失函數(shù),來學(xué)習(xí)如何重構(gòu)輸入。

在這里,如果 隱含層維數(shù)(64)小于輸入維數(shù)(784 ),則稱這個(gè)編碼器是有損的。通過這個(gè)約束,來迫使神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)數(shù)據(jù)的壓縮表征。

input_size = 784
hidden_size = 64
output_size = 784

x = Input(shape=(input_size,))

# Encoder
h = Dense(hidden_size, activation='relu')(x)

# Decoder
r = Dense(output_size, activation='sigmoid')(h)

autoencoder = Model(input=x, output=r)
autoencoder.compile(optimizer='adam', loss='mse')

Dense :Keras Dense層,keras.layers.core.Dense( units, activation=None)

units, #代表該層的輸出維度

activation=None, #激活函數(shù).但是默認(rèn) liner

Activation :激活層對(duì)一個(gè)層的輸出施加激活函數(shù)

model.compile()Model模型方法之一:compile

optimizer :優(yōu)化器,為預(yù)定義優(yōu)化器名或優(yōu)化器對(duì)象,參考優(yōu)化器

loss :損失函數(shù),為預(yù)定義損失函數(shù)名或一個(gè)目標(biāo)函數(shù),參考損失函數(shù)

adam :adaptive moment estimation,是對(duì)RMSProp優(yōu)化器的更新。利用梯度的一階矩估計(jì)和二階矩估計(jì)動(dòng)態(tài)調(diào)整每個(gè)參數(shù)的學(xué)習(xí)率。優(yōu)點(diǎn):每一次迭代學(xué)習(xí)率都有一個(gè)明確的范圍,使得參數(shù)變化很平穩(wěn)。

mse :mean_squared_error,均方誤差

(2)多層自編碼器

如果一個(gè)隱含層還不夠,顯然可以將自動(dòng)編碼器的隱含層數(shù)目進(jìn)一步提高。

在這里,實(shí)現(xiàn)中使用了3個(gè)隱含層,而不是只有一個(gè)。 任意一個(gè)隱含層都可以作為特征表征 ,但是為了使網(wǎng)絡(luò)對(duì)稱,我們使用了最中間的網(wǎng)絡(luò)層。

input_size = 784
hidden_size = 128
code_size = 64

x = Input(shape=(input_size,))

# Encoder
hidden_1 = Dense(hidden_size, activation='relu')(x)
h = Dense(code_size, activation='relu')(hidden_1)

# Decoder
hidden_2 = Dense(hidden_size, activation='relu')(h)
r = Dense(input_size, activation='sigmoid')(hidden_2)

autoencoder = Model(input=x, output=r)
autoencoder.compile(optimizer='adam', loss='mse')

(3)卷積自編碼器

除了全連接層,自編碼器也能應(yīng)用到卷積層,原理是一樣的,但是 要使用3D矢量(如圖像)而不是展平后的一維矢量 。對(duì)輸入圖像進(jìn)行 下采樣 ,以提供較小維度的潛在表征,來迫使自編碼器從壓縮后的數(shù)據(jù)進(jìn)行學(xué)習(xí)。

x = Input(shape=(28, 28,1)) 

# Encoder
conv1_1 = Conv2D(16, (3, 3), activation='relu', padding='same')(x)
pool1 = MaxPooling2D((2, 2), padding='same')(conv1_1)
conv1_2 = Conv2D(8, (3, 3), activation='relu', padding='same')(pool1)
pool2 = MaxPooling2D((2, 2), padding='same')(conv1_2)
conv1_3 = Conv2D(8, (3, 3), activation='relu', padding='same')(pool2)
h = MaxPooling2D((2, 2), padding='same')(conv1_3)

# Decoder
conv2_1 = Conv2D(8, (3, 3), activation='relu', padding='same')(h)
up1 = UpSampling2D((2, 2))(conv2_1)
conv2_2 = Conv2D(8, (3, 3), activation='relu', padding='same')(up1)
up2 = UpSampling2D((2, 2))(conv2_2)
conv2_3 = Conv2D(16, (3, 3), activation='relu')(up2)
up3 = UpSampling2D((2, 2))(conv2_3)
r = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(up3)

autoencoder = Model(input=x, output=r)
autoencoder.compile(optimizer='adam', loss='mse')

conv2d :Conv2D(filters, kernel_size, strides=(1, 1), padding='valid')

filters:卷積核的數(shù)目(即輸出的維度)。

kernel_size:卷積核的寬度和長度,單個(gè)整數(shù)或由兩個(gè)整數(shù)構(gòu)成的list/tuple。如為單個(gè)整數(shù),則表示在各個(gè)空間維度的相同長度。

strides:卷積的步長,單個(gè)整數(shù)或由兩個(gè)整數(shù)構(gòu)成的list/tuple。如為單個(gè)整數(shù),則表示在各個(gè)空間維度的相同步長。任何不為1的strides均與任何不為1的dilation_rate均不兼容。

padding:補(bǔ)0策略,有“valid”, “same” 兩種。“valid”代表只進(jìn)行有效的卷積,即對(duì)邊界數(shù)據(jù)不處理。“same”代表保留邊界處的卷積結(jié)果,通常會(huì)導(dǎo)致輸出shape與輸入shape相同。

MaxPooling2D :2D輸入的最大池化層。MaxPooling2D(pool_size=(2, 2), strides=None, border_mode='valid')

pool_size:pool_size:長為2的整數(shù)tuple,代表在兩個(gè)方向(豎直,水平)上的下采樣因子,如取(2,2)將使圖片在兩個(gè)維度上均變?yōu)樵L的一半。

strides:長為2的整數(shù)tuple,或者None,步長值。

padding:字符串,“valid”或者”same”。

UpSampling2D :上采樣。UpSampling2D(size=(2, 2))

size:整數(shù)tuple,分別為行和列上采樣因子。

(4)正則自編碼器

除了施加一個(gè)比輸入維度小的隱含層,一些其他方法也可用來約束自編碼器重構(gòu),如正則自編碼器。

正則自編碼器不需要使用淺層的編碼器和解碼器以及小的編碼維數(shù)來限制模型容量,而是使用損失函數(shù)來鼓勵(lì)模型學(xué)習(xí)其他特性(除了將輸入復(fù)制到輸出)。這些特性包括稀疏表征、小導(dǎo)數(shù)表征、以及對(duì)噪聲或輸入缺失的魯棒性。

即使模型容量大到足以學(xué)習(xí)一個(gè)無意義的恒等函數(shù),非線性且過完備的正則自編碼器仍然能夠從數(shù)據(jù)中學(xué)到一些關(guān)于數(shù)據(jù)分布的有用信息。

在實(shí)際應(yīng)用中,常用到兩種正則自編碼器,分別是稀疏自編碼器降噪自編碼器

(5)稀疏自編碼器

一般用來學(xué)習(xí)特征,以便用于像分類這樣的任務(wù)。稀疏正則化的自編碼器必須反映訓(xùn)練數(shù)據(jù)集的獨(dú)特統(tǒng)計(jì)特征,而不是簡單地充當(dāng)恒等函數(shù)。以這種方式訓(xùn)練,執(zhí)行附帶稀疏懲罰的復(fù)現(xiàn)任務(wù)可以得到能學(xué)習(xí)有用特征的模型。

還有一種用來約束自動(dòng)編碼器重構(gòu)的方法,是對(duì)其損失函數(shù)施加約束。比如,可對(duì) 損失函數(shù)添加一個(gè)正則化約束 ,這樣能使自編碼器學(xué)習(xí)到數(shù)據(jù)的稀疏表征。

要注意,在隱含層中,我們還加入了 L1正則化,作為優(yōu)化階段中損失函數(shù)的懲罰項(xiàng) 。與香草自編碼器相比,這樣操作后的數(shù)據(jù)表征更為稀疏。

input_size = 784
hidden_size = 64
output_size = 784

x = Input(shape=(input_size,))

# Encoder
h = Dense(hidden_size, activation='relu', activity_regularizer=regularizers.l1(10e-5))(x)
#施加在輸出上的L1正則項(xiàng)

# Decoder
r = Dense(output_size, activation='sigmoid')(h)

autoencoder = Model(input=x, output=r)
autoencoder.compile(optimizer='adam', loss='mse')

activity_regularizer :施加在輸出上的正則項(xiàng),為ActivityRegularizer對(duì)象

l1(l=0.01) :L1正則項(xiàng),正則項(xiàng)通常用于對(duì)模型的訓(xùn)練施加某種約束,L1正則項(xiàng)即L1范數(shù)約束,該約束會(huì)使被約束矩陣/向量更稀疏。

(6)降噪自編碼器

這里不是通過對(duì)損失函數(shù)施加懲罰項(xiàng),而是 通過改變損失函數(shù)的重構(gòu)誤差項(xiàng)來學(xué)習(xí)一些有用信息

向訓(xùn)練數(shù)據(jù)加入噪聲,并使自編碼器學(xué)會(huì)去除這種噪聲來獲得沒有被噪聲污染過的真實(shí)輸入。因此,這就迫使編碼器學(xué)習(xí)提取最重要的特征并學(xué)習(xí)輸入數(shù)據(jù)中更加魯棒的表征,這也是它的泛化能力比一般編碼器強(qiáng)的原因。

這種結(jié)構(gòu)可以通過梯度下降算法來訓(xùn)練。

x = Input(shape=(28, 28, 1))

# Encoder
conv1_1 = Conv2D(32, (3, 3), activation='relu', padding='same')(x)
pool1 = MaxPooling2D((2, 2), padding='same')(conv1_1)
conv1_2 = Conv2D(32, (3, 3), activation='relu', padding='same')(pool1)
h = MaxPooling2D((2, 2), padding='same')(conv1_2)

# Decoder
conv2_1 = Conv2D(32, (3, 3), activation='relu', padding='same')(h)
up1 = UpSampling2D((2, 2))(conv2_1)
conv2_2 = Conv2D(32, (3, 3), activation='relu', padding='same')(up1)
up2 = UpSampling2D((2, 2))(conv2_2)
r = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(up2)

autoencoder = Model(input=x, output=r)
autoencoder.compile(optimizer='adam', loss='mse')

2.程序?qū)嵗?/h1>

(1)單層自編碼器

from keras.layers import Input, Dense
from keras.models import Model
from keras.datasets import mnist
import numpy as np
import matplotlib.pyplot as plt
 
(x_train, _), (x_test, _) = mnist.load_data()
x_train = x_train.astype('float32') / 255.
x_test = x_test.astype('float32') / 255.
x_train = x_train.reshape((len(x_train), np.prod(x_train.shape[1:])))
x_test = x_test.reshape((len(x_test), np.prod(x_test.shape[1:])))
print(x_train.shape)
print(x_test.shape)
 
 #單層自編碼器
encoding_dim = 32
input_img = Input(shape=(784,))
 
encoded = Dense(encoding_dim, activation='relu')(input_img)
decoded = Dense(784, activation='sigmoid')(encoded)
 
autoencoder = Model(inputs=input_img, outputs=decoded)
encoder = Model(inputs=input_img, outputs=encoded)
 
encoded_input = Input(shape=(encoding_dim,))
decoder_layer = autoencoder.layers[-1]
 
decoder = Model(inputs=encoded_input, outputs=decoder_layer(encoded_input))
 
autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')
 
autoencoder.fit(x_train, x_train, epochs=50, batch_size=256, 
                shuffle=True, validation_data=(x_test, x_test))
 
encoded_imgs = encoder.predict(x_test)
decoded_imgs = decoder.predict(encoded_imgs)
 
 #輸出圖像
n = 10  # how many digits we will display
plt.figure(figsize=(20, 4))
for i in range(n):
    ax = plt.subplot(2, n, i + 1)
    plt.imshow(x_test[i].reshape(28, 28))
    plt.gray()
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
 
    ax = plt.subplot(2, n, i + 1 + n)
    plt.imshow(decoded_imgs[i].reshape(28, 28))
    plt.gray()
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
plt.show()

(2)卷積自編碼器

from keras.layers import Input, Convolution2D, MaxPooling2D, UpSampling2D
from keras.models import Model
from keras.datasets import mnist
import numpy as np
import matplotlib.pyplot as plt
from keras.callbacks import TensorBoard

(x_train, _), (x_test, _) = mnist.load_data()
x_train = x_train.astype('float32') / 255.
x_test = x_test.astype('float32') / 255.
x_train = np.reshape(x_train, (len(x_train), 28, 28, 1))
x_test = np.reshape(x_test, (len(x_test), 28, 28, 1))
noise_factor = 0.5
x_train_noisy = x_train + noise_factor * np.random.normal(loc=0.0, scale=1.0, size=x_train.shape) 
x_test_noisy = x_test + noise_factor * np.random.normal(loc=0.0, scale=1.0, size=x_test.shape) 
x_train_noisy = np.clip(x_train_noisy, 0., 1.)
x_test_noisy = np.clip(x_test_noisy, 0., 1.)
print(x_train.shape)
print(x_test.shape)


#卷積自編碼器
input_img = Input(shape=(28, 28, 1))
 
x = Convolution2D(16, (3, 3), activation='relu', padding='same')(input_img)
x = MaxPooling2D((2, 2), padding='same')(x)
x = Convolution2D(8, (3, 3), activation='relu', padding='same')(x)
x = MaxPooling2D((2, 2), padding='same')(x)
x = Convolution2D(8, (3, 3), activation='relu', padding='same')(x)
encoded = MaxPooling2D((2, 2), padding='same')(x)
 
x = Convolution2D(8, (3, 3), activation='relu', padding='same')(encoded)
x = UpSampling2D((2, 2))(x)
x = Convolution2D(8, (3, 3), activation='relu', padding='same')(x)
x = UpSampling2D((2, 2))(x)
x = Convolution2D(16, (3, 3), activation='relu')(x)
x = UpSampling2D((2, 2))(x)
decoded = Convolution2D(1, (3, 3), activation='sigmoid', padding='same')(x)
 
autoencoder = Model(inputs=input_img, outputs=decoded)
autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')
 
# 打開一個(gè)終端并啟動(dòng)TensorBoard,終端中輸入 tensorboard --logdir=/autoencoder
autoencoder.fit(x_train, x_train, epochs=50, batch_size=256,
                shuffle=True, validation_data=(x_test, x_test),
                callbacks=[TensorBoard(log_dir='autoencoder')])
 
decoded_imgs = autoencoder.predict(x_test)


#輸出圖像
n = 10  # how many digits we will display
plt.figure(figsize=(20, 4))
for i in range(n):
    ax = plt.subplot(2, n, i + 1)
    plt.imshow(x_test[i].reshape(28, 28))
    plt.gray()
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
 
    ax = plt.subplot(2, n, i + 1 + n)
    plt.imshow(decoded_imgs[i].reshape(28, 28))
    plt.gray()
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
plt.show()

(3)深度自編碼器

from keras.layers import Input, Dense
from keras.models import Model
from keras.datasets import mnist
import numpy as np
import matplotlib.pyplot as plt

(x_train, _), (x_test, _) = mnist.load_data()
x_train = x_train.astype('float32') / 255.
x_test = x_test.astype('float32') / 255.
x_train = x_train.reshape((len(x_train), np.prod(x_train.shape[1:])))
x_test = x_test.reshape((len(x_test), np.prod(x_test.shape[1:])))
print(x_train.shape)
print(x_test.shape)



#深度自編碼器
input_img = Input(shape=(784,))
encoded = Dense(128, activation='relu')(input_img)
encoded = Dense(64, activation='relu')(encoded)
decoded_input = Dense(32, activation='relu')(encoded)
 
decoded = Dense(64, activation='relu')(decoded_input)
decoded = Dense(128, activation='relu')(decoded)
decoded = Dense(784, activation='sigmoid')(encoded)
 
autoencoder = Model(inputs=input_img, outputs=decoded)
encoder = Model(inputs=input_img, outputs=decoded_input)
 
autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')
 
autoencoder.fit(x_train, x_train, epochs=50, batch_size=256, 
                shuffle=True, validation_data=(x_test, x_test))
 
encoded_imgs = encoder.predict(x_test)
decoded_imgs = autoencoder.predict(x_test)



#輸出圖像
n = 10  # how many digits we will display
plt.figure(figsize=(20, 4))
for i in range(n):
    ax = plt.subplot(2, n, i + 1)
    plt.imshow(x_test[i].reshape(28, 28))
    plt.gray()
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
 
    ax = plt.subplot(2, n, i + 1 + n)
    plt.imshow(decoded_imgs[i].reshape(28, 28))
    plt.gray()
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
plt.show()

(4)降噪自編碼器

from keras.layers import Input, Convolution2D, MaxPooling2D, UpSampling2D
from keras.models import Model
from keras.datasets import mnist
import numpy as np
import matplotlib.pyplot as plt
from keras.callbacks import TensorBoard
 
(x_train, _), (x_test, _) = mnist.load_data()
x_train = x_train.astype('float32') / 255.
x_test = x_test.astype('float32') / 255.
x_train = np.reshape(x_train, (len(x_train), 28, 28, 1))
x_test = np.reshape(x_test, (len(x_test), 28, 28, 1))
noise_factor = 0.5
x_train_noisy = x_train + noise_factor * np.random.normal(loc=0.0, scale=1.0, size=x_train.shape) 
x_test_noisy = x_test + noise_factor * np.random.normal(loc=0.0, scale=1.0, size=x_test.shape) 
x_train_noisy = np.clip(x_train_noisy, 0., 1.)
x_test_noisy = np.clip(x_test_noisy, 0., 1.)
print(x_train.shape)
print(x_test.shape)
 
input_img = Input(shape=(28, 28, 1))
 
x = Convolution2D(32, (3, 3), activation='relu', padding='same')(input_img)
x = MaxPooling2D((2, 2), padding='same')(x)
x = Convolution2D(32, (3, 3), activation='relu', padding='same')(x)
encoded = MaxPooling2D((2, 2), padding='same')(x)
 
x = Convolution2D(32, (3, 3), activation='relu', padding='same')(encoded)
x = UpSampling2D((2, 2))(x)
x = Convolution2D(32, (3, 3), activation='relu', padding='same')(x)
x = UpSampling2D((2, 2))(x)
decoded = Convolution2D(1, (3, 3), activation='sigmoid', padding='same')(x)
 
autoencoder = Model(inputs=input_img, outputs=decoded)
autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')
 
# 打開一個(gè)終端并啟動(dòng)TensorBoard,終端中輸入 tensorboard --logdir=/autoencoder
autoencoder.fit(x_train_noisy, x_train, epochs=10, batch_size=256,
                shuffle=True, validation_data=(x_test_noisy, x_test),
                callbacks=[TensorBoard(log_dir='autoencoder', write_graph=False)])
 
decoded_imgs = autoencoder.predict(x_test_noisy)
 
n = 10
plt.figure(figsize=(30, 6))
for i in range(n):
    ax = plt.subplot(3, n, i + 1)
    plt.imshow(x_test[i].reshape(28, 28))
    plt.gray()
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
    
    ax = plt.subplot(3, n, i + 1 + n)
    plt.imshow(x_test_noisy[i].reshape(28, 28))
    plt.gray()
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
 
    ax = plt.subplot(3, n, i + 1 + 2*n)
    plt.imshow(decoded_imgs[i].reshape(28, 28))
    plt.gray()
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
plt.show()

學(xué)習(xí)更多編程知識(shí),請(qǐng)關(guān)注我的公眾號(hào):

代碼的路

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編碼器
    +關(guān)注

    關(guān)注

    45

    文章

    3738

    瀏覽量

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

    關(guān)注

    42

    文章

    4793

    瀏覽量

    102040
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3670

    瀏覽量

    94614
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3815

    瀏覽量

    82002
  • AutoEncoder
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    694
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于變分自編碼器的異常小區(qū)檢測

    用于訓(xùn)練變分自編碼器模型,測試集用于評(píng)估模型檢測準(zhǔn)確性。  在樣本不平衡的情況下,通過設(shè)定不同的重構(gòu)誤差門限,分別統(tǒng)計(jì)AE和VAE所檢測出的異常小區(qū)數(shù),驗(yàn)證檢測準(zhǔn)確率,如表1和表2所示。顯然,本文所用
    發(fā)表于 12-03 15:06

    編碼器,編碼器是什么意思

    編碼器,編碼器是什么意思 編碼器 編碼器(encoder)是將信號(hào)
    發(fā)表于 03-08 15:04 ?3201次閱讀

    是什么讓變分自編碼器成為如此成功的多媒體生成工具呢?

    標(biāo)準(zhǔn)自編碼器能學(xué)習(xí)生成緊湊的數(shù)據(jù)表達(dá)并重建輸入數(shù)據(jù),然而除了像去噪自編碼器等為數(shù)不多的應(yīng)用外,它的應(yīng)用卻極其有限。其根本原因在于自編碼器將輸入轉(zhuǎn)換為隱含空間中的表達(dá)并不是連續(xù)的,使得其中的插值和擾動(dòng)難以完成。
    的頭像 發(fā)表于 04-19 16:48 ?1.4w次閱讀
    是什么讓變分<b class='flag-5'>自編碼器</b>成為如此成功的多媒體生成工具呢?

    自編碼器介紹

    自編碼器若僅要求X≈Y,且對(duì)隱藏神經(jīng)元進(jìn)行稀疏約束,從而使大部分節(jié)點(diǎn)值為0或接近0的無效值,便得到稀疏自動(dòng)編碼算法。一般情況下,隱含層的神經(jīng)元數(shù)應(yīng)少于輸入X的個(gè)數(shù),因?yàn)榇藭r(shí)才能保證這個(gè)網(wǎng)絡(luò)結(jié)構(gòu)的價(jià)值。
    發(fā)表于 06-11 15:07 ?5029次閱讀

    稀疏自編碼器及TensorFlow實(shí)現(xiàn)詳解

     稀疏自編碼器(又稱稀疏自動(dòng)編碼機(jī))中,重構(gòu)誤差中添加了一個(gè)稀疏懲罰,用來限定任何時(shí)刻的隱藏層中并不是所有單元都被激活。如果 m 是輸入模式的總數(shù),那么可以定義一個(gè)參數(shù) ρ_hat,用來表示每個(gè)隱藏層單元的行為(平均激活多少次)。
    發(fā)表于 06-11 16:45 ?3963次閱讀
    稀疏<b class='flag-5'>自編碼器</b>及TensorFlow實(shí)現(xiàn)詳解

    基于稀疏自編碼器的屬性網(wǎng)絡(luò)嵌入算法SAANE

    在多數(shù)屬性網(wǎng)絡(luò)嵌入算法中,拓?fù)浣Y(jié)構(gòu)的設(shè)計(jì)只考慮節(jié)點(diǎn)間直接鏈接,而未考慮節(jié)點(diǎn)間間接鏈接及不同節(jié)點(diǎn)的共同鏈接比,導(dǎo)致不能充分提取網(wǎng)絡(luò)真實(shí)拓?fù)涮卣鳌a槍?duì)該問題,提出一種基于稀疏自編碼器的屬性網(wǎng)絡(luò)嵌入算法
    發(fā)表于 03-27 10:26 ?7次下載
    基于稀疏<b class='flag-5'>自編碼器</b>的屬性網(wǎng)絡(luò)嵌入算法SAANE

    基于變分自編碼器的海面艦船軌跡預(yù)測算法

    海面艦船的軌跡預(yù)測對(duì)預(yù)測精度和實(shí)時(shí)性具有較高要求,而艦船軌跡數(shù)據(jù)特征的高復(fù)雜度特性,導(dǎo)致傳統(tǒng)預(yù)測算法精度低、耗時(shí)長,難以達(dá)到良好的預(yù)測效果。為此,提出一種基于變分自編碼器的海面艦船軌跡預(yù)測算法。將
    發(fā)表于 03-30 09:53 ?5次下載
    基于變分<b class='flag-5'>自編碼器</b>的海面艦船軌跡預(yù)測算法

    自編碼器基礎(chǔ)理論與實(shí)現(xiàn)方法、應(yīng)用綜述

    自編碼器是深度學(xué)習(xí)中的一種非常重要的無監(jiān)督學(xué)習(xí)方法,能夠從大量無標(biāo)簽的數(shù)據(jù)中自動(dòng)學(xué)習(xí),得到蘊(yùn)含在數(shù)據(jù)中的有效特征。因此,自編碼方法近年來受到了廣泛的關(guān)注,已成功應(yīng)用于很多領(lǐng)域,例如數(shù)據(jù)分類、模式識(shí)別
    發(fā)表于 03-31 11:24 ?9次下載
    <b class='flag-5'>自編碼器</b>基礎(chǔ)理論與實(shí)現(xiàn)方法、應(yīng)用綜述

    可實(shí)現(xiàn)骨骼運(yùn)動(dòng)重定向的通用雙向循環(huán)自編碼器

    針對(duì)面向關(guān)節(jié)坐標(biāo)表示的骨骼運(yùn)動(dòng)數(shù)據(jù)重定向網(wǎng)絡(luò)缺乏通用性的問題,提出一種能夠?qū)崿F(xiàn)源骨骼到多種骨骼運(yùn)動(dòng)重定向的通用雙向循環(huán)自編碼器。該自編碼器由基于關(guān)節(jié)坐標(biāo)表示的運(yùn)動(dòng)數(shù)據(jù)以重建誤差為損失函數(shù)訓(xùn)練得到。在
    發(fā)表于 04-21 10:38 ?2次下載
    可實(shí)現(xiàn)骨骼運(yùn)動(dòng)重定向的通用雙向循環(huán)<b class='flag-5'>自編碼器</b>

    一種基于變分自編碼器的人臉圖像修復(fù)方法

    基于卷積神經(jīng)網(wǎng)絡(luò)的人臉圖像修復(fù)技術(shù)在刑事偵破、文物保護(hù)及影視特效等領(lǐng)域有著重要的應(yīng)用。但現(xiàn)有方法存在著圖像修復(fù)結(jié)果不夠清晰以及結(jié)果多樣化不足等缺點(diǎn),為此,提出了一種基于變分自編碼器的人臉圖像修復(fù)
    發(fā)表于 04-21 10:51 ?10次下載
    一種基于變分<b class='flag-5'>自編碼器</b>的人臉圖像修復(fù)方法

    自編碼器神經(jīng)網(wǎng)絡(luò)應(yīng)用及實(shí)驗(yàn)綜述

    自編碼器是深度學(xué)習(xí)中的一種非常重要的無監(jiān)督學(xué)習(xí)方法,能夠從大量無標(biāo)簽的數(shù)據(jù)中自動(dòng)學(xué)習(xí),得到蘊(yùn)含在數(shù)據(jù)中的有效特征。因此,自編碼方法近年來受到了廣泛的關(guān)注,已成功應(yīng)用于很多領(lǐng)域,例如數(shù)據(jù)分類、模式識(shí)別
    發(fā)表于 06-07 16:38 ?7次下載

    基于交叉熵?fù)p失函欻的深度自編碼器診斷模型

    對(duì)小類別樣本的學(xué)習(xí)。尤其當(dāng)故障樣本數(shù)極少時(shí),此問題更突岀。針對(duì)這饣問題,提岀一種基于改進(jìn)交叉熵?fù)p失函欻的深度自編碼器的診斷模型,首先提取振動(dòng)數(shù)據(jù)的小波包能量,其次將小波包能量輸入到深度自編碼器中,最后通過SⅥa分類
    發(fā)表于 06-18 16:49 ?9次下載

    堆疊降噪自動(dòng)編碼器(SDAE)

    自動(dòng)編碼器(Auto-Encoder,AE自編碼器autoencoder)是神經(jīng)網(wǎng)絡(luò)的一種,經(jīng)過訓(xùn)練后能嘗試將輸入復(fù)制到輸出。自編碼器
    的頭像 發(fā)表于 01-11 17:04 ?7057次閱讀
    堆疊降噪自動(dòng)<b class='flag-5'>編碼器</b>(SDAE)

    編碼器好壞怎么判斷,編碼器原理

    Autoencoder),它是一種無監(jiān)督學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型。自動(dòng)編碼器由兩部分組成:編碼器和解碼編碼器負(fù)責(zé)將輸入數(shù)據(jù)轉(zhuǎn)換為低維表示,解
    的頭像 發(fā)表于 01-23 10:58 ?2231次閱讀

    自編碼器的原理和類型

    自編碼器Autoencoder, AE)是一種無監(jiān)督學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型,它通過編碼器和解碼的組合,實(shí)現(xiàn)了對(duì)輸入數(shù)據(jù)的壓縮和重構(gòu)。
    的頭像 發(fā)表于 07-09 11:25 ?1972次閱讀
    主站蜘蛛池模板: 椎名空中文字幕一区二区 | 亚洲伊人久久综合影院2021 | 久久久久久亚洲精品 | 啪一啪日一日 | 色色色色色色色色色色色色色色 | 黄色免费在线视频 | 一品毛片| 色播在线永久免费视频网站 | 日本口工全彩无遮拦漫画大 | 久久国产乱子伦精品免费午夜 | 在线观看亚洲人成网站 | 午夜视频在线观看免费观看在线观看 | 国产精品一区在线观看你懂的 | 日产乱码免费一卡二卡在线 | 美女扒开尿口给男的桶个爽 | 国产全部理论片线观看 | 四虎永久免费最新在线 | 波多野结衣在线一区 | 国产精品丝袜xxxxxxx | 久久久国产精品网站 | 激情com | 久久人成 | 欧美午夜精品久久久久久黑人 | 成人看片免费无限观看视频 | 精品色| 性欧美1819| 人人搞人人搞 | 色偷偷88欧美精品久久久 | 色屁屁www影院免费观看视频 | 好吊色37pao在线观看 | 在线观看www妖精免费福利视频 | 免费看男女下面日出水视频 | 夜夜精品视频一区二区 | 国产成人精品本亚洲 | 国产秦先生大战白丝97在线 | 新版bt天堂资源在线 | 国产成人啪午夜精品网站 | 视频在线观看免费视频 | 一区二区亚洲视频 | 国产亚洲精品aaa大片 | 国产精品资源 |