文章目录

  • 线性是对谁而言?
  • 广义线性模型
  • 神经网络为什么要使用非线性激活

线性是对谁而言?

线性模型中的线性,并不指对输入变量的线性, 而是指对参数空间的线性。

也就说对于输入来说, 完全可以对先对其进行非线性变换, 再进行线性组合。从这个角度来说, 线性模型完全具有描述非线性的能力。

举一个简单的例子:

y=wx+by=wx+by=wx+b 是线性模型,没问题。

y=w1x+w2x2+w3x3+by=w_1x+w_2x^2+w_3x^3+by=w1​x+w2​x2+w3​x3+b 也是线性模型。原因是线性并不指对输入变量的线性, 而是指对参数空间的线性。即模型y=w1x+w2x2+w3x3+by=w_1x+w_2x^2+w_3x^3+by=w1​x+w2​x2+w3​x3+b 对 www 仍是线性的。但模型对 xxx 是非线性的,即线性模型完全具有描述非线性的能力。

对 y=w1x+w2x2+w3x3+by=w_1x+w_2x^2+w_3x^3+by=w1​x+w2​x2+w3​x3+b 模型的 xxx 进行换元,即 x1=x,x2=x2,x3=x3x_1=x, x_2=x^2, x_3=x^3x1​=x,x2​=x2,x3​=x3 ,得到y=w1x1+w2x2+w3x3+by=w_1x_1+w_2x_2+w_3x_3+by=w1​x1​+w2​x2​+w3​x3​+b ,这样模型的线性就很明显了。


广义线性模型

另一个 线性模型中的线性是指对参数空间的线性 的例子是:广义线性模型。

先以对数线性(Log-Linear Regression) 模型为例:

y=exp(wx+b)y=exp(wx+b)y=exp(wx+b),变换后得到 log(y)=wx+blog(y)=wx+blog(y)=wx+b ,形式上仍是线性回归(对 www 来说),但可以实现输入空间到输出空间的映射(对 xxx 来说)。


实际的广义线性模型(Generalized Linear Model) 定义如下:

y=g−1(wTx)y=g^{-1}(w^Tx)y=g−1(wTx),其中 g(⋅)g(·)g(⋅) 为单调可微的函数,y′=g(y)=wTxy'=g(y)=w^Txy′=g(y)=wTx。

广义线性模型是线性回归(对 www 来说),但可以实现输入空间到输出空间的映射(对 xxx 来说)。


神经网络为什么要使用非线性激活

原因是:如果不使用激活函数(或使用线性激活函数),多层神经网络可以用一层网络来等效替代。

至于为什么能替代,是因为多个线性函数的组合仍为线性函数(对于输入空间和输出空间而言)。

比如对于一个两层的神经网络:

有:
z[1]=W[1]x+b[1]a[1]=g[1](z[1])z[2]=W[2]a[1]+b[2]a[2]=g[2](z[2])z^{[1]}=W^{[1]}x+b^{[1]} \\ a^{[1]}=g^{[1]}(z^{[1]}) \\ z^{[2]}=W^{[2]}a^{[1]}+b^{[2]} \\ a^{[2]}=g^{[2]}(z^{[2]}) \\ z[1]=W[1]x+b[1]a[1]=g[1](z[1])z[2]=W[2]a[1]+b[2]a[2]=g[2](z[2])
若没有激活函数,则:
a[1]=z[1]=W[1]x+b[1](1)a^{[1]}=z^{[1]}=W^{[1]}x+b^{[1]} \tag{1} a[1]=z[1]=W[1]x+b[1](1)

a[2]=z[2]=W[2]a[1]+b[2](2)a^{[2]}=z^{[2]}=W^{[2]}a^{[1]}+b^{[2]} \tag{2} a[2]=z[2]=W[2]a[1]+b[2](2)

将(2)式带入(1)式,得:
a[2]=z[2]=W[2]a[1]+b[2]=W[2](W[1]x+b[1])+b[2]=(W[2]W[1])x+(W[2]b[1]+b[2])\begin{aligned} a^{[2]}=z^{[2]}&=W^{[2]}a^{[1]}+b^{[2]} \\ &=W^{[2]}(W^{[1]}x+b^{[1]})+b^{[2]} \\ &=(W^{[2]}W^{[1]})x+(W^{[2]}b^{[1]}+b^{[2]}) \end{aligned} a[2]=z[2]​=W[2]a[1]+b[2]=W[2](W[1]x+b[1])+b[2]=(W[2]W[1])x+(W[2]b[1]+b[2])​
令 W′=W[2]W[1]W'=W^{[2]}W^{[1]}W′=W[2]W[1],b′=W[2]b[1]+b[2]b'=W^{[2]}b^{[1]}+b^{[2]}b′=W[2]b[1]+b[2],则得到:
a[2]=z[2]=W′x+b′a^{[2]}=z^{[2]}=W'x+b' a[2]=z[2]=W′x+b′
即无激活函数(或线性激活函数)的多层神经网络可以由单层神经网络等效替代。

