文章目录
1 线性回归
2.8 作业_01_线性回归
6 逻辑回归
6.1 分类问题
通过上面这个取值在[0,1]的函数,曲线类似arctan x进行拟合,通过数据计算出thyta向量值,然后让Z>0,解出x的范围如下图
6.3 决策边界
(thyda向量-3,1,1.)
6.4 代价函数
逻辑回归的代价函数不能使用之前的线性回归那样的平方做差之后当代价函数了,因为逻辑回归的待拟合的函数复杂,使用平方误差的方式写出来的代价函数是非凸的,有很多的局部最优解,不能使用梯度下降法解除全局最优解,如下图
使用新的代价函数,如下图:
下边这个
6.5 简化代价函数与梯度下降
使用一个式子代表逻辑回归的代价函数
然后执行梯度下降,每一个theta的更新都是当前值减去学习率 * 偏导项,虽然更新的式子是一样的,但是表达的是不一样的,因为原来的线性回归和逻辑回归的假设函数是不一样的,如下图所示:
6.6 高级优化
- gradient descent
- conjugate gradient
- BFGS
- L-BFGS
相应语言有相应的高级算法的库,自己需要写一个适配的函数,来调用这个库里的函数。
6.7 多分类
多分几次
6.8 作业
7 过拟合
7.1 过拟合
- 减少特征变量
- 正则化
7.2 代价函数
为了防止过拟合项,会通过增加惩罚项来减少各个特征的属性,修改之后的代价函数如下:
7.3 线性回归正则化
1、使用梯度下降求解
2、当使用矩阵求解时,通过正则化,可以使得中间产生的那个矩阵一定是可逆的。
7.4 逻辑回归的正则化
总结:
学了线性回归
学了逻辑回归
学了高级算法
学了正则化
8 非线性假设
使用神经网络搞出来逻辑运算
-
and
-
or
-
非
-
(not x1) and (not x2)
如下图 -
XNOR
计算XNOR逻辑运算
XOR是异或,XNOR取值与异或相反,
通过神经网络实现如下图
9神经网络
9.1 神经网络的代价函数
使用逻辑回归的那个代价函数,使用正则化项,因为有多个输出,所以有两层求和大括号
9.2 反向传播算法
定义:detal = y(i) - (i):真实值-预测的激活项
之后再执行反向传播算法:比如;detal2 = theta1 * detal1 + theta22 * detal22
和前向传播一样
后向传播的目的是为了测评修改权重。
9.4 参数展开
就是使用梯度下降算法得到代价函数之后的返回值(向量形式),当再去调用高级函数如:fminunc高级学习算法时,传入参数是矩阵,所以,需要使用相关的转换函数进行格式化转换。
8.5 梯度检测
使用另外一种慢的算法计算出来,比较两个结果的一致性,当比对正确之后,就把梯度检验关掉。(梯度算法执行检验操作。)
8.7 组合到一起
有了偏导就有了梯度,在神经网络中,代价函数通过梯度下降算法进行下降,通过反向传播算法来修正梯度下降的方向。
11.2 误差分析
当遇到一个问题时,先简单实现一个算法,再通过数值分析,来确定不同的方式进行下一步操作的选择。有明确的测试规则之后就方便处理了。