吴恩达机器学习笔记
看吴恩达机器学习(2022)做的学习笔记,自己复习用。
第一课监督学习
1.1-2.6节,基础定义
机器学习分为监督学习和无监督学习、(强化学习)。
监督学习(supervised learning)
监督学习(supervised learning)分为回归和分类问题。
x->y的映射
回归regression:y取任意值
分类classification:y取有限值,如0,1等。而且数字之间没有大小区别,只是指明不同class(category)
无监督学习(unsupervised learning)
无监督学习(unsupervised learning)有聚类、异常检测和降维三个应用
clusering algorithm
没有给出y值,而将未标志的的数据分为不同类(聚类问题)
获取没有标签的数据并自动分组到集群中
没有说把zoo、熊猫等化为一类,而是由算法自动找出相似的类别化为一类。
3.1-3.2线性回归模型
了解监督学习的过程。本节介绍监督学习的第一个model,Linear Regression Model。
如下,用直线模拟。regression model
一些专有名词
prediction y-hat
target y
one variable = univariate 单变量
linear regression
3.3-3.6 cost function
parameters:参数
coeffcients:系数
weights
为简化,假设b=0,考虑(1,1),(2,2),(3,3)
线性回归就是确定w和b参数,使J(W,B)最小。
接下来考虑b!=0的情况
4.1-4.6梯度下降gradient descent
含义
一种更系统的选择w和b的方法,适用于各种模型,不止线性回归模型。
可能有多个局部最小值
数学公式
ALpha:α,学习率
需要同时更新,如左侧
为简化,令b=0,只观察w
ALpha学习率
Alpha太小的话,过程很慢,浪费时间。
太大,在最小值左右摇摆,,由于导数原因,结果越来越差。
学习率不变,最后也能找到局部最小值
用于线性回归的梯度下降
cost function : 均方误差
线性函数是凸函数:convex function,只有一个全局最小值,没有任何局部最小值。
batch gradient descent
用一整个批量的数据进行梯度下降计算
第二周
1.1-1.4多个input features
符号表示
一些定义,见下图
multible linear regression
不叫multivariate regression
向量化计算dot(w,b)
多元线性回归的梯度下降法
更新
正规方程normal equation
被用于机器学习库并调用线性回归,被用于寻找w和b的方法
2.1-2.6 参数处理
特征缩放feature scaling
对于feature ——input x 的处理
好像就是特征的归一化处理。
由于大小不同,导致最后椭圆成扁平状。
归一化三种方法:
按最大值归一化
mean normalization(均值归一化)
u为均值,即平均数。
Z-score normalization
分母从mean normalization中的max-min
变成了标准差
learning curve(学习曲线)
判断何时收敛的方法之一,另外一种是自动收敛测试用epsilon。
iteration:迭代次数
ALpha选取
当出现上面两张图时,可能是因为learning rate too big。
通过设置非常小的ALpha,来判断是代码错误还是学习率太大。
如果最后J曲线一直下降,则是学习率太大,
否则可能是代码错误。
如何选择
feature engineering特征工程
根据已有的特征来选取新特征,如下面的房屋面积的选取
多项式回归polynomial regression
顾名思义,多项式回归, x 1 − > x 2 − > x 3 x^1->x^2->x^3 x1−>x2−>x3
值得注意的是,此时尤其需要进行feature scaling
第三周——分类问题
学习分类问题classification
1.1-3.1 logistic regression
引入
含义
binary classification:二元分类
class = category 类
为什么线性回归不适合classification
如下图,最右侧的X导致出现了错误的分类,而且错的很离谱。
红框内展示了下几节要讲的东西,逻辑回归和决策边界。
定义
sigmoid函数
对应,在最外层加入sigmoid函数(有点像激活函数),就是逻辑回归算法
decision boundary
关于什么时候分类为0,什么时候分类为1.以阈值0.5为例进行简单的数学推导。
用两个特征为例,决策边界就是z等于0的时候(阈值为0.5)
非线性的例子,方法相同。
cost function for logistic regression(loss function)
均方误差不适用与logistic regression。
loss funcion:单个样本的损失函数
举一个新的loss function的例子,如下。
可以看到,当真实值为1,预测值也为1时,loss趋近于0
当真实值为1,预测的f取值0.1时,对应的y-hat到了正无穷,loss趋近无穷
当真实值为0,原理相同。
simplified cost function
首先简化loss function
接下来简化cost function
QA:关于为什么选择这个loss funcion:
A:使用最大似然估计从统计中推导而来
运用梯度下降
求导数,建议手推一次
两者看起来一样,但是实际上完全不同
和线性回归的处理方法相似:
包括学习曲线、向量化、feature scaling
4.1-4.5 过拟合和正则化
overfitting
欠拟合:underfitting, high bias(高偏差)
泛化generalization
过拟合: overfitting, high variance(高方差)
回归:regression的例子
分类问题。
解决过拟合的方法
方法一:收集更多的训练数据。
方法二:收集更少的数据特征:不要用太多的多项式特征。
方法三:正则化
一个比方法二更加松的限制方法,可以看李沐的相关介绍。
能保留所有特征,只是防止特征过大。
正则化只对W进行限制,对b限制或者不限制没有没有太大区别。
总结:三个方法。
正则化
定义和性质
举例子,在cost function中加入额外式子——下列红框,作为新的cost function,会使得w3和w4权重减小。
lambda:入,正则化参数
红框可加可不加
lambda的选择,过大或过小结果都不好。
regularized Linear Regression
比之前多了一个导数项。
深入理解含义。
可以看到,每次更新wj乘以一个略微小的数来进行迭代更新,收缩了wj的值
推导过程。
regularized logistic regression
深入理解含义。
第二课 深度学习
四周课程简介
第一周 Neural network基础
1.1-2.3 什么是Neural networks
历史
概念
affordability:可负担性;awareness:知名度;perceived quality:高质量
input layer
hidden layer
output layer
考虑这个例子,在hidden layer(假设只有一层)到output layer之间,就是一层logistic regression。
从这个角度来说,神经网络可以学习自身的特征,并进一步做出更准确的预测。(特征工程),神经网络相当于可以学习,自己做特征过程
多重隐藏层的神经网络,也叫多层感知器(multilayer perception)
人脸识别的例子
输入向量X
关于识别过程的理解。第一个隐藏层可能在识别边缘,如线等;第二个隐藏层可能是识别一个鼻子或者眼睛,第三最后检测面部与不同面部形状的对应程度。
也可以对应不同大小的特征,第一个找小的,第二个找大一点,第三更大。
Neural network layer
可以看到用上标方括号表示所属层,
可以看到第一层输出了 a [ 1 ] a^{[1]} a[1]
我们查看第二层,即输出层,放大如下,最终输出 a [ 2 ] a^{[2]} a[2]
最后得到结果为0.84,根据设置可知结果为1。
complex neural network
神经网络层数:包括输出层和隐藏层,不包括输入层
如下图,层数为4
关于上下标的理解
上标代表层layer
下标代表该层的某个单元j (units)
a[0] = input x
激活函数
forward porpagation(前向传播)
识别0和1。
由于从a1->a2->a3,所以叫前向传播
3.1- neutal networks代码实现(TensorFlow)
举例
以TensorFlow为例。由于主要学pytorch,该部分了解即可。
另外一个例子。
data in TensorFlow and Numpy
吴恩达喜欢在numpy上处理数据,然后转换到TensorFlow上进行计算,最后再转换成numpy的数据形式。
a1.numpy()
bulid a neural network
如何定义层数
如何定义model
定义输入数据x,y
定义训练器和拟合函数(下周讲)
预测新的值(model.predict(x_new))
另外一个例子
另外一种写法
detail of code
关于第一层的a[1]如何获得
第二层的计算