您当前的位置:首页 > 电脑百科 > 人工智能

Logistic Regression:最基础的神经网络

时间:2021-10-19 12:20:26  来源:  作者:憨昊昊

SimpleAI.

人工智能、机器学习、深度学习还是遥不可及?来这里看看吧~

Logistic Regression:最基础的神经网络

 

从基本的概念、原理、公式,到用生动形象的例子去理解,到动手做实验去感知,到著名案例的学习,到用所学来实现自己的小而有趣的想法......我相信,一路看下来,我们可以感受到深度学习的无穷的乐趣,并有兴趣和激情继续钻研学习。

正所谓 Learning by teaching,写下一篇篇笔记的同时,我也收获了更多深刻的体会,希望大家可以和我一同进步,共同享受AI无穷的乐趣。

Logistic回归:最基础的神经网络

个人认为理解并掌握这个logistic regression是学习神经网络和深度学习最重要的部分,也是最基础的部分,学完这个再去看浅层神经网络、深层神经网络,会发现后者就是logistic重复了若干次(当然一些细节会有不同,但是原理上一模一样)。

一、什么是logictic regression

下面的图是Andrew Ng提供的一个用logistic regression来识别主子的图片的算法结构示意图:

Logistic Regression:最基础的神经网络

 

「左边」「x0到x12287「是输入(input),我们称之为」特征(feather)」,常常用「列向量x(i)「来表示(这里的i代表第i个训练样本,下面在只讨论一个样本的时候,就暂时省略这个标记,免得看晕了-_-|||),在图片识别中,特征通常是图片的像素值,把所有的像素值排成一个序列就是输入特征,每一个特征都有自己的一个」权重(weight)」,就是图中连线上的「w0到w12287」,通常我们也把左右的权重组合成一个「列向量W」

「中间的圆圈」,我们可以叫它一个神经元,它接收来自左边的输入并乘以相应的权重,再加上一个偏置项b(一个实数),所以最终接收的总输入为:

但是这个并不是最后的输出,就跟神经元一样,会有一个「激活函数(activation function)「来对输入进行处理,来决定是否输出或者输出多少。Logistic Regression的激活函数是」sigmoid函数」,介于0和1之间,中间的斜率比较大,两边的斜率很小并在远处趋于零。长这样(记住函数表达式):

Logistic Regression:最基础的神经网络

 

我们用来表示该神经元的输出,σ()函数代表sigmoid,则可知:

这个可以看做是我们这个小模型根据输入做出的一个预测,在最开始的图对应的案例中,就是根据图片的像素在预测图片是不是猫。与对应的,每一个样本x都有自己的一个真实标签,代表图片是猫,代表不是猫。我们希望模型输出的可以尽可能的接近真实标签,这样,这个模型就可以用来预测一个新图片是不是猫了。所以,我们的任务就是要找出一组W,b,使得我们的模型可以根据给定的,正确地预测。在此处,我们可以认为,只要算出的大于0.5,那么y'就更接近1,于是可以预测为“是猫”,反之则“不是猫”。

以上就是Logistic Regression的基本结构说明。

二、怎么学习W和b

前面其实提到过了,我们「需要学习到的W和b可以让模型的预测值y'与真实标签y尽可能地接近,也就是y'和y的差距尽量地缩小」。因此,我们可以定义一个「损失函数(Loss function)」,来衡量和y的差距:

实际上,这就是交叉熵损失函数,Cross-entropy loss。交叉熵衡量了两个不同分布之间的差距,在这里,即衡量我们预测出来的分布和正式分布之间的差距。

如何说明这个式子适合当损失函数呢?且看:

  • 当y=1时,,要使L最小,则要最大,则=1;
  • 当y=0时,,要使L最小,则要最小,则=0.

如此,便知符合我们对损失函数的期望,因此适合作为损失函数。

我们知道,x代表一组输入,相当于是一个样本的特征。但是我们训练一个模型会有很多很多的训练样本,也就是有很多很多的x,就是会有x(1),x(2),...,x(m) 共m个样本(m个列向量),它们可以写成一个X矩阵:

对应的我们也有m个标签,:

通过我们的模型计算出的也会有m个:

前面我们写的损失函数,只计算一个样本的损失。但我们需要考虑所有训练样本的损失,则总损失可以这样计算:

有了总体的损失函数,我们的学习任务就可以用一句话来表述:

“寻找w和b,使得损失函数最小化”

