近几年来热门的神经网络(Neural Network)和深度学习(Deep Learning)是机器学习(Machine Learning)的分支. 在计算机科学的定义中, 学习可以理解为:"A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E"(Mitchell 1997).
T - Task: 机器学习的目标(任务). 从工程角度来说, 机器学习的方法可以用来解决很多常规意义上的"程序"无法解决的问题.常见的机器学习任务有:
- Classification
- Classification with missing inputs
- Regression
- Transcription
- Translation
- Structured Output task
- Anomaly Detection
- Synthesis and Sampling
- Imputation of missing value
- Denoising
- Density of probability function estimation
P- Performance: 我们需要衡量机器学习算法好坏的指标. 例如, 在Classification的任务中, 我们可以用Accuracy准确率来衡量算法性能好坏. 通常情况下, 我们会设置一个test set 测试集来测试网络性能. 测试集不能与训练集, 验证集交叉(训练集包含了用于训练学习的数据, 验证集用于选择最优参数等). 很多时候我们会发现, Performance是一个很难量化的问题. 在有监督学习(Supervised Learning)中, 例如图像识别,语音识别等, 我们可以找到一个cost function(损失函数)来衡量网络输出Y‘ 和 目标输出Y的差距. 但并不是所有的学习都能通过有监督学习进行. 例如在计算机音乐创作的任务中, 我们无法找到目前输入音符下, 下一个输出音符的"正确答案". 这时就需要无监督学习(Unsupervised Learning). 这就引出了我们的经验 E
E- experience : 机器学习的经验E可以来自上述的两种学习模式, 有监督学习(SL) 和无监督学习. 两种学习都需要一个data-set, 里面包含了样本 examples. 这些样本包含着许多特征, 机器学习的任务很多情况下就是学习数据集的特征. 无监督学习需要通过特有的算法对特征进行学习, 常见的算法有 聚类算法(Cluster), 以及基于能量模型的RBM, autoencoder等. 有监督学习与无监督学习不同的地方在于, 有监督学习的样本中, 每个example都会对应一个label, 我们需要学习example的特征, 使得网络学会对测试集中相似的example分配正确的label.
机器学习还包括其他的算法, 例如近一两年来应用广泛的Reinforcement Learning(强化学习)等. 接下来的博客主要是介绍机器学习的一个分支, 深度学习里的网络和算法.
reference: Deep Learning - Yoshua Bengio etc.