逻辑回归用神经网络节点的方式表示

前面已经介绍过逻辑回归的模型,样本为(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的更多相关文章

  1. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  2. Neural Network Toolbox使用笔记1:数据拟合

    http://blog.csdn.net/ljp1919/article/details/42556261 Neural Network Toolbox为各种复杂的非线性系统的建模提供多种函数和应用程 ...

  3. 《Neural Network and Deep Learning》_chapter4

    <Neural Network and Deep Learning>_chapter4: A visual proof that neural nets can compute any f ...

  4. How to implement a neural network

    神经网络的实践笔记 link: http://peterroelants.github.io/posts/neural_network_implementation_part01/ 1. 生成训练数据 ...

  5. CS224d assignment 1【Neural Network Basics】

    refer to: 机器学习公开课笔记(5):神经网络(Neural Network) CS224d笔记3--神经网络 深度学习与自然语言处理(4)_斯坦福cs224d 大作业测验1与解答 CS224 ...

  6. 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 目录 作者和相关链接 方法概括 ...

  7. 论文阅读(Weilin Huang——【TIP2016】Text-Attentional Convolutional Neural Network for Scene Text Detection)

    Weilin Huang--[TIP2015]Text-Attentional Convolutional Neural Network for Scene Text Detection) 目录 作者 ...

  8. 论文阅读(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 ...

  9. (转)The Neural Network Zoo

    转自:http://www.asimovinstitute.org/neural-network-zoo/ THE NEURAL NETWORK ZOO POSTED ON SEPTEMBER 14, ...

  10. (转)LSTM NEURAL NETWORK FOR TIME SERIES PREDICTION

    LSTM NEURAL NETWORK FOR TIME SERIES PREDICTION Wed 21st Dec 2016   Neural Networks these days are th ...

随机推荐

  1. js中的位运算符 ,按位操作符

    按位操作符(Bitwise operators) 将其操作数(operands)当作32位的比特序列(由0和1组成),而不是十进制.十六进制或八进制数值.例如,十进制数9,用二进制表示则为1001.按 ...

  2. jQuery事件绑定函数:on()与bind()的差别

    jQuery从1.7+版本开始,提供了on()和off()进行事件处理函数的绑定和取消.on()和bind()这两个方法有相同的地方也有不同的地方. bind(type,[data],fn); on( ...

  3. 零基础逆向工程27_Win32_01_宽字符_MessageBox_win32调试输出

    1 多字节字符 ASCII码表:0 ~ 2^7-1 扩展ASCII码表:2^7 ~ 2^8-1 什么是GB2312:1980年,两个字节存储一个汉字:不通用,别国会有乱码. UCICODE:只有一个字 ...

  4. nvcc 编译显示寄存器使用情况

    NVCC Compiler 里面增加 Command line pattern中${COMMAND}后 增加选项: --ptxas-options=-v

  5. MongoDB-2.6.0 (OpenLogic CentOS7.2)

    平台: CentOS 类型: 虚拟机镜像 软件包: mongodb basic software database linux open source 服务优惠价: 按服务商许可协议 云服务器费用:查 ...

  6. DB2数据库备份还原

    恢复及备份NC DB2数据库步 一. 安装DB2数据库 解压db2v9.5ins.rar安装,在写此文档时客户一般用的是9.5: 注意不要将db2安装到系统盘: 二. Windows版本 1.数据库备 ...

  7. Visual Studio 更改护眼颜色

  8. 500 Days Of Summer

    <和莎莫的500天>,一部爱情片. Summer和Tom两人不同的爱情观走在了一起,或许真的就是爱情观不同,或许是Summer爱Tom爱的不够深,最终的结局是那么不尽人意. 有人愿意把秘密 ...

  9. JQUERY操作JSON数组添加新的属性和值

    语法: var data = {}; data["Order"] =order; data["Sort"] = sort; 但是需要注意的是,如果data后面还 ...

  10. UVA 11990 ``Dynamic'' Inversion (序列分治)

    26天以前做过的一道题,之前的做法是分治预处理,树套树在线修改,复杂度为O(nlogn+m*logn*logn),代码量较大. 本来想学习一下cdq分治的,看到论文上的凸包.斜率就暂时放一边了,只知道 ...