【原创】深度神经网络(Deep Neural Network, DNN)

线性模型通过特征间的现行组合来表达“结果-特征集合”之间的对应关系。由于线性模型的表达能力有限,在实践中,只能通过增加“特征计算”的复杂度来优化模型。比如,在广告CTR预估应用中,除了“标题长度、描述长度、位次、广告id,cookie“等这样的简单原始特征,还有大量的组合特征(比如”位次-cookie“ 表示用户对位次的偏好)。事实上,现在很多搜索引擎的广告系统用的都是Logistic Regression模型(线性),而模型团队最重要的工作之一就是“特征工程 (feature engineering)”。

线性模型的思路是“简单模型+复杂特征”,用这样的组合实现复杂非线性场景描述。由于模型结构简单,这种做法的训练/预估计算代价相对较小;但是,特征的选取是一个需要耗费大量人力的工作,且要求相关人员对业务有较深的理解。

模型工作的另外一个思路是"复杂模型+简单特征“。即弱化特征工程的重要性,利用复杂的非线性模型来学习特征间的关系,增强表达能力。深度神经网络模型就是这样一个非线性模型。

上图是一个具有一个输入层,一个输出层,两个隐层的深度神经网路。该模型一个有9个节点。

神经网络的介绍很多文献都很详尽,现在以上图为例,重点讲一下backpropagation算法的推导过程。

backpropagation与梯度法非常相似,本质上是求每一个参数的偏导数,然后在偏导数的方向上寻找下一个搜寻点,以${W_{04}}$为例:

将上述推导合并,就可以得到${W_{04}}$的梯度方向:

其他迭代过程和梯度下降法差异不大。

值得注意的是,虽然DNN对特征工程的要求相对较低,但训练时间复杂度较大,切权重可解释性非常差,不易debug。因此,对于一个新的应用,比较好的方法是先用Logistic Regression这样的线性模型开始应用,等迭代成熟了,再尝试DNN模型。

时间: 2024-10-07 05:31:13

【原创】深度神经网络(Deep Neural Network, DNN)的相关文章

深度学习论文笔记--Recover Canonical-View Faces in the Wild with Deep Neural Network

文章来源:CVPR2014 作者:Zhenyao Zhu,Ping Luo,Xiaogang Wang,Xiaoou Tang (香港中文大学果然牛啊,CVPR一刷一大堆) 主要内容: 提出了利用深度学习(还是CNN)来进行人脸图像重构正面人脸,然后利用重构的正面人脸图像来进行人脸的verification,当然能够取得更高的准确率(比没有用正脸去verification),文章提出利用DL来学习从任意脸到canonical 脸的转换,可以认为是一个回归问题(也不一定非得用DL方法来做). 现有

第四周:Deep Neural Networks(深层神经网络)----------2.Programming Assignments: Building your Deep Neural Network: Step by Step

Building your Deep Neural Network: Step by Step Welcome to your third programming exercise of the deep learning specialization. You will implement all the building blocks of a neural network and use these building blocks in the next assignment to bui

课程一,第四周(Deep Neural Networks) —— 2.Programming Assignments: Deep Neural Network - Application

Deep Neural Network - Application Congratulations! Welcome to the fourth programming exercise of the deep learning specialization. You will now use everything you have learned to build a deep neural network that classifies cat vs. non-cat images. In

What are the advantages of ReLU over sigmoid function in deep neural network?

The state of the art of non-linearity is to use ReLU instead of sigmoid function in deep neural network, what are the advantages? I know that training a network when ReLU is used would be faster, and it is more biological inspired, what are the other

Deep Learning: Assuming a deep neural network is properly regulated, can adding more layers actually make the performance degrade?

Deep Learning: Assuming a deep neural network is properly regulated, can adding more layers actually make the performance degrade? I found this to be really puzzling. A deeper NN is supposed to be more powerful or at least equal to a shallower NN. I

论文笔记之:Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation

Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation xx

Building your Deep Neural Network: Step by Step¶

Welcome to your week 4 assignment (part 1 of 2)! You have previously trained a 2-layer Neural Network (with a single hidden layer). This week, you will build a deep neural network, with as many layers as you want! In this notebook, you will implement

Deep Neural Network for Image Classification: Application

When you finish this, you will have finished the last programming assignment of Week 4, and also the last programming assignment of this course! You will use use the functions you'd implemented in the previous assignment to build a deep network, and

神经网络(Neural Network)

#!/usr/bin/env python # -*- coding: utf-8 -*- import numpy as np#矩阵运算 def tanh(x): return np.tanh(x) def tanh_deriv(x):#对tanh求导 return 1.0 - np.tanh(x)*np.tanh(x) def logistic(x):#s函数 return 1/(1 + np.exp(-x)) def logistic_derivative(x):#对s函数求导 retur