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

前面已经介绍过逻辑回归的模型,样本为(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. 用简单的方法学习ES6

    ES6 简要概览 这里是ES6 简要概览.本文大量参考了ES6特性代码仓库,请允许我感谢其作者@Luke Hoban的卓越贡献,也感谢@Axel Rauschmayer所作的[优秀书籍]//explo ...

  2. Oracle 11g服务详细介绍

    按照windows 7 64位 安装oracle 11g R2中的方法成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为: 1. Oracle ORCL VSS Writer Ser ...

  3. 【extjs6学习笔记】1.9 初始: Mixins

    Mixin允许我们使用一个类的函数作为另一个类的函数而不继承. Mixins可以使用mixins关键字定义,并将值指定为JSON对象,其中属性的名称应该是要使用的方法的名称,属性的值将是定义方法的类的 ...

  4. Graylog+elasticsearch+mongodb集群+nginx负载均衡前端

    网上有张图画的很好,搜索有关它的配置文章,google里有几篇英文的,都是依靠haproxy等或别的什么实现,没有纯粹的Graylog+elasticsearch+mongodb集群,项目需要,只有自 ...

  5. WMAppPRHeader.xml文件的作用

    对于很多开发者来说直接通过Visual Studio 2010生成的XAP文件和上传至App Hub通过Windows Phone Marketplace Technical Certificatio ...

  6. World Wind Java开发之七——读取本地栅格文件(影像+高程)构建三维场景(转)

    http://blog.csdn.net/giser_whu/article/details/41679515 首先,看下本篇博客要达到的效果图: 下面逐步分析如何加载影像及高程文件. 1.World ...

  7. Android(java)学习笔记89:Bundle和Intent类使用和交互

    1. Bundle 和 Intent:    Bundle只是一个信息的载体 将内部的内容以键值对组织 ,Intent负责Activity之间的交互自己是带有一个Bundle的.Intent.putE ...

  8. Drupal常用的模块

    CCK (Content Construction Kit ) : 添加字段模块 Views:生成列表 Tinymce:(Wysiwyg Editor) 常用的编辑器之一 Ajax Form Buil ...

  9. python换行

    python中如果一行代码太长,看着不方便时,怎么办? 只需要在需要换行的地方添加上符号 \ 就行了.

  10. dynamic routing between captual

    对于人脑 决策树形式 对于CNN 层级与层级间的传递 人在识别物体的时候会进行坐标框架的设置 CNN无法识别,只能通过大量训练 胶囊 :一个神经元集合,有一个活动的向量,来表示物体的各类信息,向量的长 ...