NG机器学习笔记

第一章 初始机器学习

搜索、相片分类、反垃圾邮件这些应用,都使用了机器学习算法。

简单来说就是机器自己去学习该怎么做。

 

那些地方使用了机器学习

1、无法人工编写的程序。

无人直升机、无人驾驶、围棋等等。

直接通过人去编写相关程序,根本无法实现,最好的方式就是机器自己去学习怎么解决这些问题。

 

2、推荐算法以及那些个人定制的软件

不可能为每一个人写一套推荐算法,邮件分类算法。

 

定义

经验E: 下了N次棋/观察邮件分类

任务T:下棋/分类邮件

性能量度P:胜率/邮件分类正确率

 

监督学习

给定数据集去训练

样本->正确答案

回归问题,预测房价

离散01、分类问题

可见,机器学习不能保证预测结果百分百正确。

 

非监督学习

聚类算法:新闻分类、可能互相认识的好友

分类出叠加的声音、人声、音乐声,比如全民K哥的过滤杂音等等

这个算法不复杂,只需要一行。

业内一般使用octave验证可行性,再用迁移到C++或者java

 

感想

关键是怎样将机器学习算法用在实际的项目中

机器学习用途还是很广的

机器学习很有趣!

 

第二章

 

监督学习,每个例子有个正确的答案。

回归问题,也就是预测

 

 

数据集,也就是训练集,从这个训练集中学习如何预测房价

 

 

 

 

 

玄学调参来了

 

 

 

 

代价函数就是这个误差平方差函数

找到使得方差最小的θ1和θ0,也就是函数J(θ0,θ1)

平方值还有一个好处就是如果hx-y等于负数,它的平方还是正数,不会导致总体值变小

 

 

简化

 

 

绘制代价函数!

很明显代价函数为0时,是最好的。

一般就是最小值的时候最合适

 

 

 

 

 

两个参数的情况下

 

 

以后参数多了的话,图像的维度会更高,很多都画不出来的。

 

自动找到代价函数J,最小值的参数的方法。

 

梯度下降法

 

 

这个是偏导数,求面上一点的斜率

偏导数 f'x(x0,y0) 表示固定面上一点对 x 轴的切线斜率;偏导数 f'y(x0,y0) 表示固定面上一点对 y 轴的切线斜率。 

 

 发现这是个很好的思路,不要想着一开始就找出能够根本解决问题的通法。

而是基于问题的实际情况,一步步找到近似解

 

 

 

导数项的意义

 

 

a太小,步伐太小,需要走很多步!

a太大,可能错过最小点,最后无法收敛。

 

如果开始就是最低点呢?下一步梯度下降会怎样?

局部最低点! 导数为0!

 

 

越接近最小值,导数越来越小,变化就越来越平缓,步数越来越慢

 

 

 

梯度下降+代价函数-》线性回归

 

容易陷入局部最优

但是线性回归的代价函数总是这样的,肯定会收敛到最低点

只要使用梯度下降,就能找到

 

 

每次都遍历了整个训练集

 

梯度下降适合更大规模的数据集

posted @ 2018-06-10 23:58  朋友圈  阅读(284)  评论(0编辑  收藏  举报