supervised learn


1. 一

1.1. supervised learn

给出正确答案学习

分为:1. regressiong ; 2. classification

1.2. unsupervised learn

发现数据的不同结构,区分成不同数据

2. 二

2.1. 模型

由 x 推向 y 的引导函数 hθ(x) = θ0 + θ1x

2.2. cost function

均方误差,$\frac{1}{2m}$ 求导时候消去 1/2, 且 cost funtion 不变 $$ \underset{\theta_0, \theta_1}{minimize} \frac{1}{2m} \sum_{i = 1}^{m}(h(x^i) - y^i)^2 $$ 求出使 cost funtions 最小的参数 θ

2.3. gradient descend

$$ \theta_j = \theta_j - \alpha \frac{\partial}{\partial_j}J(\theta_0, \theta_1) \space \space for j = 0 and j = 1 $$

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

image-20251015202451659

$J(_0, _1) $ 是梯度下降的方向, $$ 沿着下降方向下降的幅度

learn rate α 不需要不断缩小, 因为随着靠近局部最小值, 梯度逐渐下降, 逐渐趋近于 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 对角省略号

$$ \begin{pmatrix} a & b & \dots& c \\ \vdots & \vdots & \ddots & \vdots\\ a & b & \dots&c \end{pmatrix} $$

3.1.3. slice

eg : $$ \begin{bmatrix} 1 & 2 & 3 \\ 11 & 12 & 13 \\ 11 & 12 & 13 \\ 4 & 5 & 6 \end{bmatrix} $$

  1. dim = row * columns , 即为 4* 3
  2. Aij 表示 ith row ,jth columns 的元素

3.2. compute

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

3.2.1. matrix * vector

h(x) = θ0 + θ1 * x

矩阵乘法表示为 $$ \begin{matrix} [1, x]* [\theta_0, \theta_1]^t \end{matrix} $$

  1. [1, x] 中每组数据与 θ 相乘,所以 顺序为 x * θ
  2. 常数项 θ 表示该特征 始终为 1

3.2.2. matrix * matrix

有多个 hypothesis 函数 $$ h_1(x) = \theta_{0,1} + \theta_{1,1} * x \\ h_2(x) = \theta_{0,2} + \theta_{1,2} * x \\ h_3(x) = \theta_{0,3} + \theta_{1,3} * x $$ 参数组成矩阵 $$ \begin{bmatrix} \theta_{0,1} & \theta_{0,2} & \theta_{0,3} \\ \theta_{1,1} & \theta_{1,2} & \theta_{1,3} \\ \end{bmatrix} $$ 使用 matrix 表示 [1, x] * [theta0, theta1, theta2]T

4. 四

4.1. more feature

x = [x0, xi, …, xn]

hypothesis 修改为 h(x) = θ0 + θ1 * x1 + θ * xn, 其中 define x0 = 1

所以,h(x) = θt * x

4.2. gradient descend

$ h(x) = x $ $$ L(x) = \underset{\theta}{minimize} = \frac{1}{2m} (\sum{h(x) - y})^2 $$

$$ \frac{\partial}{\partial \theta} L(x) = m(\sum(h(x) -y ))* X $$

θ = θ − m(∑(h(x) − y)) * X

4.3. feature scaling

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

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

image-20251016212727906

归一化方法 $$ minmax = \frac{x - min}{min-max} 缩放到(0,1)\\ stand = \frac{x - u}{\sigma},符合正太化分布 \\ $$ 鲁棒归一化 $$ robust = \frac{x- median(x)}{IQR(x)}\\ median(x) 是 x 的中位数 \\ IQR(x) = Q_3 - Q_1 $$

4.4. learn rate

确定模型收敛情况:

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

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

4.5. more feature

  1. 使用更多的 feature , $ h(x) = _0 + _1 * feature_1 + _2* feature_2$
  2. 使用 polynomial feature 拟合, 使用 feature 的多项式拟合, $ h(x) = _0 + _0 * feature_1 + _2 * feature_1^2 + _3 * $

