神经网络基础模型--Logistic Regression的理论和实践

1

概述

Logistic Regression 即 逻辑回归,属于监督学习,输入x(特征数据),输出为0或1(显然是二分类)。为什么要用逻辑回归讲神经网络基础呢?我觉得这个相对比较简单,易懂,而且有神经网络基本都会用到的激活函数(Activation Function)。

2

正向传播,搭建神经网络

1

比如我们要给二维平面的点做分类,则输入的是特征有

,

(即点的x,y坐标)。参数我们设置三个(一个特征配一个参数,再加一个biase),这里我设为

,在加上一个biase

。这样我们就得到了一个函数值:

我们设置值为z,则此时我们已经对原始数据进行了第一次处理,也就是得到我们第一个神经元

(注:我们也可以把参数

放到

的对应线上)

2

可是我们目的是为了分类0或1,也就是输出的结果起码得在0-1之间。可是我们根本不知道z的值有多大,也就无法控制范围,所以我们用一个函数来完美起到可以把结果限制到0-1范围内,这个函数是长这个样子

,我们对它做个测验(->趋近于):

当x->正无穷,值->1;

当x->负无穷时,值->0;

当x=0时,值=1/2。

大概图像长这个样子:

像这样将结果做一次函数特殊处理的,我们称之为Activation Function,记这个函数为sigmod。

因为接下来要用到它的导数,这里我推导下它的求导过程,以后记住结果就行:

这次我们第二次对数据做了处理,就可以再添加一个神经元了:

其中

这里表示sigmod,a表示它的值。

3

结果我们已经计算出来了,是a,那么我们怎样才能更新我们的参数呢?当然是赶紧找到损失函数啦。

我们先回顾下我们之前所用过的最简单的损失函数

(

预测值,y为真实值)。可是这种损失函数在参数w大于1个的时候,就很有可能出现多个极值点(比如它的函数这个样子

),而导致梯度下降法无法得到最优解。

逻辑回归损失函数是这样的

if y=1,则

,想要

越大,则就要

越小。

if y=0,则

,想要

越小,则就要

越小。

综上所述,要想使

精确地靠近y,仅仅使

达到最小即可。

这次就是我们的第三次也是最后一次处理数据了,所以又添加了一个损失函数神经元:

(其中的a就是上面的

)

上面的整个数据传送过程,我们称之为正向传播。

3

反向传播,更新参数

要想通过损失函数L对

进行更新,就得求L的

上的梯度,怎么求梯度呢?很显然,链式求导呀。

我推导了下:

(上图我标出的

是因为如果下面的代码dz没看懂的话瞅瞅这个)

然后我们对参数进行更新:

(alpha为学习率)

这个过程就是反向传播。

4

代码实现

生成数据

初始化数据点,绿点为1类,红点为0类。

图像显示:

规范数据(缩小到-1 — 1,不清楚原因的可以看前面的梯度下降算法的相关说明)

图为:

sigmod函数

初始化参数

初始成的数据:

画图函数

训练过程

上面讲的很详细了,应该能看懂

第一个图:

第二张图:

后面的一张图:

成功

画损失函数

损失函数图:

原文发布于微信公众号 - 深度学习自然语言处理(zenRRan)

原文发表时间:2017-09-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏磐创AI技术团队的专栏

入门 | Tensorflow实战讲解神经网络搭建详细过程

17140
来自专栏YoungGy

机器翻译之Facebook的CNN与Google的Attention

传统的seq2seq facebook的cnn 结构 特点 position embedding 卷积的引入 GLU控制信息的流动 attention goog...

40790
来自专栏IT派

经典!构建你的第一个神经网络识别数字

在Keras环境下构建多层感知器模型,对数字图像进行精确识别。模型不消耗大量计算资源,使用了cpu版本的keras,以Tensorflow 作为backende...

37550
来自专栏计算机视觉战队

在单机上快速、精确的100000类别的检测

今天带来的这篇推送,估计您有读过或试验过,但是为了让更多的科研学者知道这么“牛”的内容知识,接下来就开始说说今天的主题——1000000类的快速精确检测。 注:...

30060
来自专栏宏伦工作室

深度有趣 | 04 图像风格迁移

图像风格迁移是指,将一幅内容图的内容,和一幅或多幅风格图的风格融合在一起,从而生成一些有意思的图片

26060
来自专栏深度学习自然语言处理

机器学习之多层感知机理论与实践

阅读大概需要10分钟 作者 Lefteris 翻译 bluepomelo 编辑 zenRRan 有修改 原文链接 http://blog.refu.co/?p=...

50340
来自专栏书山有路勤为径

Recurrent Neural Networks (RNNs)

许多应用涉及时间依赖,或基于时间依赖。这表示我们当前输出不仅仅取决于当前输入,还依赖于过去的输入。 RNN存在一个关键缺陷,因为几乎不可能捕获超过8或10步的...

18230
来自专栏人工智能LeadAI

零基础入门深度学习 | 第三章:神经网络和反向传播算法

无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习这个超热的技术,会不会感...

510120
来自专栏PaddlePaddle

【结构化语义模型】深度结构化语义模型

导语 PaddlePaddle提供了丰富的运算单元,帮助大家以模块化的方式构建起千变万化的深度学习模型来解决不同的应用问题。这里,我们针对常见的机器学习任务,提...

55480
来自专栏marsggbo

论文笔记系列-Simple And Efficient Architecture Search For Neural Networks

本文提出了一种新方法,可以基于简单的爬山过程自动搜索性能良好的CNN架构,该算法运算符应用网络态射,然后通过余弦退火进行短期优化运行。

15010

扫码关注云+社区

领取腾讯云代金券