原因是:多个线性函数的组合仍为线性函数,这里的线性是对输入空间和输出空间来说的。

[机器学习] 机器学习中所说的“线性模型”是个什么东西?相关推荐

  1. 机器学习训练中常见的问题和挑战!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:奥雷利安·杰龙 由于我们的主要任务是选择一种学习算法,并对某些数据 ...

  2. 机器学习训练中常见的问题和挑战

    来源:Datawhale 本文约4300字,建议阅读8分钟 本文主要从坏数据出发,带大家了解目前机器学习面临的常见问题和挑战,从而更好地学习机器学习理论. 由于我们的主要任务是选择一种学习算法,并对某 ...

  3. 【机器学习基础】机器学习训练中常见的问题和挑战!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:奥雷利安·杰龙 由于我们的主要任务是选择一种学习算法,并对某些数据 ...

  4. 推荐 :机器学习训练中常见的问题和挑战

    (Datawhale干货 : 作者:奥雷利安·杰龙) 由于我们的主要任务是选择一种学习算法,并对某些数据进行训练,所以最可能出现的两个问题不外乎是"坏算法"和"坏数据&q ...

  5. 奥卡姆剃刀是什么?机器学习实践中那些学习模型或者那些评估指标践行了这一理论?

    奥卡姆剃刀是什么?机器学习实践中那些学习模型或者那些评估指标践行了这一理论? 奥卡姆剃刀:无无必要,勿增实体. 奥卡姆剃刀原理应用于模型选择时变为以下想法:在所有可能选择的模型中,能够很好地解释已知数 ...

  6. 【机器学习】机器学习实践中的 7 种常见错误

    编译:伯乐在线 - yixingqingkong,英文:Cheng-Tao Chu 编注:本文作者是 Codecademy 的分析主管 Cheng-Tao Chu,其专长是数据挖掘和机器学习,之前在 ...

  7. 机器学习算法中的概率方法

    雷锋网(公众号:雷锋网) AI 科技评论按,本文作者张皓,目前为南京大学计算机系机器学习与数据挖掘所(LAMDA)硕士生,研究方向为计算机视觉和机器学习,特别是视觉识别和深度学习. 个人主页:http ...

  8. 机器学习实践中的 7 种常见错误

    转载自:http://blog.jobbole.com/70684/ 编注:本文作者是 Codecademy 的分析主管 Cheng-Tao Chu,其专长是数据挖掘和机器学习,之前在 Google. ...

  9. 机器学习项目中遇到的难题_现代难题:何时使用规则与机器学习

    机器学习项目中遇到的难题 Machine learning is taking the world by storm, and many companies that use rules engine ...

最新文章

  1. eclipse提交项目到github
  2. 关于css的一些特别用法
  3. 看小说有广告?不可能的,分分钟教你爬取小说
  4. eclipse安装lombok插件 ,但是:lombok注解不起作用(亲测有效!)
  5. AAAI 2021最佳论文亚军:Attention+积分梯度=归因解释新方法
  6. 构建私有的 CA 机构
  7. 如何精通java_如何精通java技术
  8. 第一个SpringBoot项目——CRUD
  9. 亚马逊AWS营收1700亿,阿里云213亿,差距巨大能追赶吗?...
  10. 如何免费下载百度文库的文档!!!!!!!
  11. STM32F103ZET6驱动TM7705(AD7705)代码加心得
  12. 接口测试用例生成工具介绍及应用
  13. 佐治亚理工计算机科学录取,佐治亚理工学院计算机科学排名第4(2018年TFE美国排名)...
  14. Unity TimeLine实用功能讲解
  15. Debian搭建Samba服务
  16. python接管已经打开ie浏览器_使用selenium控制(接管)已打开的浏览器(chrome),并通过WebDriver值检测...
  17. 洗地机那个牌子好?洗地机品牌排行榜
  18. 只要掌握这两个方法便可快速学会怎么剪裁视频尺寸
  19. rest_framework之组件大长今
  20. 如何使用开源合成器Natron入门

热门文章

  1. [转载]基于Stm32,LD3320的非特定语音识别USB HID Keyboar
  2. 语音识别数据库成为了人工智能的核心(转发)
  3. oracle odbc驱动 linux,linux下oracle的odbc驱动的安装与配置
  4. 算法-满足条件的数字放在新数组
  5. 给 VS2008 / VS2010 MFC 项目添加启动画面
  6. $ajax 获取返回值object,来自.ajax()调用的数据的jQuery .find()返回“ [object Object]”,而不是di...
  7. mysql 把一列转多行_Oralce 按分隔符把一列转成多行
  8. layui的table常用方法
  9. JMX监测JVM报错
  10. linux下mysql 8.0忘记密码后重置密码