1. 一
1.1. supervised learn
给出正确答案学习
分为:1. regressiong ; 2. classification
1.2. unsupervised learn
发现数据的不同结构,区分成不同数据
2. 二
2.1. 模型
由 x 推向 y 的引导函数
2.2. cost function
均方误差,$\frac{1}{2m}$ 求导时候消去 1/2, 且 cost funtion 不变
求出使 cost funtions 最小的参数 $\theta$
2.3. gradient descend
严格要求计算步骤,优先算完右半部分,在计算左半部分赋值

$\frac{\partial}{\partial_j}J(\theta_0, \theta_1) $ 是梯度下降的方向, $\alpha $ 沿着下降方向下降的幅度
learn rate $\alpha$ 不需要不断缩小, 因为随着靠近局部最小值, 梯度逐渐下降, 逐渐趋近于 0

batch 梯度下降 考虑了整体训练集
3. 三
3.1. matrix
3.1.1. 边界形式
- pmatrix 小括号
- bmatrix 方括号
- Bmatrix 大括号
- vmatrix 行列式
- Vmatrix 双竖线
- matrix 没有边界符号, 使用
\left[\right]增加边界
3.1.2. 元素
- & 分割同行元素
\\分割列元素- 省略号
\dots水平省略号\vdots垂直省略号\ddots对角省略号
3.1.3. slice
eg :
- dim = row columns , 即为 4 3
- $A_{ij}$ 表示 $i_{th}$ row ,$j_{th}$ columns 的元素
3.2. compute
- scalar multiplication / division / addition / subtraction
- addtion / subtraction 需要 matrix dim 相同
3.2.1. matrix * vector
矩阵乘法表示为
- [1, x] 中每组数据与 $\theta$ 相乘,所以 顺序为 $x*\theta$
- 常数项 $\theta$ 表示该特征 始终为 1
3.2.2. matrix * matrix
有多个 hypothesis 函数
参数组成矩阵
使用 matrix 表示
4. 四
4.1. more feature
hypothesis 修改为 $h(x) = \theta_0 + \theta_1 x_1 + \thetax_n$, 其中 define $x_0 = 1$
所以,$h(x) = \theta^t * x$
4.2. gradient descend
$\frac{\partial}{\partial x} h(x) = x $
4.3. feature scaling
数据进行归一化,数据的差距缩小,使用梯度下降速度更快
因此,数据训练前,一定需要对数据进行归一化

归一化方法
鲁棒归一化
4.4. learn rate
确定模型收敛情况:
- 绘制图形观察
- 自收敛测试, 当一次 iteration 收敛到一定值时,自动停止
测试不同的 $\alpha $ , 观测收敛情况
4.5. more feature
- 使用更多的 feature , $ h(x) = \theta_0 + \theta_1 feature_1 + \theta_2 feature_2$
- 使用 polynomial feature 拟合, 使用 feature 的多项式拟合, $ h(x) = \theta_0 + \theta_0 feature_1 + \theta_2 feature_1^2 + \theta_3 * \sqrt{feature_1}$
4.6. normal equation
用于求解Loss 函数的最小值$\theta$ ,
| gradient descend | normal equation |
|---|---|
| 需要 learn rate | |
| 需要many iterations | 直接计算 |
| 使用面广 | 只适用于较小的feature , |
难点在于$X^T X$ , X 是 m n 矩阵, $X^T X$ 矩阵维度为$nn $ ,与特征维度有关, 矩阵求逆的复杂度$O(n^3)$, 仅适用于较小feature
4.6.1. $X^t* X$ non-invertible
- redundant feature ,重复相关的feature ,删除相关的feature
- number <= feature ,特征数量较少, 增加数据/减少特征/正则化
5. 五
5.1. operation
~非 相当于!sprintf("string %0.2f", a)格式化自负床
5.1.1. 生成矩阵
或者’,’ 分割行 [1 2 3]- ‘;’ 分割列 [1; 2; 3]
v = 1 : 6, 生成【1,6】数组- ones(2, 3) , zeros(2, 3), rand(2,3), randn(2,100)
- eye(2)
hist(data, n), 绘制n 各方格立方图
help eye
5.1.2. data
- size(data, dim) ,
- length(vector), length(data), 返回最大matrix
- load ‘xxx.mat’, save ‘xxx.mat’ xxx, 文件名只能使用 ‘’
- who 显示变量, whos 显示变量详细
- A() , 使用() 取出元素, A([1,2], :) 取出1,2 所有元素
- 数组拼接 A = (A, B) , 列拼接, A= (A;B)行拼接
5.1.3. compute
- $$ 矩阵乘法, $.$ 点乘,
- find(A) 矩阵中为1 的元素,
- max(A, [], dim), 默认列方向, sum(A,dim), prod(A)
- float() 抹去小数点, ceil(A) 进位
5.1.4.
plot(x, y, ‘color’) , xlabel, ylabel, title(), figure(1), hold on , subplot(1, 2, 1), axis([x1, x2, y1, y2]), imageesc(), colorbar, colormap gray
5.1.5. control
for i = i :10
pass
end
if 表达式
elseif 表达式
else
while 表达式
end
function [y1, y2] = name(x)
y = x;
y = x;
end
addpath
6. classification
$y 取值于 {0, 1, 2}$固定值
预测值$\in [0, 1]$, 使用threshold 区分区间确定类型
regression问题
预测曲线受极值影响

