成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Autoencoder

GitChat / 2773人閱讀

摘要:簡(jiǎn)單來(lái)說(shuō)是一個(gè)壓縮編碼器,也就是對(duì)的一坨東西通過(guò)變換,輸出和一樣的東西。例如是一個(gè)雞,也是一個(gè)雞,是一個(gè)鴨,也是一個(gè)鴨。學(xué)術(shù)一點(diǎn)說(shuō)就是找到一個(gè)函數(shù)能夠使得,叫做。加入實(shí)戰(zhàn)微信群,實(shí)戰(zhàn)群,算法微信群,算法群。

作者:chen_h
微信號(hào) & QQ:862251340
微信公眾號(hào):coderpai
簡(jiǎn)書地址:https://www.jianshu.com/p/fd3...


自編碼器 Autoencoder

稀疏自編碼器 Sparse Autoencoder

降噪自編碼器 Denoising Autoencoder

堆疊自編碼器 Stacked Autoencoder


本博客是從梁斌博士的博客上面復(fù)制過(guò)來(lái)的,本人利用 Tensorflow 重新實(shí)現(xiàn)了博客中的代碼

深度學(xué)習(xí)有一個(gè)重要的概念叫 autoencoder ,這是個(gè)什么東西呢,本文通過(guò)一個(gè)例子來(lái)普及這個(gè)術(shù)語(yǔ)。

簡(jiǎn)單來(lái)說(shuō) autoencoder 是一個(gè)壓縮編碼器,也就是對(duì) input 的一坨東西通過(guò)變換,輸出和 input 一樣的東西。例如 input 是一個(gè)雞, output 也是一個(gè)雞, input 是一個(gè)鴨, output 也是一個(gè)鴨。學(xué)術(shù)一點(diǎn)說(shuō)就是找到一個(gè)函數(shù)能夠使得 Function(input) = input ,叫做 identity function 。如上圖所示,即學(xué)習(xí) Hw,b(x)=x 。

但這和深度學(xué)習(xí)有什么關(guān)系呢? 這就要說(shuō)到壓縮編碼,我們都知道input需要有一種編碼形式,如果我們能在函數(shù)內(nèi)部找到一個(gè)更簡(jiǎn)潔的編碼形式,那么這個(gè)變換過(guò)程就等價(jià)于學(xué)習(xí)到了一種壓縮表示的函數(shù),能夠少量的存儲(chǔ)形式來(lái)表示原本較復(fù)雜的但信息冗余較大的表示形式。

我們下面的代碼中舉了一個(gè)精彩的例子(這個(gè)例子是從同學(xué)的一次實(shí)驗(yàn)中直接受啟發(fā),我只是按照自己的理解實(shí)現(xiàn)了一把,例子非原創(chuàng))。在這個(gè)例子中,input是4個(gè)不同的數(shù)字,分別是

    (0,0,0,1)可以看作1
    (0,0,1,0)可以看作2
    (0,1,0,0)可以看作3
    (1,0,0,0)可以看作4

因?yàn)樗械?input 只有這4種,因此其實(shí)用4個(gè)bit是不經(jīng)濟(jì)的,存在壓縮表示的可能性,比如2個(gè)bit就可以表示這4個(gè)不同的數(shù)。

那么我們?cè)O(shè)計(jì)了輸入層是 4+1 個(gè)神經(jīng)元(4個(gè)神經(jīng)元接受4bit編碼的input,1個(gè)神經(jīng)元是常數(shù)項(xiàng),這個(gè)用來(lái)做先驗(yàn)的);隱藏層是 2+1 個(gè)神經(jīng)元(因?yàn)槲覀儗?shí)現(xiàn)已經(jīng)知道2個(gè)bit就夠了,所以2個(gè)隱藏層,具有足夠的表達(dá)能力);輸出層是 4 個(gè)神經(jīng)元(為了能讓輸出和輸入保持一致)。

