Cost function(代价函数)&Gradient descent(梯度下降)

1.Cost function

1.1 How to choose parameters?

接上节内容,我们希望通过选择更合适的参数让假设函数h(x),更好的拟合数据点。

不同参数的选择改变着假设函数的形式

平方误差代价函数是解决回归问题最常用的手段,而我们也需根据问题不同选择合适的代价函数。

1.2 Examples of  simplified cost function(one parameter)

对之前假设函数进行简化(单参数)

θ选择1时h(x)和J(θ)函数图像

θ选择0.5时h(x)和J(θ)函数图像

最后,通过选择不同的θ,得到不同的假设函数值;计算平方误差和后,得到一条关于θ的曲线,求其最小值便得到拟合最好结果。

1.3 Two parameters

双参数的J(θ)代价函数三维图

而这个三维的代价函数图像亦可用等高线图(contour plots)来表示:

右侧为等高线图

可以看到不同的θ取值可能得到相同的J(θ)函数值,那么将这些相同函数值的点用同色表示,来代表等高。

那么如何来找到这组参数下的代价函数的最小值,需要用到梯度下降算法。

2.Gradient descent

2.1 outline

梯度下降算法可应用于除线性回归问题以外的更广范围,可以是更多参数的问题。

其思路大概是:设定两个参数的初值(通常为0),通过不断小幅调整两个参数,来使得J(θ)函数值更小,直到找对最小值或局部最小值。

其特点是:根据初始位置的不同,梯度下降算法可能会引至不同的局部最优解(local optimum)

需注意的是,我们应实现同步更新的过程(上图左下),而不是每次计算分别代入更新后的θ值(上图右下)。

而上方的迭代公式中,":="代表赋值符号而不是判定符号,"α"是学习率,也即每次迭代的下降步长。

2.2 Summary of gradient descent

(1)理解这个公式的含义:α是学习率也即步长控制,用以控制并调节梯度下降中每一步的参数自变量变化程度(增加或减少),而右侧偏导式控制梯度下降的方向,也即参数自变量递加或递减的方向。

在线性函数中,这个式子的偏导部分为一阶导,也即斜率,这样可以直观地明白梯度下降算法公式中的组成部分的含义。最终当导数为0时,也即下降到了最小值点,参数自变量便不再更新了。

需要注意的是α的选择,太小会使下降速率太慢,太大则有可能越过最优解,甚至导致全局发散无法收敛到目标最优解的情况。

梯度下降算法会自动调节步长(随着向局部最优解附近靠近,导数值是不断减小趋于0的),所以不必每次调整α的数值来控制步长的缩减。

2.3 Gradient descent for linear regression

将上图右侧的代价函数J代入左侧梯度下降算法公式 有:

得到了下图的应用于线性回归的梯度下降公式:

线性回归问题是一个全局凸函数,也就是说,不存在局部最优结果,梯度下降的最终结果会收敛到全局最优解。

下面用一组图例,显示这个收敛过程:

可以看出,梯度下降算法使得函数与实际数据的拟合程度越来越好。

这个梯度下降算法被称为Batch Gradient descent,原因是每一次梯度下降都对整个数据集样本进行遍历,计算偏导数时也计算的是数据集的总和。