$y \notin [0, 1]$,
因此使用, Logistic Regression
6.1. logistic / sigmoid function
函数图像,g(x) $\in$ [0,1]

h(x) 定义,在输入x 情况,预测为 y = 1的概率,$p(y = 1| x, \theta)$
y = 0 的概率为 1- h(x)
6.2. decision boundary
决策边界 由 $\theta$ 参数决定, 计算出$\theta$ 获得决策边界

6.3. cost function
cost function 尽可能为 convex function ,便于之后梯度优化

regression 中 $cost(h(x), y) = (h(x)- y)^2$
classification 中, 使用 MSE ,不是一个convex function ,不利于之后优化

6.4. gradient descend
cost function 等价为
求导后的结果,求导过程省略,太麻烦了, 求导结果 和 regression cost function 求导结果一致
梯度下降公式
6.5. advanced optimization
- gradient descent
- conjugate descent
- BFGS
- L-BFGS
优点:
- 自动选择$\alpha $
- 优化速度更快
缺点: 内部复杂
6.5.1. 编写cost function
function [jVal, gradient] = costFunction(theta)
% 需要返回函数值,和梯度下降值
jVal = (theta(1) - 5)^2;
gradient = zeros(2,1);
gradient(1) = 2*(theta(1) - 5);
end
% 编写优化函数
options = optimset('GradObj', 'on', 'MaxIter', 100); % 优化选择参数
initialTheta = zeros(2,1); % 初始值
[optTheta, functionVal , exitFlag] = fminunc(@costFunction, initiatTheta, options);
6.6. more class
one vs all
分类三种类别 1, 2, 3 拆分为三个分类
- 1 - rest
- 2 - rest
- 3 - rest

then , max $h_3(x)$ 作为最终结果
7. 七
7.1. overfit

使用test 验证是否出现了过拟合
一个原因: 数据量 < 特征数量
- 人为减少特征数量
- 使用正则化,保留特征,减少$ \theta values$
7.2. regulation
参数$\theta$ 使用更小的值,
- 模型更简单
- 减少过拟合
在损失函数中 增加对 $\theta$ 的约束
$ L(\theta) = \frac{1}{2m} [\sum_{i=1}^{m}(h_{\theta}(x^{(i)}- y^{(i)})^2 + \lambda * \sum_{j = 1}^{n} \theta_j^2)]$
7.2.1. 使用normal function
公式如下:$ y = x * \theta^t$
求解公式 :
7.3. 八
7.3.1. 神经网路
线性回归缺点: 当 特征维度较高时, 特征数量较多
线性回归只适合较为简单的函数,维度较高的函数,二次项组合数量较多

neural networks:接收一定信息,通过一定算法训练,能够处理接受的信息
7.3.2. neuron model
7.3.2.1. 神经元

- input: 输入数据
- 神经元处理: h(x), 使用激活函数 (sigmoid/ logistic)
- output: 输出结果
7.3.2.2. 神经网络

- 输入层: 输入数据
- 中间层: 中间处理过程
- 输出层:输出结果
每一层之间使用转移矩阵进行连接,例如输入层X, 中间层A
7.3.2.3. 中间层组合
一层神经元可以表示一个神奇的表达式

多个简单层组合,表示更为复杂的层

8. 九
8.1. 代价函数
神经网络有K个输出, 所有 需要 $Y_k$ 进行标识

所以,交叉熵增加输出维度 K
所有权重正则化公式:
表示 对 第l 层, 第L层中$\theta$ 维度为(sl, sl+1)