Keras搭建一個Wide & Deep 神經網絡

Wide & Deep 神經網絡

2016年穀歌公司的Cheng等人發表的文章Wide & Deep Learning for Recommender Systems介紹了一種新的架構,Wide & Deep ANNs.

通過將輸入層的部分或全部信息直接與輸出層相連接,簡單的特徵可以通過捷徑(short path)進行學習,複雜的特徵則通過深層路徑(deep path)進行學習。與典型的多層感知機(MLP)結構相比,這種架構可以避免數據集中的簡單特徵在深層路徑中被過度處理而失真。

Keras實現

Wide & Deep 神經網絡實現起來非常簡單,Aurélien Géron的經典教材Hands-On Machine Learning with Scikit-Learn and TensorFlow給出了一段源碼。書中源代碼有錯誤,這裏給出正確的。

input=keras.layers.Input(shape=X_train.shape[1:])
hidden1=keras.layers.Dense(30,activation="relu")(input)
hidden2=keras.layers.Dense(30,activation="relu")(hidden1)
concat=keras.layers.concatenate([input,hidden2])
output=keras.layers.Dense(1)(concat)
model=keras.Model(inputs=[input],outputs=[output])
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章