学习资源及工具
1、课程资源:B站大学
2、相关工具:Jupter & Github
3、书籍资源:神经网络与深度学习(Michael Nielsen)、机器学习(周志华)、统计学习方法(李航)…
机器学习分类
1、监督学习(supervised learning)
- 回归(regression)
- 给定输入输出数据对,在无限数据输出情况下预测输出
- 例子:房子价格预测(house price predict)
- 线性回归模型(linear regression)
- y=w
- 分类(classification)
- 给定输入输出数据对,在有限可能数据输出情况下预测输出情况
- 例子:乳腺癌阶段判断(breast cancer predict)
- 注释:描述中class & category等价
- 区别
- 分类的输出可以是数据可以是图片等,当输出为数据时,数据可能取值范围有限,而回归输出只能为数据,且数据范围无限
2、无监督学习(unsupervised learning)
- 聚类算法(clustering algorithm)
- 在未标记的数据集中寻找一些有意思的信息,将未标记的数据自动放置在不同的集群当中
- 示例:谷歌新闻(google nows),DNA数据的无监督学习(clustering genetic or DNA data)
- 异常检测(anomaly detection)
- 检测异常事件
- 降维(dimensionality reduction)
- 在尽可能少丢失信息的条件下,将数据集压缩成为更小的数据集
3、Python示例代码
- Jupter & Github项目
- 课程及项目资源可在B站上找,Github上项目Lab下载后用Jupter打开可直接运行
# print statements
variable = "right in the strings!"
print(f"f strings allow you to embed variables {variable}")
专业术语(Terminology)
1、训练集(training set)
- x(low case):input variable or feature
- y(low case):output variable or target variable
- m(low case):total number of training examples
- (x,y):single training example
- ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i)): i t h i^{th} ith training example
- 监督学习(supervised learning)
注释:f既可称作hypothesis,也可称作function
注释:x为input or input feature,f为model,y_hat为 y ^ \hat{y} y^,意为input为x时结果的预测值(prediction),可能不是真实值
线性回归模型(Linear regression)
1、数学表示: f w , b = w x + b f_{w,b}=wx+b fw,b=wx+b
- w、b:①the parameter of the model ②coefficients ③weights
- 单变量线性回归:①linear regression with one variable ②univariate linear regression
2、Lab_3:线性回归Python绘图尝试
- 工具:Numpy & Matplotlib
- 涉及Python中有关数组以及绘图的一些基础语法
- 示例:数组(shap、les…)、绘图(plt相关)
代价函数(cost function)
注:以下内容以线性回归模型为参考进行分析
1、代价函数数学表示
- 常用代价函数数学表示:
J
(
w
,
b
)
=
1
2
m
∑
i
=
1
m
(
y
^
(
i
)
−
y
(
i
)
)
2
J(w,b)=\frac{1}{2m}\sum_{i=1}^{m}{{(\hat{y}^{(i)}-y^{(i)})}^2}
J(w,b)=2m1∑i=1m(y^(i)−y(i))2
其中 y ^ i = f w , b ( x ( i ) ) \hat{y}^i=f_{w,b}(x^{(i)}) y^i=fw,b(x(i)) - 上述代价函数也称作:squared error cost function
- 在不同的模型出于不同的应用可以使用不同的代价函数,但给出的代价函数是使用最为广泛的代价函数之一
2、代价函数直观理解
- goal: m i n i m i z e J ( w , b ) minimizeJ(w,b) minimizeJ(w,b)
- situation 1:仅含
w
w
w的代价函数最优求解:
- 将b设置为0,求解 J w , b J_{w,b} Jw,b最小时的对应的 w w w值
- situation 2:同时含有
w
w
w和
b
b
b的代价函数最优线性回归模型求解
- Lab_4:3维碗图观察不同 w w w和 b b b值对成本函数大小的影响,理解代码需要一定的Python基础
3、实现方式
- 梯度下降(gradient descent):选择任意 w w w和 b b b值作为初始点,沿着成本函数减小最快的方向(即梯度方向)前进,最终到达局部最优点(local minimum)。(注:最终的局部最优点依赖于初始点的选择)
- 以线性回归模型作为分析为例:
{ w = w − α δ δ w J ( w , b ) b = b − α δ δ b J ( w , b ) \begin{cases} w=w-\alpha\frac{\delta}{\delta{w}}{J(w,b)} \\ b=b-\alpha\frac{\delta}{\delta{b}}{J(w,b)} \\ \end{cases} {w=w−αδwδJ(w,b)b=b−αδbδJ(w,b)- 其中 α \alpha α为学习率,大小范围为[0,1],作用为控制沿梯度方向下降的步长大小,可以理解为微积分中的 △ x \triangle{x} △x
- δ δ w / b J ( w , b ) \frac{\delta}{\delta{w/b}}{J(w,b)} δw/bδJ(w,b)为成本函数关于 w / b w/b w/b的偏导数,决定前进方向
- 在寻找最优点的过程中,需要不断对
w
w
w和
b
b
b的取值进行更新,且必须为同时更新(即偏微分部分取值均从原来的
w
w
w和
b
b
b值取得)。具体实现方式如下图所示:
-
α
\alpha
α的选择
- 特点:小→拟合效果好,收缩速度缓慢;大→拟合效果差,甚至可能无法收缩,收缩速度快
- 由于趋近局部最优点时导数值越来越小(逐渐趋近于0),即使 α \alpha α取固定值,也能够实现趋近最低点
- 当成本函数不是以平方的形式定义时,可能出现多个局部最优点
4、术语表达
- Batch gradient descent
- 梯度下降的每一步都用到了训练集中的所有组合,而非训练集中的一个子集(subset)
- 有一些梯度下降实现仅需要用到训练集中的一部分子集,在线性回归模型中,使用Batch gradient descent
- Lab_5:通过梯度下降的方式优化 w w w和 b b b的取值