聊聊深度学习这档子事(3):寻找万能的通用模型

作者: 许野平 2016-06-18 于济南

前面说过,机器学习最终结果的好坏,取决于模型的选择和训练数据的采集。今天讨论一下模型的选择。在前面的讨论中,我们假定身高与体重存在函数关系y=ax+by=ax+b。给人的感觉有些太武断了。为什么它们满足这种关系?它们之间不会是其他别的关系吗?

因此,数学家们在考虑,是否能找到一种万能的函数表示方法,能表示世间的一切函数关系?如果确实存在这样一个模型,机器学习的问题就解决一半了,模型用这个通用的,剩下只需要求解参数就行了。那么,这样万能的通用模型存在吗?

1. 幂级数

数学里面有个泰勒定理,说的是“任何”函数 f(x)f(x),一定能表示成一系列幂函数的线性组合:

f(x)=a0+a1x+a2x2+a3x3+......+anxn+rn(x)

f(x)=a_0 + a_1x +a_2x^2+a_3x^3+......+a_nx^n + r_n(x)

看到这里,有人已经忍不住要惊叹了,原来幂级数就是万能的数学模型呀,几乎可以表示世间一切函数了。你先别太兴奋,幂级数只是其中之一,下面我们再看另一个模型。

2. 傅里叶级数

傅里叶级数数,“任何”函数都可以表示成一系列三角函数的线性组合:

f(x)=a0+a1cos(x)+b1sin(x)+a2cos(2x)+b2sin(2x)+......

f(x) = a_0 + a_1cos(x) + b_1sin(x) + a_2cos(2x) + b_2sin(2x) + ......

其实这个很多情况下比幂级数还靠普,为什么呢?因为弦函数是有界函数,不会干太出格的事。幂函数就不同了,常常会给一个出人意料的预测结果。当然正常情况下,我们可以根据试验结果确定二者的优劣。

3. 最小二乘法求解

老天爷似乎一切都安排得妥妥当当,我们学过最小二乘法。我们知道如果模型可以表示成若干函数的线性组合,就可以借助最小二乘法求解。这两个级数恰好符合这个要求,因此,我们拿过来试一试,看看效果好不好。

本来想用Matlab写个例子,但是感觉有些太浪费时间了,不如先在这儿说说吧。其实结果很简单:

  • 最小二乘法求解肯定没问题。已知训练样本数据求参数,就是解超定线性方程组,用最小二乘法求解毫无悬念。
  • 参数个数太少,意味着模型太简单,对付复杂问题,往往这样的模型效果不佳。比如,训练数据符合模型 y=−sinx+3cos(2x−π3)y=-\sin x + 3\cos{(2x-\frac{\pi}{3})},而我们假定模型是 y=axy=ax ,再怎么学习训练也不会取得好的结果, 因为模型本身就是错的。
  • 训练样本少,模型复杂,也容易发生悲剧。比如已知f(1)=2,f(2)=4,f(3)=6f(1)=2,f(2)=4,f(3)=6,我们可以得到很多函数模型,最简单的比如f(x)=2xf(x) = 2x。模型也可以复杂一些,例如f(x)=2x+(x−1)(x−2)(x−3)f(x) = 2x+(x-1)(x-2)(x-3),或者f(x)=2(x−2)(x−3)(1−2)(1−3)+4(x−1)(x−3)(2−1)(2−3)+6(x−1)(x−2)(3−1)(3−2)f(x)=\frac{2(x-2)(x-3)}{(1-2)(1-3)}+\frac{4(x-1)(x-3)}{(2-1)(2-3)}+\frac{6(x-1)(x-2)}{(3-1)(3-2)}等等。因为训练数据太少,我们不足以判定到底应该如何选取问题模型。这几个模型预测训练数据都是“零”误差,但是预测没见过的数据,则不见得奏效。因此,想取得好的效果,首先要保证足够多的训练样本。
  • 模型足够复杂(即,级数中的项数保留的比较多),同时,训练样本足够多,则有希望取得良好的训练结果。

经过反反复复的实验观察,我们可以得到最终的结论,利用幂级数或者傅里叶级数,在训练数据充分的条件下,借助最小二乘法可以求得比较理想的解。到这儿,似乎应该给机器学习打上一个大大的句号了,但是到底出了什么问题,让科学家们在机器学习领域又发明了这么多令人眼花缭乱的技术?经典数学分析领域的幂级数和傅里叶级数到底存在什么致命的缺陷,导致它们在机器学习的大舞台上让位于其他角色?

