1. 什么是机器学习?
机器学习是一种人工智能的分支,它利用数据和算法来实现自动化的学习过程,从而使计算机能够从经验中提取规律和知识,并用于预测、分类、聚类、识别等任务。
机器学习的核心思想是从数据中学习模式和规律,进而利用这些规律来推断和预测未知数据的行为。因此,其过程主要包括数据预处理、特征提取、模型训练和模型评估等步骤。
机器学习在很多领域都有广泛的应用,如自然语言处理、计算机视觉、医疗诊断、金融风控、推荐系统等。
重点归纳:
- 机器学习本质上是一种数学模型。机器学习的目的就是自动找到最合适的函数。
- 因为现实问题往往非常复杂,难以(或者不可能)建立完全精确的数学解析模型,因此机器学习就非常必要。
高中数学学习的最小二乘法也能算得上是一种机器学习,但是现实生活中,能有多少场景能简单到用线性函数就能表达的呢
2. 机器学习分类
按学习方式分类,机器学习分为有监督学习和无监督学习两种。
总的来说,有监督学习需要对数据进行标注,而无监督学习则不需要标注
,两种学习方式都有其适用的场景和算法。
2.1 有监督学习(Supervised Learning)
有监督学习是指给算法提供带有标记的训练数据
,让算法通过学习标记和特征之间的关系,得出一个能够对新的未标记数据进行正确分类或预测的模型。例如,给算法提供带有“猫”或“狗”标记的图片,让算法学习图片的特征和它们所对应的标记之间的关系,以便对新的未标记图片进行分类。
2.2 无监督学习(Unsupervised Learning)
无监督学习则是指给算法提供没有标记的训练数据
,让算法自行学习数据之间的关系和规律,进而对新的未知数据进行分类、聚类或者降维等操作。
例如在电商网站中,可以利用聚类算法将人们的行为和偏好相似的用户分组,从而可以对他们进行更加个性化的推荐。聚类算法可以被用于许多其他领域,例如有监督学习的前置处理,图像分割,语音识别,生物信息学等。
3. 损失函数
损失函数是指用来衡量模型预测结果与真实结果之间差异的函数。在机器学习中,常用损失函数来评估模型的训练效果,并通过优化损失函数来更新模型参数。常见的损失函数包括以下几种:
- 均方误差(MSE):MSE是回归问题中最常用的损失函数,它衡量模型预测值与实际值之间的平均差值的平方。
- 交叉熵(Cross Entropy):交叉熵是分类问题中常用的损失函数,它可以衡量模型预测值与实际值之间的差异。
- 对数损失(Log Loss):对数损失是二元分类问题中常用的损失函数,它可以测量模型预测值与实际值之间的差异。
- Hinge Loss:Hinge Loss是支持向量机(SVM)中使用的损失函数,它可以衡量模型预测值与实际值之间的差异。
- KL散度(KL Divergence):KL散度是一种度量两个概率分布之间差异的方法,它常用于无监督学习中的聚类算法。
不同的损失函数适用于不同的学习任务和模型类型,选择合适的损失函数可以提高模型的性能和训练效果。
3.1 损失的来源
机器学习中损失值可能有以下几种来源:
- 模型本身的复杂度不足或过度,导致预测结果与真实值之间的差距较大。
- 数据集中存在噪声或离群值,使得模型的预测结果偏差较大。
- 数据集中某些特征的信息量不足,导致模型无法充分利用数据中的信息进行预测。
- 数据集的样本规模较小,训练数据不足以充分训练模型。
- 数据集中存在与目标变量相关的变量或因素未被考虑,从而影响模型的预测效果。
- 模型选择的损失函数不适合当前的数据集和问题,或者模型训练的超参数设置不合适。
通过识别和分析损失的来源,可以优化模型和训练数据,进一步提高模型的预测性能。
3.2 Variance和Bias
Bias是指模型在训练数据上表现的好坏,即模型的预测结果与真实值之间的偏差。如果模型的Bias很大,说明模型在训练数据上的表现不够好,可能出现欠拟合现象。这种情况下,模型无法很好地捕捉到数据之间的关系,预测结果会比较偏离真实值。
Variance是指模型在测试数据上的波动性,即同样的模型在不同的测试数据上的预测结果之间的差异。如果模型的Variance很高,说明模型过度拟合了训练数据,在测试数据上的预测结果可能会出现较大的误差。这种情况下,模型对于训练数据的噪声过于敏感,导致模型预测的结果不稳定。
在机器学习中,通常需要在Bias和Variance之间进行权衡,以达到最优的预测性能。如果Bias过大,可以选择增加模型的复杂度,比如添加更多的特征或增加神经网络的层数。而如果Variance过高,可以采用正则化等方法来减少模型复杂度,并使模型更加稳定。
3.3过度拟合(Overfitting)与欠拟合(Underfitting)
通过机器学习得出的模型,在train组表现很好,在test组表现很差即为Overfitting;如果在train组表现就很差,即为Underfitting。
4. 损失函数的优化
损失函数的优化过程的目标就是通过调整模型参数来最小化损失函数
,从而使模型的预测结果更加准确。
以下是优化损失函数的基本过程:
- 选择优化函数:常见的优化算法包括随机梯度下降(SGD)、动量法、RMSprop、Adam等。这些算法主要是为了更快地收敛到全局最优解或局部最优解,并且可以避免梯度下降算法中的局部最优问题。
- 初始化模型的参数:通常情况下,模型的参数都是随机初始化的。
- 计算损失函数:将训练数据输入到模型中,根据模型的预测结果和实际结果计算损失函数的值。
- 计算梯度:使用反向传播算法计算损失函数对于模型参数的梯度。
- 更新模型参数:根据梯度信息和学习率(learning rate),更新模型的参数。
- 重复上述步骤:重复执行上述步骤,直到达到预设的训练轮次或者损失函数达到一个较小的阈值。