【深度学习入门】深度学习四板斧其二 -- 机器学习入门2

本文介绍了机器学习的基础概念,包括监督学习(如回归和分类)和无监督学习(如聚类和降维)。接着详细讲解了线性回归模型、梯度下降法及其在多元线性回归中的应用。还讨论了特征缩放和特征工程的重要性,以及逻辑回归模型和决策边界的构建。最后提到了过拟合问题和正则化作为解决策略。
摘要由CSDN通过智能技术生成

机器学习吴恩达视频
第一课

一、监督学习与非监督学习

-监督学习(Supervised learning):input X -> output Y

  • 回归(Regression):输出是连续的,有无数种可能结果
  • 分类(Classification):输出是离散的,固定结果中的一个

-无监督学习(Unsupervised learning):input X 没有output Y

  • 聚类(Clustering):根据特点来划分不同组
  • 异常检测(Anomaly detection)
  • 降维(Dimensionality reduction):将一个大数据集压缩成一个小数据集,同时丢失尽可能少的信息

二、线性回归(Linear regression)模型

-例子:预测房价
-模型函数:f(x) = wx + b ;w、b称为参数(parameters)
-代价函数(cost Function)
J ( w , b ) = 1 2 m ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) 2 J(w,b)= \frac{1}{2m} \sum_{i=1}^{m} \left ( \hat{y} ^{(i)} -y^{(i)} \right ) ^{2} J(w,b)=2m1i=1m(y^(i)y(i))2
-目标:找到合适的参数w、b,使得代价函数最小

三、梯度下降(Gradient descent)