最小化。。。说起来简单做起来难,好在我们有计算机,可以帮我们进行大量重复地运算,于是在神经网络中,我们一般使用「梯度下降法(Gradient Decent)」

Logistic Regression:最基础的神经网络

 

这个方法通俗一点就是,先随机在曲线上找一个点,然后求出该点的斜率,也称为梯度,然后顺着这个梯度的方向往下走一步,到达一个新的点之后,重复以上步骤,直到到达最低点(或达到我们满足的某个条件)。如,对w进行梯度下降,则就是重复一下步骤(重复一次称为一个「迭代」):

其中:=代表“用后面的值更新”,α代表「学习率(learning rate)」,dJ/dw就是J对w求偏导。

回到我们的Logistic Regression问题,就是要初始化(initializing)一组W和b,并给定一个学习率,指定要「迭代的次数」(就是你想让点往下面走多少步),然后每次迭代中求出w和b的梯度,并更新w和b。最终的W和b就是我们学习到的W和b,把W和b放进我们的模型中,就是我们学习到的模型,就可以用来进行预测了!

需要注意的是,这里我们使用的损失是全体训练样本的损失。实际上,使用全部样本的损失进行更新的话会太慢,但使用一个样本进行更新,误差就会很大。所以,我们更常用的是选择「一定大小的批次」(batch),然后计算一个batch内的损失,再进行参数更新。

总结一下:

  • Logistic Regression模型:,记住使用的激活函数是sigmoid函数。
  • 损失函数:衡量预测值与真实值的差距,越小越好。
  • 我们一般对一个批次的样本求总损失,然后使用梯度下降法进行更新。
  • 「训练模型的步骤」
  • 初始化W和b
  • 指定learning rate和迭代次数
  • 每次迭代,根据当前W和b计算对应的梯度(J对W,b的偏导数),然后更新W和b
  • 迭代结束,学得W和b,带入模型进行预测,分别测试在训练集合测试集上的准确率,从而评价模型

就这么明明白白



