Neural Network
逻辑回归用神经网络节点的方式表示
前面已经介绍过逻辑回归的模型,样本为(x,y) 其中y的值为1或0,假设x有2个特征,则对应关系如下图所示。

实际情况是需要求需要三个参数,因此输入层需要添加一个节点表示偏置项。通过此模型对于任何一个输入x,都会产生一个输出与之对应。

有了这个图就可以方便的介绍神经网络模型了。
神经网络模型和参数
下图所示的是一个简单的神经网络模型和加入偏置项的示意图,输入和输出完全相同。区别是,比起逻辑回归它多了两个节点的隐藏层。通过分解可以发现它是由3个逻辑回归组成,按下图出现的顺序命名为LR01,LR02,LR03。




完整的参数模型是

a1为输入层输入值,即为x的值为LR01,LR02的输入。a2为LR03的输入 a3为最终的输出值。z2为一到二的中间值,z3为二到三层的中间值。
前向传播计算cost function
模型需要确定的参数个数为9个。由逻辑回归可知,对于LR01有
\[z_1^{(2)}=\Theta_{10}^{(1)}*a_0^{(1)}+\Theta_{11}^{(1)}*a_1^{(1)}+\Theta_{12}^{(1)}*a_2^{(1)}\]
\[a_1^{(2)}=\frac 1 {1+e^{-z_1^{(2)}}}\]
对于LR02有
\[z_2^{(2)}=\Theta_{20}^{(1)}*a_0^{(1)}+\Theta_{21}^{(1)}*a_1^{(1)}+\Theta_{22}^{(1)}*a_2^{(1)}\]
\[a_2^{(2)}=\frac 1 {1+e^{-z_2^{(2)}}}\]
LR01和LR02用矩阵描述如下
\[\Theta^{(1)}*a^{(1)}=z^{(2)}\]
其中
\[a^{(1)}=
\begin{pmatrix}
a_0^{(1)} \\
a_1^{(1)} \\
a_2^{(1)} \\
\end{pmatrix}
\]
\[\Theta^{(1)}=
\begin{pmatrix}
\Theta_{10}^{(1)} & \Theta_{11}^{(1)} & \Theta_{12}^{(1)} \\
\Theta_{20}^{(1)} & \Theta_{21}^{(1)} & \Theta_{22}^{(1)} \\
\end{pmatrix}
\]
\[z^{(2)}=
\begin{pmatrix}
z_1^{(2)} \\
z_2^{(2)} \\
\end{pmatrix}
\]
第二层到第三层,首先需要加入偏置节点a2_0然后第三层中间值和输出值为。
\[z_1^{(3)}=\Theta_{10}^{(2)}*a_0^{(2)}+\Theta_{11}^{(2)}*a_1^{(2)}+\Theta_{12}^{(2)}*a_2^{(2)}\]
\[a_1^{(3)}=\frac 1 {1+e^{-z_1^{(3)}}}\]
那么最终的损失函数为
\[J(\Theta)=-\frac 1 m[\sum_{i=1}^my^{(i)}log(a_1^{(3)})^{(i)}+(1-y^{(i)})log(1-(a_1^{(3)})^{(i)})]\]
下一步需要做的是使用梯度下降的方法求出所有的参数值。
反向传播计算梯度下降
对于每个参数\(\Theta^{(l)}_{ij}\)需要计算\(\frac{\partial J(\Theta)}{\partial \Theta^{(l)}_{ij}}\),计算公式如下。
\[\frac{\partial J(\Theta)}{\partial \Theta^{(2)}}=a^{(2)}\delta^{(3)}\]
\[\delta^{(3)}=(a^{(3)}_1-y).*g^{'}(z^{(3)})=(a^{(3)}_1-y)a^{(3)}(1-a^{(3)})\]
\[\frac{\partial J(\Theta)}{\partial \Theta^{(1)}}=a^{(1)}\delta^{(2)}\]
\[\delta^{(2)}=(\Theta^{(2)})^T\delta^{(3)}.*g^{'}(z^{(2)})=(\Theta^{(2)})^T\delta^{(3)}a^{(2)}(1-a^{(2)})\]
示例一共有9个参数,现在只需要推导出4个。使用的是求导的链式法则。
Neural Network的更多相关文章
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
- Neural Network Toolbox使用笔记1:数据拟合
http://blog.csdn.net/ljp1919/article/details/42556261 Neural Network Toolbox为各种复杂的非线性系统的建模提供多种函数和应用程 ...
- 《Neural Network and Deep Learning》_chapter4
<Neural Network and Deep Learning>_chapter4: A visual proof that neural nets can compute any f ...
- How to implement a neural network
神经网络的实践笔记 link: http://peterroelants.github.io/posts/neural_network_implementation_part01/ 1. 生成训练数据 ...
- CS224d assignment 1【Neural Network Basics】
refer to: 机器学习公开课笔记(5):神经网络(Neural Network) CS224d笔记3--神经网络 深度学习与自然语言处理(4)_斯坦福cs224d 大作业测验1与解答 CS224 ...
- XiangBai——【AAAI2017】TextBoxes_A Fast Text Detector with a Single Deep Neural Network
XiangBai--[AAAI2017]TextBoxes:A Fast Text Detector with a Single Deep Neural Network 目录 作者和相关链接 方法概括 ...
- 论文阅读(Weilin Huang——【TIP2016】Text-Attentional Convolutional Neural Network for Scene Text Detection)
Weilin Huang--[TIP2015]Text-Attentional Convolutional Neural Network for Scene Text Detection) 目录 作者 ...
- 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)
白翔的CRNN论文阅读 1. 论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...
- (转)The Neural Network Zoo
转自:http://www.asimovinstitute.org/neural-network-zoo/ THE NEURAL NETWORK ZOO POSTED ON SEPTEMBER 14, ...
- (转)LSTM NEURAL NETWORK FOR TIME SERIES PREDICTION
LSTM NEURAL NETWORK FOR TIME SERIES PREDICTION Wed 21st Dec 2016 Neural Networks these days are th ...
随机推荐
- js中的位运算符 ,按位操作符
按位操作符(Bitwise operators) 将其操作数(operands)当作32位的比特序列(由0和1组成),而不是十进制.十六进制或八进制数值.例如,十进制数9,用二进制表示则为1001.按 ...
- BZOJ3624: [Apio2008]免费道路(最小生成树)
题意 题目链接 Sol 首先答案一定是一棵树 这棵树上有一些0边是必须要选的,我们先把他们找出来,如果数量$\geqslant k$显然无解 再考虑继续往里面加0的边,判断能否加到k条即可 具体做法是 ...
- JS中关于clientWidth offsetWidth scrollWidth 等的区别
网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offset ...
- 【MFC】MFCMenuButton 的用法
背景:因为对话框界面上的空间有限,为了节省空间,我决定采用一个MFCMenuButton用来实现同一类按钮事件.本来我打算设置两个按钮:“单个删除文件”和“清空所有文件”两个按钮,但是空间太小,而且这 ...
- Coursera 算法二 week 4 Boggle
这次的作业主要用到了单词查找树和深度优先搜索. 1.在深度优先搜索中,在当前层的递归调用前,将marked数组标记为true.当递归调用返回到当前层时,应将marked数组标记为false.这样既可以 ...
- Ruby 学习笔记(一)
环境搭建 本文基于Mac OS,windowns坑较多,建议使用Mac. xcode-select -p 检查是否安装xcode-select, 如果没有,通过xcode-select --insta ...
- POJ-2226 Muddy Fields---二分图匹配+巧妙构图
题目链接: https://vjudge.net/problem/POJ-2226 题目大意: 用宽度为1长度不限的木板将水洼‘*’盖住而不盖住草‘.' Sample Input 4 4 *.*. . ...
- GBDT回归的原理及Python实现
一.原理篇 1.1 温故知新回归树是GBDT的基础,之前的一篇文章曾经讲过回归树的原理和实现.链接如下: 回归树的原理及Python实现 1.2 预测年龄仍然以预测同事年龄来举例,从<回归树&g ...
- python_8_guess
#python3和2都可以 #方法1 age_of_oldboy=56 count=0 while True: if count==3: break guess_age=int(input('gues ...
- python_68_迭代器
''' 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list.tuple.dict.set.str等: 一类是generator,包括生成器和带yield的ge ...