B站吴恩达机器学习笔记
机器学习视频地址:
4.5 线性回归中的梯度下降_哔哩哔哩_bilibili
机器学习分类:
1. 有监督学习(Supervised Learning)
在有监督学习中,训练数据包含了输入特征和正确的输出标签,模型通过这些带有标签的数据进行学习,以预测新数据的输出。
- 分类(Classification):目标是预测数据点属于哪个类别。例如,电子邮件是否为垃圾邮件、图片中对象的类型等。
- 回归(Regression):用于预测一个连续值的输出。比如预测房价或股票价格。
2. 无监督学习(Unsupervised Learning)
在无监督学习中,训练数据不包含输出标签,算法试图从未标注的数据中学习出一些有用的模式或结构。
- 聚类(Clustering):目的是发现数据中的自然分组。如将客户分成不同的市场群体。
- 关联规则学习(Association Rule Learning):旨在挖掘变量之间的关系,例如购物篮分析中找出哪些商品经常一起被购买。
- 降维(Dimensionality Reduction):减少数据集的变量数量,同时尽量保留原始数据的信息,用于简化数据以便于可视化或提高模型效率。
其他学习方式
除了上述两种主要的学习方式外,还有:
- 半监督学习(Semi-supervised Learning):介于有监督学习与无监督学习之间的一种方法,使用少量带标签的数据和大量不带标签的数据进行学习。
- 强化学习(Reinforcement Learning):通过试错机制来学习策略,以最大化某种累积奖励。它广泛应用于机器人导航、游戏AI等领域。
损失函数学习地址:
损失函数选择
选凸函数的话,会收敛到全局最小值。证明凸函数用Hessian矩阵。凸函数定义:两点连线比线上所有点都大。
batch理解:
- 在机器学习中,指的是用于一次模型更新的所有样本的集合。当使用批处理进行训练时,每次更新模型参数是基于整个批处理内的所有样本计算得到的梯度。
- batch设置为2的话,数据集6张图片,第一次1 2第二次3 4第三次5 6
梯度下降法学习地址:
numpy学习地址:
Python之Numpy详细教程_python numpy-CSDN博客
numpy常用函数:
np.array([1,2,3])np.array(
[1,2],
[2,3],
[3,4])
//reshape(-1, 1) 是一种便捷的方式来将任何一维数组转换为列向量,其中 -1 告诉 NumPy 自动计算合适的尺寸以匹配另一维度的大小(在这里是指定的 1)
//reshape(-1, x)可以理解为得到(?,x)的数组
np.array([1, 2, 3]).reshape(-1, 1)
//做点积操作
np.dot(w,x)
特征归一化处理:
归一化方法学习地址:
Min-Max 归一化:通过线性变换将数据映射到[0, 1]区间内。
Z-score 标准化(Standardization):这种方法将原始数据转换为均值为0、标准差为1的数据分布,即标准正态分布。
L2 正则化(也称为向量归一化):对于每个样本,将其特征向量除以其L2范数,使得每个样本的特征向量长度为1。这在文本分类等需要处理高维度稀疏数据的任务中非常有用。
Batch Normalization:不同于上述针对输入数据的归一化方法,Batch Normalization是在神经网络内部使用的一种技术,通常应用于隐藏层的输出上。它通过对每一批次的小批量数据进行归一化,保持输入到每一层的分布稳定,从而加速训练过程,并允许使用更高的学习率。
Layer Normalization:与Batch Normalization不同,Layer Normalization是基于单个训练样本而不是批次来计算均值和方差,因此不受批次大小的影响,特别适合于循环神经网络(RNN)或需要在线学习的场景。
梯度下降中如何选择
:
正常情况下会是这样,如果误差越来越大说明学习率大了。
停止条件:
1.看图达到最小。2.判断收敛(数分那种收敛判定)。
如何选择:
这两种说明学习率太大或者程序有bug。
常用技巧就是将学习率设置的很小。
通常来说:0.001 0.003 0.01 0.03 0.1 0.3 1 ...经常尝试扩大三倍取值。