StudyNotes_MachineLearning_2(吴恩达机器学习公开课)相关推荐

  1. StudyNotes_MachineLearning_3(吴恩达机器学习公开课)

    Linear Regression with multiple variables 1.Multiple features(多特征) 1.1multiple variables(多变量) 通过多变量来 ...

  2. 吴恩达机器学习公开课第一周学习笔记

    Octave是一种编程语言,旨在解决线性和非线性的数值计算问题.Octave为GNU项目下的开源软件,早期版本为命令行交互方式,4.0.0版本发布基于QT编写的GUI交互界面.Octave语法与Mat ...

  3. 吴恩达卷积神经网络笔记,吴恩达人工智能公开课

    吴恩达是个谁 吴恩达(1976-,英文名:AndrewNg),华裔美国人,是斯坦福大学计算机科学系和电子工程系副教授,人工智能实验室主任.吴恩达是人工智能和机器学习领域国际上最权威的学者之一. 吴恩达 ...

  4. 【深度学习】吴恩达网易公开课练习(class1 week3)

    知识点梳理 python工具使用: sklearn: 数据挖掘,数据分析工具,内置logistic回归 matplotlib: 做图工具,可绘制等高线等 绘制散点图: plt.scatter(X[0, ...

  5. 第一章-机器学习简介 深度之眼_吴恩达机器学习作业训练营

    目录 专栏简介: 一,机器学习简介 1.1 机器学习定义 1.1 机器学习的重要性 1.2 应用领域 二.监督学习 三.无监督学习 四.总结 专栏简介: 本栏主要内容为吴恩达机器学习公开课的学习笔记, ...

  6. Github标星24300!吴恩达机器学习课程笔记.pdf

    个人认为:吴恩达老师的机器学习课程,是初学者入门机器学习的最好的课程!我们整理了笔记(336页),复现的Python代码等资源,文末提供下载. 课程简介 课程地址:https://www.course ...

  7. 吴恩达机器学习笔记整理(Week1-Week5)

    吴恩达机器学习笔记整理 1. Week1 1.1 什么是机器学习(What is Machine Learning) 1.2机器学习算法分类 1.3 单变量线性回归(Linear Regression ...

  8. 【CV】吴恩达机器学习课程笔记 | 第1-2章

    本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 1 介绍 1-3 监督学习 1-4 无监督学习 2 单变量 ...

  9. 【CV】吴恩达机器学习课程笔记第18章

    本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 18 应用案例:照片OCR 18-1 问题描述与流程(pi ...

最新文章

  1. 常用控件产品官方文档/手册/API列表 c#控件文档API列表 asp.net控件产品技术文档中文版...
  2. 廉洁修身论文2000字_自主招生论文发表要求【期刊论文】自主招生论文发表要求...
  3. Docker 新网络 overlay 网络
  4. 【NLP】文本分类还停留在BERT?对偶对比学习框架也太强了
  5. Android之layout属性介绍
  6. 55种数据可视化开源工具_4种开源工具让我的创业起步
  7. mysql安全性特点_MySQL数据库有哪些特点?为何能得到了广泛应用?
  8. Java多线程学习四十三:
  9. java冒泡法排序实例_Java冒泡法排序实例
  10. hbase Normalizer解决预分区错误,在不动数据的情况下完美解决热点问题
  11. java访问网络接口_Java网络访问 java调用http java调用其他接口
  12. 简库软件库工具箱综合源码_iApp源码
  13. pringboot+vue 基于springboot房屋租赁管理系统#毕业设计
  14. vim user-manual的笔记 Chapter1
  15. 最新Oreo支付系统平台完整源码+已全开源
  16. 新更新....llq原创考试第二题
  17. Mysql大字段blob返回是数字_innodb使用大字段text,blob的一些优化建议(转)
  18. 竞价推广(SEM)是什么
  19. 【ML从入门到入土系列01】概述
  20. PSD文件生成Unity预设

热门文章

  1. 使用JavaFX2.0的控件
  2. 再度公开少林内修心法(易筋经和洗髓经)欢迎转载,让全人类共享学习,过得更健康!
  3. 解决奔腾处理器在tensorflow高版本下报动态链接库(DLL)初始化例程失败
  4. python文件拓展名是_python文件扩展名是什么
  5. 运维演进正确之道_API演进的正确方法
  6. windows系统重装(安装)第一篇——老毛桃本地PE环境的安装
  7. C++数据结构——小明的通讯录(哈希表线性探测法)
  8. 《数据结构实践》设计报告---迷宫求解
  9. 【算法学习】找素数的几种算法: 简单穷举, 埃氏筛法, 欧氏筛法, 从O(n2)到O(n)
  10. java 加载gif_android使用giflib加载gif