博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从机器学习到深度学习(ML—DL)
阅读量:3727 次
发布时间:2019-05-22

本文共 1908 字,大约阅读时间需要 6 分钟。

1.统计机器学习常用的四种方法:正则化、核化、集成化和层次化

2.深度神经网络包括多层感知机、卷积神经网络循环神经网络

3.深度生成网络包括深度有向网络、深度信念网络深度波尔茨曼机

4.解决非线性问题的方法有非线性转换、核方法神经网络

5.非线性问题称为明转、核方法称为暗转、神经网络称为自转

6.神经网络本质是一个复合函数

我们知道,机器学习按照频率派贝叶斯派可以分为统计机器学习概率图模型。

统计机器学习常用的四种方法有:

  • 正则化——L1与L2等

  • 核化——核函数,比如SVM

  • 集成化——AdaBoost与Boosting

  • 层次化——深度神经网络

正则化是对原有模型的改进,大多是为了避免过拟合而引进的对参数进行惩罚。

核化最经典的是核函数,在应对低维空间无法线性可分的条件下利用核函数映射到高维空间,使得其线性可分,代表是支持向量机。

集成化有两条思路——Adaboost和Boosting,前者是并行式的训练模型,后者是有迭代顺序的训练模型。

层次化常用的代表有多层感知机、CNN、RNN等,它的“深”就是形式上的深度,它们统称为深度神经网络(DNN)

概率图模型分为有向图和无向图模型,对于贝叶斯网络,加入层次化后就发展为深度有向网络,包括生成对抗网络(GAN),变分自编码(VAE)和Sigmoid Belief Network;马尔科夫网络加入层次化后的一个代表是深度波尔茨曼机;把有向图和无向图混合后加入层次化就是深度信念网络

从概率图模型加入层次化的统称为深度生成网络。

机器学习发展史

严格意义上,深度学习是由机器学习发展而来的。它从1958年感知机算法开始,就已经有了理论的发展,由于受到现实计算机等各方面的影响,在此后很长的一段时间里,深度学习都没有占据机器学习的主要地位。直到2009年,GPU的发展,计算机算力的发展,使得深度学习得已在现实中实现。最主要的是训练效果也是令人满意的,所以2010~2020十年间才迅速火起来。

1958年,提出感知机算法,但它无法解决非线性问题;

1981年,多层感知机的出现解决上面的问题

1986——1989年,BP算法应用在MLP上,随后CNN、RNN算法相继问世,于此同时,深度神经网络无法解决BP算法梯度消失问题

1993年开始,核函数的发展应用到SVM上,使得其大放异彩,接着相继问世集成化方法,随机森林等提出,使得DL逐渐没落

1997年在RNN基础上提出了LSTM算法

2006年,基于RBM(受限波尔茨曼机)的深度信念网络和深度自编码出现

直到2009年,计算机硬件的发展,使得DL成为落地可能

2011年,DL在语音、图像上开始应用

2013年,变分自编码提出

2014年,生成对抗网络提出

2016年,人工智能AlphaGO打败人类顶尖选手

2018年,图神经网络提出,给予神经网络推理能力

非线性问题的解决方案

对于非线性问题,传统上有三种解决方法:

  • 非线性转换

  • 核方法

  • 神经网络方法

在一文中,我们提到过一个定理:

Cover Theme:高维空间比低维空间更易线性可分

做非线性转换就是为了将低维空间转换到高维空间,使得其线性可分。

在之前我们介绍过一个例子:

这个例子称为亦或问题(XOR Problem)它是指输出只有两种可能:二维随机变量取值相同输出为1,否则输出为0,数学表达为:

它在二维平面里找到一条直线将这两类分开,需要做非线性转换:

把二维空间映射到三维空间上,就能找到一个超平面将其分开。我们把这种非线性转换称为明转——直接转换到高维空间找到线性可分的超平面

但这种方法可能会导致维度灾难,并且可能很难得到这个变换函数,接着我们介绍了核方法,就是找到一个正定核函数,使得其等于在高维空间做內积:

我们这种转换称为暗转(隐藏了转换Φ)——找到不直接在高维空间做运算的线性可分超平面。

第三种是神经网络方法,我们把这种称为自转。

在位运算里,最基本的三个运算符是或(OR)、与(AND)、非(NOT),它们的记号是:

XOR问题里面我们定义了输出逻辑:

这个逻辑可以用数学符号表示

该式子称为亦或运算(读者可仔细琢磨,这是可行的).

我们把这个式子分为两步完成:

第一步,执行运算1和运算2,第二步,执行运算3。

把这个过程图模型化:

这个就是一个有向无环图,运行这个概率图,就能把非线性问题的0,1分类分开。

实际上,这个就是一个简单的深度神经网络,我们把亦或运算看成一个复合函数的话:

那么神经网络就是一个复合函数

神经网络中的每一个节点被称为神经元,它由三部分组成:输入、内部参数和输出。

转载地址:http://solnn.baihongyu.com/

你可能感兴趣的文章
当出现“Failed to load resource: the server responded with a status of 404 ()”怎么解决(附上了我的心理活动)
查看>>
不使用第三个变量将a、b两个变量值进行互换
查看>>
杂七杂八的小知识点(持续更新)
查看>>
出现“Exception in thread “main“ java.lang.ArrayIndexOutOfBoundsException”:数组下标越界
查看>>
大无语事件
查看>>
虚拟机安装后Linux系统输入ifconfig查不到ip怎么办
查看>>
出现:Cause: java.lang.ClassNotFoundException: Cannot find class: com.mysql.jdbc.Driver怎么办?
查看>>
出现“java.lang.Exception: No runnable methods”的解决方法
查看>>
解决RabbitMQ拒绝连接
查看>>
记录一下我最近常用的语句
查看>>
我的Java学习笔记-集合篇
查看>>
我的Java学习笔记-泛型
查看>>
我的Java学习笔记-Lambda表达式
查看>>
我的java学习笔记-多线程
查看>>
生产者与消费者的线程问题
查看>>
MySQL学习笔记(基础)
查看>>
我的Java学习笔记——JDBC
查看>>
pandas的一些题
查看>>
图形界面综合练习——查找文件内容
查看>>
Java学习笔记——图形界面
查看>>