通過(guò)數(shù)輪迭代,我們看到如下的情況:

    (0,0,0,1)->(0.99,0.09)->(0.06,0.00,0.01,0.91)
    (0,0,1,0)->(0.85,0.99)->(0.00,0.07,0.90,0.07)
    (0,1,0,0)->(0.01,0.67)->(0.06,0.87,0.11,0.00)
    (1,0,0,0)->(0.12,0.00)->(0.89,0.10,0.00,0.02)
    input_layer hidden_layer  output_layer

hidden層的編碼恰好可以看作是:

     (0.99,0.09)  1,0
     (0.85,0.99)  1,1
     (0.01,0.67)  0,1
     (0.12,0.00)  0,0

也就是說(shuō)輸入的(0,0,0,1)可以被壓縮表示成(1,0),最終4bit的信息,可以用2bit表示,當(dāng)然還需要保持邊的權(quán)重,但這些邊權(quán)重只需要一份,在輸入足夠復(fù)雜的時(shí)候,壓縮表示是有價(jià)值的。

那壓縮表示有什么價(jià)值呢?比如一組廣告,一條新聞,人看了挺好,壓縮表示后,人看起來(lái)就不爽了,恰恰是人看著不爽了,機(jī)器就好處理了,下回再說(shuō)。

實(shí)驗(yàn)代碼如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tensorflow as tf 
import numpy as np 


def model(x, w1, w2, b1, b2):

    a = tf.matmul(x, w1)
    b = tf.add(a,b1)
    c = tf.sigmoid(b)
    hidden = tf.sigmoid(tf.add(tf.matmul(x, w1), b1))
    out = tf.nn.softmax(tf.add(tf.matmul(hidden, w2), b2))

    return out

x = tf.placeholder("float", [4, 4])

w1 = tf.Variable(tf.random_normal([4,2]), name = "w1")
w2 = tf.Variable(tf.random_normal([2,4]), name = "w2")
b1 = tf.Variable(tf.random_normal([2]), name = "b1")
b2 = tf.Variable(tf.random_normal([4]), name = "b2")


pred = model(x, w1, w2, b1, b2)
cost = tf.reduce_sum(tf.pow(tf.sub(pred, x), 2))
optimizer = tf.train.AdamOptimizer().minimize(cost)

with tf.Session() as sess:

    init = tf.initialize_all_variables()
    sess.run(init)

    input_data = np.array([[0,0,0,1],[0,0,1,0],[0,1,0,0],[1,0,0,0]], float)

    for i in xrange(10000):    
        sess.run(optimizer, feed_dict = {x: input_data})

    res = sess.run(pred, feed_dict = {x: input_data})
    index = np.argmax(res, 1)
    for i in xrange(4):
        tmp = np.zeros((4,))
        tmp[index[i]] = 1.
        print res[i]
        print tmp

Reference:

UFLDL

小白學(xué)Tensorflow之自編碼Autoencoder


作者:chen_h
微信號(hào) & QQ:862251340
簡(jiǎn)書地址:https://www.jianshu.com/p/fd3...

CoderPai 是一個(gè)專注于算法實(shí)戰(zhàn)的平臺(tái),從基礎(chǔ)的算法到人工智能算法都有設(shè)計(jì)。如果你對(duì)算法實(shí)戰(zhàn)感興趣,請(qǐng)快快關(guān)注我們吧。加入AI實(shí)戰(zhàn)微信群,AI實(shí)戰(zhàn)QQ群,ACM算法微信群,ACM算法QQ群。長(zhǎng)按或者掃描如下二維碼,關(guān)注 “CoderPai” 微信號(hào)(coderpai)


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/41168.html