-功能:求解一个函数的最小值,不仅仅可应用于线性回归模型
-实现
{ w = w − α ∂ ∂ w J ( w , b ) b = b − α ∂ ∂ b J ( w , b ) \begin{cases}w = w - \alpha \frac{\partial }{\partial w} J(w,b) \\b = b - \alpha \frac{\partial }{\partial b} J(w,b) \end{cases} {w=wαwJ(w,b)b=bαbJ(w,b)
-学习率:α ,范围在0-1之间
学习率太小时,速度会很慢;学习率太大时,可能会发生过冲,无法求得最小值。
-梯度下降求解线性回归(Gradient Descent for Linear Regression)
{ w = w − α m ∑ i = 1 m ( f w , b ( x ( i ) ) − y ( i ) ) x ( i ) b = b − α m ∑ i = 1 m ( f w , b ( x ( i ) ) − y ( i ) ) \begin{cases}w = w - \frac{\alpha }{m} \sum_{i=1 }^{m}(f_{w,b}(x^{(i)} ) -y^{(i)} ) x^{(i)} \\b = b - \frac{\alpha }{m} \sum_{i=1 }^{m}(f_{w,b}(x^{(i)} ) -y^{(i)} ) \end{cases} {w=wmαi=1m(fw,b(x(i))y(i))x(i)b=bmαi=1m(fw,b(x(i))y(i))

四、多元线性回归(Multiple linear regression)

-模型函数
f w ⃗ , b ( x ⃗ ) = w ⃗ ⋅ x ⃗ + b = w 1 x 1 + w 2 x 2 + w 3 x 3 + . . . + w n x n + b f_{\vec{w},b }(\vec{x}) =\vec{w}\cdot \vec{x} + b = w_{1}x_{1}+w_{2}x_{2}+w_{3}x_{3}+...+w_{n}x_{n}+ b fw ,b(x )=w x +b=w1x1+w2x2+w3x3+...+wnxn+b
-向量化(Vectorization)

import numpy as np
w = np.array([2,3,4])
x = np.array([10,20,30])
b = 4
#使用向量点积快速计算
f = np.dot(w,x)+b

-梯度下降求解多元线性回归(Gradient Descent for Multiple Linear Regression)
{ w j = w j − α m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) x j ( i ) , j ∈ [ 1 , n ] b = b − α m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) \begin{cases}w_{j} = w_{j} - \frac{\alpha }{m} \sum_{i=1 }^{m}(f_{\vec{w} ,b}(\vec{x}^{(i)} ) -y^{(i)} ) x_{j}^{(i)},j\in [1,n] \\b = b - \frac{\alpha }{m} \sum_{i=1 }^{m}(f_{\vec{w},b}(\vec{x}^{(i)} ) -y^{(i)} ) \end{cases} {wj=wjmαi=1m(fw ,b(x (i))y(i))xj(i),j[1,n]b=bmαi=1m(fw ,b(x (i))y(i))
-正规方程(Normal equation)

  • 只能用于线性回归
  • 无须迭代即可求解w、b
  • 不能泛化到其他学习算法
  • 当特征数量大时(>10000),计算缓慢
  • 如果使用机器学习库调用线性回归时,后端可能会用该方法计算w、b
  • 大多数情况下,梯度下降更好

五、特征缩放(Feature Scaling)

-缩放方法
直接缩放:直接除以最大值
均值归一化(Mean normalization):x = (x - μ)/ (xmax - xmin),μ为均值
Z归一化(Z-score normalization):x = (x - μ)/ δ ,δ为标准差
-如何设置学习率
对于不同的学习率,做少数次迭代运行梯度下降,并将成本函数J绘制为迭代次数的函数,在尝试多个值后,选择更加快速降低成本函数值的学习率。
方法:先设置学习率为0.001,每次增加三倍。
0.001 -> 0.003 -> 0.01 -> 0.03 -> 0.1 -> 0.3 -> 1 ->…
-特征方程(Feature engineering)
创建新特征,通常转换或者组合原始特征来使学习算法更容易做出准确的预测。
-多项式回归(Polynomial regression)
模型函数中,通过修改x的次幂,从而得到更好的数据模型。

六、逻辑回归(Logistic Regression)

-逻辑函数(logistic function)
g ( z ) = 1 1 + e − z , 0 < g ( z ) < 1 g(z) = \frac{1}{1+e^{-z} } , 0<g(z)<1 g(z)=1+ez1,0<g(z)<1
-逻辑回归模型函数
f w ⃗ , b ( x ⃗ ) = 1 1 + e − ( w ⃗ ⋅ x ⃗ + b ) f_{\vec{w} ,b}(\vec{x} ) = \frac{1}{1+e^{-(\vec{w} \cdot \vec{x} + b)} } fw ,b(x )=1+e(w x +b)1
-决策边界(Decision Boundary)
z = w ⃗ ⋅ x ⃗ + b = 0 z = \vec{w} \cdot \vec{x} + b = 0 z=w x +b=0
-逻辑回归中的代价函数(Cost Function for Logistic Regression)
J ( w ⃗ , b ) = − 1 m ∑ i = 1 m [ y ( i ) l o g ( f w ⃗ , b ( x ⃗ ( i ) ) ) + ( 1 − y ( i ) ) l o g ( 1 − f w ⃗ , b ( x ⃗ ( i ) ) ) ] J(\vec{w} ,b)=-\frac{1}{m} \sum_{i=1}^{m} [y^{(i)}log(f_{\vec{w} ,b} (\vec{x} ^{(i)} )) +(1-y^{(i)})log(1-f_{\vec{w} ,b} (\vec{x} ^{(i)} ))] J(w ,b)=m1i=1m[y(i)log(fw ,b(x (i)))+(1y(i))log(1fw ,b(x (i)))]
-实现梯度下降(Gradient Descent Implementation)
{ w j = w j − α [ 1 m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) x j ( i ) ] , j ∈ [ 1 , n ] b = b − α [ 1 m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) ] \begin{cases}w_{j} = w_{j} - \alpha[\frac{1 }{m} \sum_{i=1 }^{m}(f_{\vec{w} ,b}(\vec{x}^{(i)} ) -y^{(i)} ) x_{j}^{(i)}],j\in [1,n] \\b = b - \alpha [\frac{1}{m} \sum_{i=1 }^{m}(f_{\vec{w},b}(\vec{x}^{(i)} ) -y^{(i)} )] \end{cases} {wj=wjα[m1i=1m(fw ,b(x (i))y(i))xj(i)],j[1,n]b=bα[m1i=1m(fw ,b(x (i))y(i))]

七、过拟合(The Problem of Overfitting)

-如何理解
过拟合:火候太大了,高方差(high variance)
欠拟合:火候不够,高偏差(high bias)
-解决过拟合(Addressing Overfitting)
1.增大数据集
2.进行特征选择
3.使用正则化减小参数大小:可以保留所有特征,只防止特征产生过大的影响
-正则化
J ( w ⃗ , b ) = 1 2 m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) 2 + λ 2 m ∑ i = 1 m w j 2 J(\vec{w} ,b)= \frac{1}{2m} \sum_{i=1}^{m} \left ( f_{\vec{w} ,b} (\vec{x} ^{(i)} ) -y^{(i)} \right ) ^{2} +\frac{\lambda }{2m} \sum_{i=1}^{m}w_{j}^{2} J(w ,b)=2m1i=1m(fw ,b(x (i))y(i))2+2mλi=1mwj2
λ值既不能太大,也不能太小。
-用于线性回归的正则方法(Regularized Linear Regression)
-用于逻辑回归的正则方法(Regularized Logistic Regression)
{ w j = w j − α m ∑ i = 1 m [ ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) x j ( i ) ] − a λ m w j , j ∈ [ 1 , n ] b = b − α m ∑ i = 1 m ( f w ⃗ , b ( x ⃗ ( i ) ) − y ( i ) ) \begin{cases}w_{j} = w_{j} - \frac{\alpha }{m} \sum_{i=1 }^{m}[(f_{\vec{w} ,b}(\vec{x}^{(i)} ) -y^{(i)} ) x_{j}^{(i)}]- \frac{a\lambda }{m}w_{j} ,j\in [1,n] \\b = b - \frac{\alpha }{m} \sum_{i=1 }^{m}(f_{\vec{w},b}(\vec{x}^{(i)} ) -y^{(i)} ) \end{cases} {wj=wjmαi=1m[(fw ,b(x (i))y(i))xj(i)]mwj,j[1,n]b=bmαi=1m(fw ,b(x (i))y(i))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值