聊聊深度学习这档子事(3):寻找万能的通用模型相关推荐

  1. 聊聊深度学习这档子事(1):待定系数法

    聊聊深度学习这档子事(1):待定系数法 作者: 许野平 2016-06-16 于济南 序 深度学习这几年很火,写算法不和深度学习沾点边都不好意思和人家打招呼.面对新生事物,老朽我总觉得好奇,就想看看深 ...

  2. 从Clarifai的估值聊聊深度学习

    从Clarifai的估值聊聊深度学习 [转载请注明出处] 前几天和 Ayden @叶瀚中 聊天时,提到了 www.clarifai.com 这家公司. 此前,我已经从各方消息中听说过创始人Matt Z ...

  3. 当AlphaGo战胜李世石以后,我们来聊聊深度学习

    当AlphaGo战胜李世石以后,我们来聊聊深度学习 作者 黄文坚 发布于 2016年5月26日 | 大家好,我是黄文坚,今天给大家讲讲深度学习.我不讲技术原理,讲讲技术应用. 深度学习是我们明略重要的 ...

  4. 深度学习实战22(进阶版)-AI漫画视频生成模型,做自己的漫画视频

    大家好,我是微学AI,今天给大家带来深度学习实战22(进阶版)-AI漫画视频生成模型. 回顾之前给大家介绍了<深度学习实战8-生活照片转化漫画照片应用>,今天我借助这篇文章的原理做一个AI ...

  5. Keras深度学习实战(25)——使用skip-gram和CBOW模型构建单词向量

    Keras深度学习实战(25)--使用skip-gram和CBOW模型构建单词向量 0. 前言 1. skip-gram 和 CBOW 模型 1.1 CBOW 模型基本原理 1.2 skip-gram ...

  6. 深度学习三巨头共同发文,聊聊深度学习的过去、现在与未来

    作者|Yoshua Bengio,Yann LeCun,Geoffrey Hinton 译者|香槟超新星 出品|AI科技大本营(ID:rgznai100) 人工神经网络领域的研究是基于对人类智能的观察 ...

  7. 大白话聊聊“深度学习”和“大模型”

    1950年图灵发表论文<计算机器与智能>( Computing Machinery and Intelligence),提出了"机器智能"(Machine Intell ...

  8. 关于一起深度学习的那些事

    1.前言 这将会是一个非常非常长的专栏,写这个专栏目的是让更多人可以自助解决自己的问题.最近也慢慢忙起来了,很多时候我并没有办法很有耐心的解决一些问题,而且很多问题我甚至无法解决,不同的问题有不同的产 ...

  9. 基于深度学习的轴承故障识别-构建基础的CNN模型

    上回书说到,处理序列的基本深度学习算法分别是循环神经网络(recurrent neural network)和一维卷积神经网络(1D convnet).上篇构建了基础的LSTM模型,这一篇自然轮到CN ...

  10. 深度学习机器臂控制_深度学习新进展:可自建任务解决模型的机器人问世

    机器学习已被验证为让计算机完成特定任务的有效策略,通过不断的试错和数据解析训练"教会"计算机学习任务的策略,通过自学习培育出精通这项任务的人工智能机器或者程序计算模型.来自哥大工程 ...

最新文章

  1. mapreduce将key相同的value结合在一起_个人理解Hadoop中MapReduce
  2. 安装交叉工具链arm-linux-gcc
  3. python中如何将数字改成字符串_python中如何将数字转字符串
  4. typeorm_Nestjs 热更新 + typeorm 配置
  5. 服务器多个网站开启quarz,GitHub - WuLex/QuartzSynchroData: 多个不同站点服务器数据同步到总服务器(数据中心)...
  6. [BZOJ3000] Big Number (Stirling公式)
  7. [linux内存]伙伴系统学习笔记(一)——概念
  8. python有趣小程序-Python全栈开发-有趣的小程序
  9. ​ [RHEL7.1]重新封装系统(制作模板)
  10. RecSys2020推荐系统论文Recommending the Video to Watch Next: An Offline and Online Evaluation at YOUTV.de
  11. DDS文档数据库服务
  12. 常用工具方法(7S,28,SWOT,PDCA,SMART,6W2H,时间管理四矩阵,WBS,碎石分析,ORID)
  13. 从乔布斯的演讲中获得的启示
  14. s开头wifi测试软件,应对5G WiFi 新一代无线测试的挑战
  15. matplotlib交互式数据光标实现——mpldatacursor
  16. lingo与matlab用哪个?matlab能代替lingo吗?非线性规划求解器Lingo,Matlab使用心得
  17. openlayers6【二十二】vue addLayer实现点击地图添加图标要素信息,编辑点位信息
  18. Elasticsearch:rollup - 索引管理
  19. 华为交换机linux版本号,华为交换机S5700升级实例
  20. Flask项目目录设计

热门文章

  1. 并发(10):线程之间的协作(上)
  2. 计算机内存清理原理,怎样清理计算机内存
  3. 用于细粒度图像分类的通道交互网络
  4. Python 之多元线性回归分析
  5. VMware vSphere重置系统配置
  6. java 余弦值_获取Java中给定值的双曲余弦值
  7. 泡泡龙游戏c语言程序,七彩泡泡龙小程序-微信七彩泡泡龙小程序小游戏v1.0-游戏宝手游网...
  8. Stata+PSM:倾向得分匹配分析简介
  9. 经典~吸引力法则:你相信什么,就会吸引什么,获得什么
  10. wamp mysql 端口_Wamp修改端口的方法