## scruel / ML-AndrewNg-Notes .gitee-modal { width: 500px !important; }

Explore and code with more than 6 million developers，Free private repositories ！：）
This repository doesn't specify license. Without author's permission, this code is only for learning and cannot be used for other purposes.
week2.md 11.23 KB
scruel authored 2019-05-25 13:51 . images path in htmls

[TOC]

# 4 多变量线性回归(Linear Regression with Multiple Variables)

## 4.1 多特征(Multiple Features)

$n$: 特征的总数

${x}^{\left( i \right)}$: 代表样本矩阵中第 $i$ 行，也就是第 $i$ 个训练实例。

${x}_{j}^{\left( i \right)}$: 代表样本矩阵中第 $i$ 行的第 $j$ 列，也就是第 $i$ 个训练实例的第 $j$ 个特征。

$h_\theta\left(x\right)=\begin{bmatrix}\theta_0; \theta_1; ... ;\theta_n \end{bmatrix}\begin{bmatrix}x_0 \newline x_1 \newline \vdots \newline x_n\end{bmatrix}= \theta^T x$

$\theta^T$: $\theta$ 矩阵的转置

$x$: 某个样本的特征向量，$n+1$ 维特征量向量

$x_0$: 为了计算方便我们会假设 $x_0^{(i)} = 1$

## 4.2 多变量梯度下降(Gradient Descent for Multiple Variables)

\begin{align*} & \text{repeat until convergence:} ; \lbrace \newline ; &{{\theta }{j}}:={{\theta }{j}}-\alpha \frac{\partial }{\partial {{\theta }{j}}}J\left( {\theta{0}},{\theta_{1}}...{\theta_{n}} \right) \newline \rbrace \end{align*}

\begin{align*}& \text{repeat until convergence:} ; \lbrace \newline ; & \theta_j := \theta_j - \alpha \frac{1}{m} \sum\limits_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x_j^{(i)} ; & \text{for j := 0,1...n}\newline \rbrace\end{align*}

\begin{aligned} & \text{repeat until convergence:} ; \lbrace \newline ; & \theta_0 := \theta_0 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x_0^{(i)}\newline ; & \theta_1 := \theta_1 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x_1^{(i)} \newline ; & \theta_2 := \theta_2 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x_2^{(i)} \newline & \vdots \newline ; & \theta_n := \theta_n - \alpha \frac{1}{m} \sum\limits_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x_n^{(i)} &\newline \rbrace \end{aligned}

$h_\theta\left(x\right)= \theta^T x$，则得到同时更新参数的向量化(Vectorization)实现： $$\theta = \theta - \alpha \frac{1}{m}(X^T(X\theta-y))$$

$X$: 训练集数据，$m\times(n+1)$ 维矩阵（包含基本特征 $x_0=1$）

## 4.3 梯度下降实践1-特征值缩放(Gradient Descent in Practice I - Feature Scaling)

$x_i:=\frac{x_i-average(x)}{maximum(x)-minimum(x)}, 使得$ $x_i \in (-1,1)$

## 4.4 梯度下降实践2-学习速率(Gradient Descent in Practice II - Learning Rate)

• 多次迭代收敛法
• 无法确定需要多少次迭代
• 较易绘制关于迭代次数的图像
• 根据图像易预测所需的迭代次数
• 自动化测试收敛法（比较阈值）
• 不易选取阈值
• 代价函数近乎直线时无法确定收敛情况

## 4.6 正规方程(Normal Equation)

${X}^{-1}$: 矩阵 $X$ 的逆，在 Octave 中，inv 函数用于计算矩阵的逆，类似的还有 pinv 函数。

X': 在 Octave 中表示矩阵 X 的转置，即 $X^T$

[^1]: 一般来说，当 $n$ 超过 10000 时，对于正规方程而言，特征量较大。 [^2]: 梯度下降算法的普适性好，而对于特定的线性回归模型，正规方程是很好的替代品。

\begin{aligned} & J\left( \theta \right)=\frac{1}{2m}\sum\limits_{i=1}^{m}{{{\left( {h_{\theta}}\left( {x^{(i)}} \right)-{y^{(i)}} \right)}^{2}}}\newline ; & =\frac{1}{2m}||X\theta-y||^2 \newline ; & =\frac{1}{2m}(X\theta-y)^T(X\theta-y) &\newline \end{aligned}

$J(\theta )= \frac{1}{2m}\left( {{\theta }^{T}}{{X}^{T}}X\theta -{{\theta}^{T}}{{X}^{T}}y-{{y}^{T}}X\theta + {{y}^{T}}y \right)$

$J(\theta) = \frac{1}{2m}[X^TX\theta-2\theta^TX^Ty+y^Ty]$

$\frac{dX^TAX}{dX}=(A+A^\mathrm{T})X$

$\frac{dX^TA}{dX}={A}$

$\frac{\partial J\left( \theta \right)}{\partial \theta }=\frac{1}{2m}\left(2{{X}^{T}}X\theta -2{{X}^{T}}y \right)={{X}^{T}}X\theta -{{X}^{T}}y$

## 4.7 不可逆性正规方程(Normal Equation Noninvertibility)

（本部分内容为选讲）

• 特征之间线性相关

比如同时包含英寸的尺寸和米为单位的尺寸两个特征，它们是线性相关的

即 ${x_{1}}={x_{2}}*{{\left( 3.28 \right)}^{2}}$。

• 特征数量大于训练集的数量$\left(m \leqslant n \right)$。

• 减少多余/重复特征
• 增加训练集数量
• 使用正则化（后文）

# 5 Octave/Matlab Tutorial

## 5.6 向量化(Vectorization)

$\sum\limits_{j=0}^n\theta_jx_j=\theta^Tx$