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])