4.6. normal equation

用于求解Loss 函数的最小值θ ,

gradient descend normal equation
需要 learn rate
需要many iterations 直接计算
使用面广 只适用于较小的feature ,

θ = (XT * X) − 1XT * y

难点在于XT * X , X 是 m * n 矩阵, XT * X 矩阵维度为$n*n $ ,与特征维度有关, 矩阵求逆的复杂度O(n3), 仅适用于较小feature

4.6.1. Xt * 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

y0,1,2固定值

预测值 ∈ [0, 1], 使用threshold 区分区间确定类型

regression问题

  1. 预测曲线受极值影响

    image-20251019204259717
  2. y ∉ [0, 1]

因此使用, Logistic Regression

6.1. logistic / sigmoid function

$$ g(x) = \frac{1}{1+e^{-x}} $$

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

image-20251019205241683

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

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

6.2. decision boundary

决策边界 由 θ 参数决定, 计算出θ 获得决策边界

image-20251019210727035

6.3. cost function

$$ L(x) = \frac{1}{2m} \sum_{i=1}^{m}cost(h_\theta(x), y) $$

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

image-20251019212137633

regression 中 cost(h(x), y) = (h(x) − y)2

classification 中, 使用 MSE ,不是一个convex function ,不利于之后优化 $$ cos(h_\theta(x), y) = \begin{cases} -log(h_\theta(x)) & \text{if } y = 1 \\ -log(1 - h_\theta(x)) & \text{if } y = 0 \end{cases} $$ image-20251019212533349

6.4. gradient descend

cost function 等价为 $$ cost(h(x), y) = -y* log(h(x)) -(1-y) log(1-h(x))\\ L(\theta) = -\frac{1}{2m}[\sum_{i=1}^{m}y* log(h(x)) +(1-y) log(1-h(x)) ] $$ 求导后的结果,求导过程省略,太麻烦了, 求导结果 和 regression cost function 求导结果一致 $$ \frac{\partial}{\partial_\theta} L(\theta) = \sum_{i=1}^{m} (h_\theta(x) - y) x $$ 梯度下降公式 $$ \theta = \theta - \alpha * \sum_{i=1}^{m} (h_\theta(x) - y) x $$

6.5. advanced optimization

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

优点:

  1. 自动选择$$
  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 h3(x) 作为最终结果

7. 七

7.1. overfit

image-20251019223154219

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

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

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

7.2. regulation

参数θ 使用更小的值,

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

在损失函数中 增加对 θ 的约束

$ L() = [{i=1}{m}(h_{}(x{(i)}- y{(i)})2 + {j = 1}^{n} _j^2)]$

7.2.1. 使用normal function

公式如下:$ y = x * ^t$

求解公式 : $$ \theta = (X^T*X + \lambda * \begin{pmatrix} 0 & 0 & \dots& 0 \\ 0 & 1 & \dots& 0 \\ \vdots &\vdots & 1 & \vdots \\ 0 & 0 & 0 & 1 \end{pmatrix} )^{-1} * X^Ty $$

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 $$ A = \theta^1* X \\ \theta^1 \in R^{3,4} $$

7.3.2.3. 中间层组合

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

image-20251104220903475

多个简单层组合,表示更为复杂的层 λ * A = λ * α

image-20251104223025190

8. 九

8.1. 代价函数

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

image-20251105211214283

所以,交叉熵增加输出维度 K $$ J(\theta) = -\frac{1}{m}[\sum_{i=1}^m\sum_{k=1}^k y_k^{(i)}* log(h_\theta(x^{(i)})_k) + (1- y_{k}^{(i)} )log(1-(h_\theta(x^{(i)})_k))] + 多所有权重进行正则化 $$ 所有权重正则化公式: $$ \frac{\lambda}{2m}\sum_{l=1}^{l-1} \sum_{i = 1}^{s_l}\sum_{j=1}^{s(l+1)}(\theta_{i,j}^{(l)})^2 $$ 表示 对 第l 层, 第L层中θ 维度为(sl, sl+1)


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