【机器学习基础】正规方程法(Normal equation)(正则化和非正则化)——吴恩达课程笔记

        在求使得代价函数最小的参数θ中,也可以不用梯度下降法进行逐步递归求解,可以使用正规方程法(Normal Equation)一次性算出θ。用这种方法不需要进行特征缩放(feature scaling)。在特征数少的情况(吴恩达教授的标准是一万以下)用正规方程法更好,但如果特征数较多,计算量很大,会比较慢,这个时候还是采用梯度下降法比较好。

特征方程法介绍:

(1)现做如下规定:

        假设有m个样本实例,每个样本有n个特征,则训练样本可记为:

        X=\left[\begin{array}{ccc} x_{0}^{(1)} & \cdots & x_{n}^{(1)} \\ \vdots & \ddots & \vdots \\ x_{0}^{(m)} & \cdots & x_{n}^{(m)} \end{array}\right]

        其中x_{i}^{(j)}表示第i个样本的第j个特征。

        输出可记为:

        Y=\left[y^{(1)}, y^{(2)}, \cdots, y^{(m)}\right]^{T}

        参数可记为:

        \theta=\left[\theta_{0}, \theta_{1}, \cdots, \theta_{n}\right]^{T}

        拟合的函数h(x)为:

        h(x)=\theta_{0} x_{0}+\theta_{1} x_{1}+\ldots+\theta_{n} x_{n}

        加了正则化的代价函数为:

        J(\theta)=\frac{1}{2 m}\left[\sum_{i=1}^{m}\left[h\left(x^{(i)}\right)-y^{(i)}\right]^{2}+\lambda \sum_{i=1}^{n} \theta_{j}^{2}\right]

        分式第一项为最初代价函数,第二项为正则化,令优化后的参数的值较小,以防止过拟合

        代价函数的矩阵表示如下:

        \begin{aligned} J(\theta) &=\frac{1}{2 m}\left[(X \theta-Y)^{\top}(X \theta-Y)+\lambda \theta^{\top} \theta\right] \\ &=\left[\theta^{\top} X^{\top} X \theta-Y^{\top} X \theta-\theta^{\top} X^{\top} Y+Y^{\top} Y+\lambda \theta^{\top} \theta\right] \end{aligned}

        求导可得:

        \frac{\partial J(\theta)}{\partial \theta}=\frac{1}{2 m}\left[\frac{\partial \theta^{\top} X^{\top} X \theta}{\partial \theta}-\frac{\partial Y^{\top} X \theta}{\partial \theta}-\frac{\partial \theta^{\top} X^{\top} Y}{\partial \theta}+\frac{\partial Y^{\top} Y}{\partial \theta}+\lambda \frac{\partial \theta^{\top} \theta}{\partial \theta}\right]

(2)第一项的求导:

        有定理如下:若u=u(x),v=v(x),A不是x的函数,则有:

        \frac{\partial \mathbf{u}}{\partial \mathbf{x}} \mathbf{A} \mathbf{v}+\frac{\partial \mathbf{v}}{\partial \mathbf{x}} \mathbf{A}^{\top} \mathbf{u}

        因此,第一项的求导为:

        \frac{\partial \theta^{\top} X^{\top} X \theta}{\partial \theta}=\left[\begin{array}{c} \frac{\partial \theta^{\top} X^{\top} X \theta}{\partial \theta_{0}} \\ \vdots \\ \frac{\partial \theta^{\top} X^{\top} X \theta}{\partial \theta_{n}} \end{array}\right]=2\left(X^{\top} X\right)\left[\begin{array}{c} \theta_{0} \\ \vdots \\ \theta_{n} \end{array}\right]=2 X^{\top} X \theta

(3)第二项的求导:

       第二项展开:

        \begin{aligned} Y^{\top} X \theta &=\left[y^{(1)}, y^{(2)}, \cdots, y^{(m)}\right]\left[\begin{array}{ccc} x_{0}^{(1)} & \cdots & x_{n}^{(1)} \\ \vdots & \ddots & \vdots \\ x_{0}^{(m)} & \cdots & x_{n}^{(m)} \end{array}\right]\left[\theta_{0}, \theta_{1}, \cdots, \theta_{n}\right]^{\top} \\ &=\left(x_{0}^{(1)} y^{(1)}+\cdots+x_{0}^{(m)} y^{(m)}\right) \theta_{0}+\left(x_{1}^{(1)} y^{(1)}+\cdots+x_{1}{ }^{(m)} y^{(m)}\right) \theta_{1}+\cdots \\ &+\left(x_{n}^{(1)} y^{(1)}+\cdots+x_{n}{ }^{(m)} y^{(m)}\right) \theta_{n} \end{aligned}

        求导得:

        \frac{\partial Y^{\top} X \theta}{\partial \theta}=\left[\begin{array}{c} \frac{\partial Y^{\top} X \theta}{\partial \theta_{0}} \\ \vdots \\ \frac{\partial Y^{\top} X \theta}{\partial \theta_{n}} \end{array}\right]=\left[\begin{array}{c} x_{0}^{(1)} y^{(1)}+\cdots+x_{0}^{(\mathrm{m})} y^{(m)} \\ \vdots \\ x_{n}^{(1)} y^{(1)}+\cdots+x_{n}^{(\mathrm{m})} y^{(m)} \end{array}\right]=X^{\top} Y

