机器学习-Learning Deep Architectures for AI -1
随着计算机信息的发展,希望用计算机来model真实的物理过程,为了更精确地分析物理过程,计算机中关于物理过程的输入信息越多越好。让计算机储存/读取物理过程的所有信息是及其艰巨的,因此使用learning algorithm来不断学习获取物理过程的大部分有用信息。
人工智能方面,寻找合适的学习算法是最大的挑战。
我们假设为了表达复杂的物理过程,需要非常复杂的数学模型,例如高度非线性。面对非常复杂的问题时,很自然的想法即将复杂的原问题分解为多个子问题。以图像识别为例,从原始像素到人脸识别需要经历:
- Layer 1. 识别边缘
- Layer 2. 识别复杂但局部的特征
- Layer 3. 将局部特征进行组合,得到整体识别
Deep Architecture Learning 的目标即如何在尽可能没有人工参与的情况下实现从较低level的识别到较高level的识别。(不需要人工提供大量的训练样本,即无监督学习。)
归纳: AI 学习的必要条件
能够学习高度复杂多变的函数,函数的复杂程度可能远高于训练样本的个数;
关于该复杂函数的各层信息较少时,能够进行有效学习;
当训练集的样本量非常大时,控制计算时间,i.e.计算时间与训练样本量近似线性关系;
可以实现半监督学习,也就是训练样本并非完全是right associated labeled;
可以进行多任务学习;
实现高度无监督学习。
Shallow architecture 的局限性
设用k-1个层表示复杂函数
例如, 计算多项式
- 先加和后相乘, 2层:
O(mn) - 先相乘后加和, 1层:
O(nm)
Shallow architecture估计法
kernel machine
其中,
Learning Deep Architecture
multi-layer neural networks
参考1. Multi-layer neuralnetworks
2. 多层神经网络
最大的困难: 优化!!
解决方法:
1. Convolutional neural networks
2. Sigmodial belief networks
3. Deep belief networks