supervised learn


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

严格要求计算步骤,优先算完右半部分,在计算左半部分赋值

image-20251015202451659

$\frac{\partial}{\partial_j}J(\theta_0, \theta_1) $ 是梯度下降的方向, $\alpha $ 沿着下降方向下降的幅度

learn rate $\alpha$ 不需要不断缩小, 因为随着靠近局部最小值, 梯度逐渐下降, 逐渐趋近于 0

image-20251015204044375

batch 梯度下降 考虑了整体训练集

3. 三

3.1. matrix

3.1.1. 边界形式

  1. pmatrix 小括号
  2. bmatrix 方括号
  3. Bmatrix 大括号
  4. vmatrix 行列式
  5. Vmatrix 双竖线
  6. matrix 没有边界符号, 使用 \left[ \right] 增加边界

3.1.2. 元素

  1. & 分割同行元素
  2. \\ 分割列元素
  3. 省略号
    1. \dots 水平省略号
    2. \vdots 垂直省略号
    3. \ddots 对角省略号

3.1.3. slice

eg :

  1. dim = row columns , 即为 4 3
  2. $A_{ij}$ 表示 $i_{th}$ row ,$j_{th}$ columns 的元素

3.2. compute

  1. scalar multiplication / division / addition / subtraction
  2. addtion / subtraction 需要 matrix dim 相同

3.2.1. matrix * vector

矩阵乘法表示为

  1. [1, x] 中每组数据与 $\theta$ 相乘,所以 顺序为 $x*\theta$
  2. 常数项 $\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

数据进行归一化,数据的差距缩小,使用梯度下降速度更快

因此,数据训练前,一定需要对数据进行归一化

image-20251016212727906

归一化方法

鲁棒归一化

4.4. learn rate

确定模型收敛情况:

  1. 绘制图形观察
  2. 自收敛测试, 当一次 iteration 收敛到一定值时,自动停止

测试不同的 $\alpha $ , 观测收敛情况

4.5. more feature

  1. 使用更多的 feature , $ h(x) = \theta_0 + \theta_1 feature_1 + \theta_2 feature_2$
  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

  1. redundant feature ,重复相关的feature ,删除相关的feature
  2. number <= feature ,特征数量较少, 增加数据/减少特征/正则化

5. 五

5.1. operation

  1. ~ 非 相当于 !
  2. sprintf("string %0.2f", a) 格式化自负床

5.1.1. 生成矩阵

  1. 或者’,’ 分割行 [1 2 3]
  2. ‘;’ 分割列 [1; 2; 3]
  3. v = 1 : 6, 生成【1,6】数组
  4. ones(2, 3) , zeros(2, 3), rand(2,3), randn(2,100)
  5. eye(2)

hist(data, n), 绘制n 各方格立方图

help eye

5.1.2. data

  1. size(data, dim) ,
  2. length(vector), length(data), 返回最大matrix
  3. load ‘xxx.mat’, save ‘xxx.mat’ xxx, 文件名只能使用 ‘’
  4. who 显示变量, whos 显示变量详细
  5. A() , 使用() 取出元素, A([1,2], :) 取出1,2 所有元素
  6. 数组拼接 A = (A, B) , 列拼接, A= (A;B)行拼接

5.1.3. compute

  1. $$ 矩阵乘法, $.$ 点乘,
  2. find(A) 矩阵中为1 的元素,
  3. max(A, [], dim), 默认列方向, sum(A,dim), prod(A)
  4. 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问题

  1. 预测曲线受极值影响

    image-20251019204259717

  2. $y \notin [0, 1]$,

因此使用, Logistic Regression

6.1. logistic / sigmoid function

函数图像,g(x) $\in$ [0,1]

image-20251019205241683

h(x) 定义,在输入x 情况,预测为 y = 1的概率,$p(y = 1| x, \theta)$

y = 0 的概率为 1- h(x)

6.2. decision boundary

决策边界 由 $\theta$ 参数决定, 计算出$\theta$ 获得决策边界

image-20251019210727035

6.3. cost function

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

image-20251019212137633

regression 中 $cost(h(x), y) = (h(x)- y)^2$

classification 中, 使用 MSE ,不是一个convex function ,不利于之后优化

image-20251019212533349

6.4. gradient descend

cost function 等价为

求导后的结果,求导过程省略,太麻烦了, 求导结果 和 regression cost function 求导结果一致

梯度下降公式

6.5. advanced optimization

  1. gradient descent
  2. conjugate descent
  3. BFGS
  4. L-BFGS

优点:

  1. 自动选择$\alpha $
  2. 优化速度更快

缺点: 内部复杂

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. 1 - rest
  2. 2 - rest
  3. 3 - rest

image-20251019221901670

then , max $h_3(x)$ 作为最终结果

7. 七

7.1. overfit

image-20251019223154219

使用test 验证是否出现了过拟合

一个原因: 数据量 < 特征数量

  1. 人为减少特征数量
  2. 使用正则化,保留特征,减少$ \theta values$

7.2. regulation

参数$\theta$ 使用更小的值,

  1. 模型更简单
  2. 减少过拟合

在损失函数中 增加对 $\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. 神经网路

线性回归缺点: 当 特征维度较高时, 特征数量较多

线性回归只适合较为简单的函数,维度较高的函数,二次项组合数量较多

image-20251104211423785

neural networks:接收一定信息,通过一定算法训练,能够处理接受的信息

7.3.2. neuron model

7.3.2.1. 神经元

image-20251104213924342

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

7.3.2.2. 神经网络

image-20251104214724745

  1. 输入层: 输入数据
  2. 中间层: 中间处理过程
  3. 输出层:输出结果

每一层之间使用转移矩阵进行连接,例如输入层X, 中间层A

7.3.2.3. 中间层组合

一层神经元可以表示一个神奇的表达式

image-20251104220903475

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

image-20251104223025190

8. 九

8.1. 代价函数

神经网络有K个输出, 所有 需要 $Y_k$ 进行标识

image-20251105211214283

所以,交叉熵增加输出维度 K

所有权重正则化公式:

表示 对 第l 层, 第L层中$\theta$ 维度为(sl, sl+1)


文章作者: 小白菜
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小白菜 !
评论
  目录