相關(guān)文章

  • Sparse Autoencoder

    摘要:稀疏編碼是對(duì)網(wǎng)絡(luò)的隱藏層的輸出有了約束,即隱藏層神經(jīng)元輸出的平均值應(yīng)盡量為。也就是說(shuō),大部分的隱藏層神經(jīng)元都處于非狀態(tài)。為了滿足這一條件,隱藏層神經(jīng)元的活躍度必須接近于。 作者:chen_h微信號(hào) & QQ:862251340微信公眾號(hào):coderpai簡(jiǎn)書地址:https://www.jianshu.com/p/5f3... 自編碼器 Autoencoder 稀疏自編碼器 Spa...

    harryhappy 評(píng)論0 收藏0
  • Denoising Autoencoder

    摘要:降噪自編碼器認(rèn)為,設(shè)計(jì)一個(gè)能夠恢復(fù)原始信號(hào)的自編碼器未必是最好的,而能夠?qū)Ρ晃廴酒茐牡脑紨?shù)據(jù)進(jìn)行編碼解碼,然后還能恢復(fù)真正的原始數(shù)據(jù),這樣的特征才是好的。該恢復(fù)信號(hào)盡可能的逼近未被污染的原數(shù)據(jù)。此時(shí),監(jiān)督訓(xùn)練的誤差函數(shù)就從原來(lái)的變成了。 作者:chen_h微信號(hào) & QQ:862251340微信公眾號(hào):coderpai簡(jiǎn)書地址:https://www.jianshu.com/p/f7...

    JerryC 評(píng)論0 收藏0
  • Deep learning:九(Sparse Autoencoder練習(xí))

    摘要:實(shí)驗(yàn)基礎(chǔ)其實(shí)實(shí)現(xiàn)該功能的主要步驟還是需要計(jì)算出網(wǎng)絡(luò)的損失函數(shù)以及其偏導(dǎo)數(shù),具體的公式可以參考前面的博文八。生成均勻分布的偽隨機(jī)數(shù)。 前言:   現(xiàn)在來(lái)進(jìn)入sparse autoencoder的一個(gè)實(shí)例練習(xí),參考Ng的網(wǎng)頁(yè)教程:Exercise:Sparse Autoencoder。 這個(gè)例子所要實(shí)現(xiàn)的內(nèi)容大概如下:從給定的很多張自然圖片中截取出大小為8*8的小patches圖片共10000張...

    ?xiaoxiao, 評(píng)論0 收藏0
  • 人工智能術(shù)語(yǔ)表

    摘要:如果你對(duì)算法實(shí)戰(zhàn)感興趣,請(qǐng)快快關(guān)注我們吧。加入實(shí)戰(zhàn)微信群,實(shí)戰(zhàn)群,算法微信群,算法群。 作者:chen_h微信號(hào) & QQ:862251340微信公眾號(hào):coderpai簡(jiǎn)書地址:https://www.jianshu.com/p/b5c... 介紹一些人工智能技術(shù)的術(shù)語(yǔ),如果你還有術(shù)語(yǔ)補(bǔ)充,請(qǐng)?jiān)L問(wèn) Github English Terminology 中文術(shù)語(yǔ) neur...

    pingan8787 評(píng)論0 收藏0
  • Deep learning:四十二(Denoise Autoencoder簡(jiǎn)單理解)

    摘要:本篇博文主要是根據(jù)的那篇文章簡(jiǎn)單介紹下,然后通過(guò)個(gè)簡(jiǎn)單的實(shí)驗(yàn)來(lái)說(shuō)明實(shí)際編程中該怎樣應(yīng)用。當(dāng)然作者也從數(shù)學(xué)上給出了一定的解釋。自頂向下的生成模型觀點(diǎn)的解釋。信息論觀點(diǎn)的解釋。 前言:   當(dāng)采用無(wú)監(jiān)督的方法分層預(yù)訓(xùn)練深度網(wǎng)絡(luò)的權(quán)值時(shí),為了學(xué)習(xí)到較魯棒的特征,可以在網(wǎng)絡(luò)的可視層(即數(shù)據(jù)的輸入層)引入隨機(jī)噪聲,這種方法稱為Denoise Autoencoder(簡(jiǎn)稱dAE),由Bengio在08年...

    gotham 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<