Tags:神经网络   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
SimpleAI.人工智能、机器学习、深度学习还是遥不可及?来这里看看吧~ 从基本的概念、原理、公式,到用生动形象的例子去理解,到动手做实验去感知,到著名案例的学习,到用所学来实现...【详细内容】
2021-10-19  Tags: 神经网络  点击:(47)  评论:(0)  加入收藏
MNIST 这里就不多展开了,我们上几期的文章都是使用此数据集进行的分享。手写字母识别EMNIST数据集Extended MNIST (EMNIST), 因为 MNIST 被大家熟知,所以这里就推出了 EMNIST...【详细内容】
2021-09-08  Tags: 神经网络  点击:(182)  评论:(0)  加入收藏
理解什么是人工智能,以及机器学习和深度学习如何影响它,是一种不同凡响的体验。在 Mate Labs 我们有一群自学有成的工程师,希望本文能够分享一些学习的经验和捷径,帮助机器学习...【详细内容】
2021-06-09  Tags: 神经网络  点击:(128)  评论:(0)  加入收藏
资料来源:getwallpapers.com 深度学习是机器学习中重要分支之一。它的目的是教会计算机做那些对于人类来说相当自然的事情。深度学习也是无人驾驶汽车背后的一项关键性技术,...【详细内容】
2021-04-13  Tags: 神经网络  点击:(168)  评论:(0)  加入收藏
私有虚拟网络(VPN)是在公用网络基础之上建立的私有加密通信隧道网络,企业对于自管辖网络中个人使用VPN软件行为具有监管责任,但技术上却很难识别VPN的加密与通信方式,因此利用人工智能(AI)领域的神经网络技术从网络流量中识...【详细内容】
2021-01-07  Tags: 神经网络  点击:(193)  评论:(0)  加入收藏
深层神经网络的模型概括,过度拟合和正则化方法的挑战> Source 在完成了与神经网络有关的多个AI项目之后,我意识到模型的概括能力对于AI项目的成功至关重要。 我想写这篇文章来...【详细内容】
2020-10-30  Tags: 神经网络  点击:(101)  评论:(0)  加入收藏
本文最初发表于 Towards Data Science 博客,经原作者 Andre Ye 授权,InfoQ 中文站翻译并分享。卷积神经网络(Convolutional Nerual Network,CNN)构成了图像识别的基础,这无疑是深...【详细内容】
2020-10-16  Tags: 神经网络  点击:(115)  评论:(0)  加入收藏
本报告讨论了非常厉害模型优化技术 —— 知识蒸馏,并给大家过了一遍相关的TensorFlow的代码。...【详细内容】
2020-09-25  Tags: 神经网络  点击:(92)  评论:(0)  加入收藏
算法算法从1950年代的早期研究开始,机器学习的所有工作似乎都随着神经网络的创建而积累起来。 从逻辑回归到支持向量机,相继提出了新算法之后的算法,但是从字面上看,神经网络是...【详细内容】
2020-09-17  Tags: 神经网络  点击:(90)  评论:(0)  加入收藏
卷积神经网络(CNN)广泛应用于深度学习和计算机视觉算法中。虽然很多基于CNN的算法符合行业标准,可以嵌入到商业产品中,但是标准的CNN算法仍然有局限性,在很多方面还可以改进。这篇文章讨论了语义分割和编码器-解码器架构...【详细内容】
2020-09-17  Tags: 神经网络  点击:(93)  评论:(0)  加入收藏
▌简易百科推荐
作为数据科学家或机器学习从业者,将可解释性集成到机器学习模型中可以帮助决策者和其他利益相关者有更多的可见性并可以让他们理解模型输出决策的解释。在本文中,我将介绍两个...【详细内容】
2021-12-17  deephub    Tags:AI   点击:(15)  评论:(0)  加入收藏
基于算法的业务或者说AI的应用在这几年发展得很快。但是,在实际应用的场景中,我们经常会遇到一些非常奇怪的偏差现象。例如,Facebook将黑人标记为灵长类动物、城市图像识别系统...【详细内容】
2021-11-08  数据学习DataLearner    Tags:机器学习   点击:(32)  评论:(0)  加入收藏
11月2日召开的世界顶尖科学家数字未来论坛上,2013年诺贝尔化学奖得主迈克尔·莱维特、2014年诺贝尔生理学或医学奖得主爱德华·莫索尔、2007年图灵奖得主约瑟夫·斯发斯基、1986年图灵奖得主约翰·霍普克罗夫特、2002...【详细内容】
2021-11-03  张淑贤  证券时报  Tags:人工智能   点击:(39)  评论:(0)  加入收藏
鉴于物联网设备广泛部署、5G快速无线技术闪亮登场,把计算、存储和分析放在靠近数据生成的地方来处理,让边缘计算有了用武之地。 边缘计算正在改变全球数百万个设备处理和传输...【详细内容】
2021-10-26    计算机世界  Tags:边缘计算   点击:(45)  评论:(0)  加入收藏
这是几位机器学习权威专家汇总的725个机器学习术语表,非常全面了,值得收藏! 英文术语 中文翻译 0-1 Loss Function 0-1损失函数 Accept-Reject Samplin...【详细内容】
2021-10-21  Python部落    Tags:机器学习   点击:(43)  评论:(0)  加入收藏
要开始为开源项目做贡献,有一些先决条件:1. 学习一门编程语言:由于在开源贡献中你需要编写代码才能参与开发,你需要学习任意一门编程语言。根据项目的需要,在后期学习另一种语言...【详细内容】
2021-10-20  TSINGSEE青犀视频    Tags:机器学习   点击:(37)  评论:(0)  加入收藏
SimpleAI.人工智能、机器学习、深度学习还是遥不可及?来这里看看吧~ 从基本的概念、原理、公式,到用生动形象的例子去理解,到动手做实验去感知,到著名案例的学习,到用所学来实现...【详细内容】
2021-10-19  憨昊昊    Tags:神经网络   点击:(47)  评论:(0)  加入收藏
语言是人类思维的基础,当计算机具备了处理自然语言的能力,才具有真正智能的想象。自然语言处理(Natural Language Processing, NLP)作为人工智能(Artificial Intelligence, AI)的核心技术之一,是用计算机来处理、理解以及运...【详细内容】
2021-10-11    36氪  Tags:NLP   点击:(48)  评论:(0)  加入收藏
边缘计算是什么?近年来,物联网设备数量呈线性增长趋势。根据艾瑞测算, 2020年,中国物联网设备的数量达74亿,预计2025年突破150亿个。同时,设备本身也变得越来越智能化,AI与互联网在...【详细内容】
2021-09-22  汉智兴科技    Tags:   点击:(54)  评论:(0)  加入收藏
说起人工智能,大家总把它和科幻电影中的机器人联系起来,而实际上这些科幻场景与现如今的人工智能没什么太大关系。人工智能确实跟人类大脑很相似,但它们的显著差异在于人工智能...【详细内容】
2021-09-17  异步社区    Tags:人工智能   点击:(57)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条