Andrew Ng 机器学习笔记 ---by OrangeStar

Week_2

1.Multiple Features 更有效的线性回归形式

此时,h函数已经不是二阶了。

\[ X = \begin{matrix} x_0\\ x_1\\ \dots\\ x_n\\ \end{matrix} $$ $$\theta_{n+1}= \begin{matrix} \theta_0 \\ \theta_1\\ \dots\\\theta_n \end{matrix}$$ 故  $h_\theta(x) = \theta^T X$

### 2. 梯度下降对多元变量 Gradient Descent for Multiple Variables

? 如何找到参数? 来解决多元的线性回归?
上一周的二阶算法改进为N阶即可

Repeat until convergence

{

$\theta_j := \theta_j - \alpha \frac1m\sum^m_{i=1} (h_\theta(x^{(i)} - y^{(i)})) * x_j^{(i)}$

$for j := 0 \dots n$

}

### 3. 梯度下降 --特征缩放Feature Scaling

可以避免找代价函数的最小值的时候,路径搞的特别特别长。所以可以对特征进行缩放。例如除 一个合适的常数。使所有特征量在一个区域梯度下降

这样就有可能找到一条通往全局最优的捷径,in other words,可以让特征量收敛得更快
至于区域,可以以正负3为参考

**特征缩放方法:**

1. 均值归一化 mean normalization

replace $x_i$ with $x_i - \mu_i$  $\mu$ 可以用mean来代替(平均值)

$ x_i := \frac {x_i - \mu_i} {s_i}$

s_i is the range of the values

$\mu_i$ is the mean of the values

2. 简单用除法缩放

**总结** 特征缩放就是让收敛的更快,减少循环次数

### 4.Learning Rate 学习率

这是梯度下降法的更新规则,如何选择学习率很重要

选择不同的学习率会得到不同的min J下降曲线,自变量为迭代次数

* 学习率太小,可能会让迭代次数太多slow convergence
* 学习率太大,可能不会收敛 may not decrease on , may not converge

**曲线对判断学习率的好坏很重要!!!!**

### 5. 选择变量的方法和多项式线性回归

* 选择变量可以从不同角度看,比如房子的变量,可以选择两个变量,长和宽,或者我们可以组合起来,用x= 长乘宽  这样的变量来描述
* 或者可以用二次函数或者其他特征函数来拟合
* 当选择不同的特征变量的时候,线性拟合需要将他们一体化来看待。变量代换

### 6. Normal Equation&Expression 正规方程

给出更好的方法求出$\theta$ 的最优解。区别于梯度下降
一步就可以解出$\theta$

其实就是多元函数的极值。依次求偏导并set to zero
也可以尝试language函数。拉格朗日

但是这样解方程十分复杂,所以,用线性代数的知识

**用X**来表示特征变量和训练样本所组成的矩阵,$x_0$可以用全部1来代替
用Y向量来表示每个样本所对应的结果Y
然后,根据线性代数知识,知道:$Y = \theta^T X$
故,可以解出: <font size=7>$\theta = (X^TX)^{-1}X^{-1}Y$</font>

此公式很重要!!!
这个式子可以给出最优的theta

而这个方法不用采用特征变量归一化

| Gradient Descent | Normal Equation |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| 1. Need to choose $\alpha$ <br />2. Needs many iterations。时间复杂度大概为$O(kn^2)$<br />3.Woks well even when n is large | 1.No need to choose $\alpha$ <br />2. Do not need to iterate<br />3.Need to compute $(X^TX)^{-1}$ 时间复杂度大概为O($n^3$)<br />4. Slow if n is very large |\]

