前记:最近在学习《动手学深度学习》一书,对一些知识点做些总结,概述。
1.概述
1.1机器学习:
讨论各式各样的适用不同问题的不同函数形式,并通过数据获得函数参数的具体值的学科。
机器学习研究如何使计算机系统利用经验(数据?)改善性能。是人工智能领域的一个分支,也是实现人工智能的一种手段。
1.2表征学习:
表征学习作为机器学习众多研究方向中的一种,关注如何自动找出表示数据的合适方式(模型的建立?)。而判断“表示数据的方式”是否合适的标准在于,数据经该方式变换的所得输出是否符合要求。
1.3深度学习:
深度学习是机器学习的一种函数类型,形式通常为多层神经网络。
深度学习是一种具有多级表示的表征学习方法,深度学习通过简单的函数将该级的“表示”变换为更高级的“表示”,因此 深度学习也可以看成是由许多简单函数复合而成的函数,当复合函数足够多时,就可以表示十分复杂的变换。
深度学习可以逐级表示越来越抽象的概念或模式,与之对应的一个特点是深度学习只需端到端的训练,即将一个系统组建好后一起训练,而不需要“逐级表示故逐级训练,然后拼接”。并且逐级表示的方法,或者说参数是自动建立的,我们只需端到端的训练。
2.线性回归
2.1回归与分类
线性回归的输出值是个连续值,故属于回归问题。回归问题的最终输出结果是连续值,如气温,销售额等。相对应的是分类问题,分类问题最终输出结果是离散值,如图像分类。softmax回归适用于分类问题。
2.2线性回归基本要素
2.2.0引例
房屋价格预测:我们基于房屋面积(x1),房龄(x2)来预测某一地段房屋的价格。
2.2.1模型
模型(model)即表征输入输出关系的具体函数。
线性回归假设输入输出之间是线性关系:
y=x1*w1+x2*w2+b
其中y是输出;x1,x2是输入;w1,w2是权重(weight);b是偏差(bias)。
2.2.2模型训练
模型训练即通过数据寻找特定的模型参数值,在这里就是要确定w1,w2,b的值。
2.2.3训练数据
通过真实的数据确定模型参数值,确定标准在于输出的预测值与真实值之间的差别最小,或在可接受的范围。
该数据集称为训练数据集( training data set) 或 训练集(training set)。
实际真实值的一组数据称为一个样本(sample),样本中输出y称为标签(label),样本中输入x称为特征(feature),特征用来表征样本的特点。
2.2.4损失函数
损失函数用于衡量预测值和真实值之间的误差。一个常用的选择是平方函数(平方损失):
l_i (w1_i, w2_i, b_i)=1/2*( y_预测_i - y_真实_i )^2 ;
前边1/2系数是为了求导后系数为1。
给定训练集, 这个误差(损失) 只与模型参数有关(这里是w1, w2, b),故损失函数是模型参数的函数。
在模型训练中,我们目的就是确定一组模型参数(w1, w2, b) ,确定的标准就是训练样本的平均损失最小。样本平均损失l定义为:
l = 1/n * ∑ l_i (w1_i, w2_i, b_i) = 1/n * ∑ 1/2 * ( y_预测_i - y_真实_i )^2
n 指的是训练集中样本数,∑ 指对i 从1到 n 求和。
2.2.5优化算法
一些简单的问题,上述误差最小化的问题可以直接解出来,用公式表示出来,这种情况称为解析解。
但大多数问题没有解析解或者解析解并不容易求得,但我们有大量的数据(样本)。只能通过优化算法有限次迭代,尽可能减小损失函数的值,这种情况称为数值解。
一种常用的优化算法,小批量随机梯度下降( mini-batch stochastic gradient descent ):
小批量随机梯度下降:先选取一组模型参数的值( w1_初始,w2_初始,b_初始 ),如随机选取。接下来利用优化算法迭代,使每次迭代都有可能减小损失函数。每次迭代的做法:在训练集中随机选取由固定数量样本(batch_size)组成的批量B(mini-batch)。然后在批量B中求每个模型参数的导数(梯度),求平均后乘一个正数η,这个结果作为模型参数的减小量,减去后作为新的模型参数。
w1= w1 - η/batch_size * ∑ ( l_i ( w1, w2, b) 对w1求偏导 );
w2= w2 - η/batch_size * ∑ ( l_i ( w1, w2, b) 对w2求偏导 );
b=b- η/batch_size * ∑ ( l_i ( w1, w2, b) 对b求偏导 );
∑ 指对 i 从1到batch_size求和,正数η称为学习率(learning rate), batch_size和η称为超参数(hyperparameter)。
迭代结束我们就可以得到学习得到的模型参数(w1_训练所得, w2_训练所得, b_训练所得)。
2.2.6模型预测
模型预测指我们用训练所得的模型参数来预测训练集以外的结果,如这里的面积。
3.softmax回归
首先明确,softmax回归是分类问题,也就是说最后的输出一定是有限个已知“类型”之一,是个离散值。比如说一个分类是判断输入是“鸡”,“鸭”,还是“狗”,那最终输出的结果只能是这三者之一。
softmax回归也是将输入特征和权重作线性叠加,区别在于有多个输出值。原因在于softmax处理分类问题,每一类都有自己的一套权重,那么一套输入特征,分别经过几套权重的计算,就有几套输出。因为一类对应一套权重,那就是说一个具体的分类问题中,有几种类别,一套特征输入就会有几种对应的输出。
显然,这相当于将之前的几个线性回归合到一起:一个线性回归模型有一套具体权重,不同线性回归模型有不同的权重,对应不同的类别。所以一套特征输入有着多个输出,并且输出连续值。
那么,接着便是第二个问题:如何从多个类别自己的连续输出中,得到分类判断呢?这是一个将连续值离散化的过程:我们认为哪一个输出值最大,那他对应的类别就是我们判断的类别,也就是最后的输出结果。