Machine Learning Chinese NLP :::: Cost Function Intuition II - Chad Salinas ::: Data Scientist
Use Slidify to create motion charts to share with the world on rPubs Chad Salinas or GitHub.
Slidify, rPubs Chad Salinas, Motion Charts, Hans Rosling
1145
post-template-default,single,single-post,postid-1145,single-format-standard,qode-listing-1.0.1,qode-social-login-1.0,qode-news-1.0,qode-quick-links-1.0,qode-restaurant-1.0,ajax_fade,page_not_loaded,,qode-title-hidden,qode_grid_1300,qode-theme-ver-12.0.1,qode-theme-bridge,bridge,wpb-js-composer js-comp-ver-5.4.2,vc_responsive
a

Machine Learning Chinese NLP :::: Cost Function Intuition II

Cost Function Intuition II

这节课中 我们将更深入地学习代价函数的作用
这段视频的内容假设你已经认识轮廓图
如果你对轮廓图不太熟悉的话
这段视频中的某些内容你可能会听不懂 但不要紧
如果你跳过这段视频的话 也没什么关系
不听这节课对后续课程理解影响不大
和之前一样 这是我们的几个重要公式
包括了假设h、参数θ、代价函数J 以及优化目标
跟前一节视频不同的是 我还是把θ写成θ0、θ1的形式
便于这里我们要对代价函数进行的可视化
和上次一样 首先来理解假设h和代价函数J
这是房价数据组成的训练集数据 让我们来构建某种假设
就像这条线一样 很显然这不是一个很好的假设
但不管怎样 如果我假设θ0等于50 θ1等于0.06的话
那么我将得到这样一个假设函数 对应于这条直线
给出θ0和θ1的值 我们要在右边画出代价函数的图像
上一次 我们是只有一个θ1 也就是说
画出的代价函数是关于θ1的函数 但现在我们有两个参数
θ0和θ1 因此图像就会复杂一些了
当只有一个参数θ1的时候 我们画出来是这样一个弓形函数
而现在我们有了两个参数 那么代价函数
仍然呈现类似的某种弓形 实际上这取决于训练样本
你可能会得到这样的图形
因此这是一个三维曲面图 两个轴分别表示θ0和θ1
随着你改变θ0和θ1的大小 你便会得到不同的代价函数
J(θ0,θ1) 对于某个特定的点 (θ0,θ1)
这个曲面的高度 也就是竖直方向的高度
就表示代价函数 J(θ0,θ1) 的值
不难发现这是一个弓形曲面 我们来看看三维图
这是这个曲面的三维图 水平轴是θ0、θ1
竖直方向表示 J(θ0,θ1) 旋转一下这个图
你就更能理解这个弓形曲面所表示的代价函数了
在这段视频的后半部分 为了描述方便
我将不再像这样给你用三维曲面图的方式解释代价函数J
而还是用轮廓图来表示
contour plot 或 contour figure 意思一样
右边就是一个轮廓图 两个轴分别表示 θ0 和 θ1
而这些一圈一圈的椭圆形 每一个圈就表示
J(θ0,θ1) 相同的所有点的集合
具体举例来说 我们选三个点出来
这三个桃红色的点 都表示相同的
J(θ0,θ1) 的值 对吧 横纵坐标分别是θ0 θ1
这三个点的 J(θ0,θ1) 值是相同的
如果你之前没怎么接触轮廓图的话 你就这么想
你就想象一个弓形的函数从屏幕里冒出来
因此最小值 也就是这个弓形的最低点就是这个点 对吧
也就是这一系列同心椭圆的中心点 想象一下这个弓形从屏幕里冒出来
所以这些椭圆形 都从我的屏幕上冒出相同的高度
弓形的最小值点是这个位置
因此轮廓图是一种很方便的方法 能够直观地观察
代价函数J 接下来让我们看几个例子
在这里有一点 这个点表示θ0等于800
θ1大概等于-0.15 那么这个红色的点
代表了某个 (θ0,θ1) 组成的数值组
而这个点也对应于左边这样一条线 对吧
θ0等于800 也就是跟纵轴相交于大约800
斜率大概是-0.15 当然 这条线并不能很好地拟合数据
对吧 以这组 θ0 θ1 为参数的这个假设 h(x)
并不是数据的较好拟合 并且你也发现了
这个代价值 就是这里的这个值 距离最小值点还很远
也就是说这个代价值还是算比较大的
因此不能很好拟合数据 让我们再来看几个例子
这是另一个假设 你不难发现 这依然不是一个好的拟合
但比刚才稍微好一点 这是我的 θ0 θ1 点

Chad Salinas working on Plotly

Chad Salinas working on analytics project.

Chad Salinas late nighter
这是 θ0 的值 大约为360
θ1 的值为0 我们把它写下来
θ0=360 θ1=0 因此这组θ值对应的假设是
这条水平的直线 也就是h(x) = 360 + 0 × x
这就是假设 这个假设同样也有某个代价值
而这个代价值就对应于这个代价函数在这一点的高度
让我们再来看一些例子 这是另一个例子
这个点这组 θ0 和 θ1 对应这样一条假设h(x)
同样地 还是对数据拟合不好 离最小值更远了
最后一个例子 这个点其实不是最小值 但已经非常靠近最小值点了
这个点对数据的拟合就很不错
它对应这样两个θ0 和 θ1 的值
同时也对应这样一个 h(x) 这个点虽然不在最小值点 但非常接近了
因此误差平方和 或者说 训练样本和假设的距离的平方和
这个距离值的平方和
非常接近于最小值 尽管它还不是最小值
好的 通过这些图形 我希望你能更好地
理解这些代价函数 J 所表达的值 它们是什么样的
它们对应的假设是什么样的 以及什么样的假设对应的点
更接近于代价函数J的最小值
当然 我们真正需要的是一种有效的算法
能够自动地找出这些使代价函数J取最小值的参数θ0和θ1来
对吧 我想我们也不希望编个程序
把这些点画出来 然后人工的方法来读出这些点的数值
这很明显不是一个好办法 事实上 我们后面就会学到
我们会遇到更复杂、更高维度、更多参数的情况
这在我们在后面的视频中很快就会遇到
而这些情况是很难画出图的
因此更无法将其可视化 因此我们真正需要的
是编写程序来找出这些最小化代价函数的θ0和θ1的值
在下一节视频中 我们将介绍一种算法 能够自动地找出能使代价函数 J
最小化的参数θ0和θ1的值

Let the dataset change your mindset

– Hans Rosling
No Comments

Sorry, the comment form is closed at this time.