week_2的更多相关文章

  1. week_2 四则运算

    coding地址: https://git.coding.net/lvgx/week_2.git 一. 需求分析 1.接收一个输入参数n,然后随机产生n道加减乘除(分别使用符号+-*÷来表示)练习题 ...

  2. shell之脚本片断

    16. 以下是平台信息 CentOS Linux release 7.1.1503 (Core) Linux mysql-dev1 3.10.0-229.el7.x86_64 #1 SMP Fri M ...

  3. 使用cJSON库解析JSON

    cJSON库的下载 cJSON是一个基于C的JSON解析库,这个库非常简单,只有cJSON.c和cJSON.h两个文件,支持JSON的解析和封装,需要调用时,只需要#include "cJS ...

  4. Qt平台下使用QJson解析和构建JSON字符串

    前言 上一篇介绍了C语言写的JSON解析库cJSON的使用:使用cJSON库解析和构建JSON字符串 本篇文章介绍,Qt开发环境下QJson库的使用示例,JSON解析配合API接口,就可以实现一些有趣 ...

  5. 使用cJSON库解析和构建JSON字符串

    使用cJSON库解析和构建JSON字符串 前言 其实之前的两篇博文已经介绍了json格式和如何使用cJSON库来解析JSON: 使用cJSON库解析JSON JSON简介 当时在MCU平台上使用时,会 ...

  6. HttpClient设置忽略SSL,实现HTTPS访问, 解决Certificates does not conform to algorithm constraints

    话不多说,直接上代码. 测试API:   https://api.k780.com/?app=life.time&appkey=10003&sign=b59bc3ef6191eb9f7 ...

  7. 2022HNCTF--WEB

    @ 目录 [Week1]Interesting_http 分析 payload [Week1]2048 分析 payload [Week1]easy_html 分析 paylaod [Week1]In ...

  8. [HNCTF]Web详解_原创

    WEB Challenge__rce 根据给出的源代码来看典型的命令执行但是正则匹配掉说有的字母只留下数字和少量字符串. 根据大佬给出的思路使用自增绕过 <?php error_reportin ...

随机推荐

  1. ImGUI 1.87 绘制D3D外部菜单

    ImGUI 它是与平台无关的C++轻量级跨平台图形界面库,没有任何第三方依赖,可以将ImGUI的源码直接加到项目中使用,该框架通常会配合特定的D3Dx9等图形开发工具包一起使用,ImGUI常用来实现进 ...

  2. AgileBoot - 手把手一步一步带你Run起全栈项目(SpringBoot+Vue3)

    AgileBoot是笔者在业余时间基于ruoyi改造优化的前后端全栈项目. 关于AgileBoot的详细介绍:https://www.cnblogs.com/valarchie/p/16777336. ...

  3. Vue学习之--------Vue生命周期beforeCreate、created、beforeMount、mounted、beforeDestroy 。。。(图解详细过程)(2022/7/17)

    文章目录 1.Vue生命周期 1.1 概念 1.2 图解 2.钩子函数的用法说明 2.1 beforeCreate()和created()的详细讲述 2.1.1 方法说明 2.1.2 代码实例 2.1 ...

  4. CentOS7虚拟机配置git仓库(配置虚拟机,网络,git仓库,windows端git访问)

    想要达成的目的:从windows使用git访问CentOS7服务器上搭建的git仓库 用到的软件: (1)VMware-workstation-full-15.5.0-14665864.exe (2) ...

  5. 驱动开发:内核LDE64引擎计算汇编长度

    本章开始LyShark将介绍如何在内核中实现InlineHook挂钩这门技术,内核挂钩的第一步需要实现一个动态计算汇编指令长度的功能,该功能可以使用LDE64这个反汇编引擎,该引擎小巧简单可以直接在驱 ...

  6. Dubbo-聊聊通信模块设计

    前言 Dubbo源码阅读分享系列文章,欢迎大家关注点赞 SPI实现部分 Dubbo-SPI机制 Dubbo-Adaptive实现原理 Dubbo-Activate实现原理 Dubbo SPI-Wrap ...

  7. 2022icpc新疆省赛

    菜鸡第一次打icpc 记录一下历程 习惯#define int long long 以下皆是按照我认为的难易顺序排序 K. 看题意大概就是说求从L加到R 1 ios::sync_with_stdio( ...

  8. CH58X/CH57X/V208 Observer(观察者)例程讨论讲解

    使用的是沁恒的CH582M的Observer例程与官方的demo板. 本例程的功能是主机扫描到从机的MAC地址并打印出来. 先对宏定义进行理解讨论. 最大响应扫描数为8,在串口调试助手那里可以看到打印 ...

  9. TDSQL-C 真·秒级启停:连接断了,又没断

    你听过多少款无服务器架构(Serverless)数据库? 什么是Serverless呢?简单理解,Serverless 分为 FaaS 和 BaaS 两个部分,其中 FaaS 指的是函数即服务,Baa ...

  10. 小程序基础之引用vant组件库

    第一步:终端npm init -y 会生成一个pack.json文件.(初始化包管理,记录这个项目用的包.) 第二步:npm install 会生成一个 package-lock.json文件.(一个 ...