(4)第三项的求导:

        第三项展开:

        \begin{aligned} \theta^{\top} X Y &=\left[\theta_{0}, \theta_{1}, \cdots, \theta_{n}\right]\left[\begin{array}{ccc} x_{0}^{(1)} & \cdots & x_{n}^{(1)} \\ \vdots & \ddots & \vdots \\ x_{0}^{(m)} & \cdots & x_{n}^{(m)} \end{array}\right]\left[y^{(1)}, y^{(2)}, \cdots, y^{(m)}\right]^{\top} \\ &=\left(x_{0}^{(1)} \theta_{0}+\cdots+x_{0}^{(m)} \theta_{n}\right) y^{(1)}+\left(x_{1}^{(1)} \theta_{0}+\cdots+x_{1}^{(m)} \theta_{n}\right) y^{(2)}+\cdots \\ &+\left(x_{n}^{(1)} \theta_{0}+\cdots+x_{n}^{(m)} \theta_{n}\right) y^{(m)} \end{aligned}

        求导得:

        \frac{\partial \theta^{\top} X^{\top} Y}{\partial \theta}=\left[\begin{array}{c} \frac{\partial \theta^{\top} X^{\top} Y}{\partial \theta_{0}} \\ \vdots \\ \frac{\partial \theta^{\top} X^{\top} Y}{\partial \theta_{n}} \end{array}\right]=\left[\begin{array}{c} x_{0}^{(1)} y^{(1)}+\cdots+x_{0}^{(\mathrm{m})} y^{(m)} \\ \vdots \\ x_{n}^{(1)} y^{(1)}+\cdots+x_{n}^{(\mathrm{m})} y^{(m)} \end{array}\right]=X^{\top} Y

(5)第四项的求导:

        \frac{\partial Y^{\top} Y}{\partial \theta}=0

(6)第五项的求导:

        第五项展开:

        \lambda \theta^{\top} \theta=\lambda\left(\theta_{1}^{2}+\theta_{2}^{2}+\ldots+\theta_{n}^{2}\right)

        这里的θ是从1开始的,但实际上从0开始也是可以的,这里为了与吴恩达教授课程保持一致在正则化的时候从1开始,即忽略偏置的正则化

        因此第五项求导为:

        \lambda \frac{\partial \theta^{\top} \theta}{\partial \theta}=\lambda\left[\begin{array}{c} \frac{\partial \theta_{1}^{2}+\theta_{2}^{2}+\ldots+\theta_{n}^{2}}{\partial \theta_{0}} \\ \frac{\partial \theta_{1}^{2}+\theta_{2}^{2}+\ldots+\theta_{n}^{2}}{\partial \theta_{1}} \\ \vdots \\ \frac{\partial \theta_{1}^{2}+\theta_{2}^{2}+\ldots+\theta_{n}^{2}}{\partial \theta_{n}} \end{array}\right]=2 \lambda\left[\begin{array}{c} 0 \\ \theta_{1} \\ \vdots \\ \theta_{n} \end{array}\right]=2 \lambda\left[\begin{array}{cccc} 0 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \end{array}\right] \theta

(7)因此,将上面的求导整理可得:

        \frac{1}{2 m}\left(2 X^{\top} X \theta-2 X^{\top} Y+2 \lambda A \theta\right)=0

        从而得到:

        \theta=X^{\top} Y\left(X^{\top} X+ \lambda A\right)^{-1}

        其中:

        A=\left[\begin{array}{cccc} 0 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \end{array}\right]

        对于非正则化的正规方程则:

        \theta=X^{\top} Y\left(X^{\top} X\right)^{-1}

        另外,如果有\lambda>0X^{\top}X+\lambda A 一定不是奇异矩阵,可逆。因此,正则化还可以解决不可逆的问题

        如果是非正则化,则可能是有两列是线性相关的,删除一个特征;亦或者可能是特征值过多,则删除一些特征值。

               

 

你可能感兴趣的:(机器学习基础,机器学习,人工智能)