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!

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

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

容易陷入局部最优

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

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

每次都遍历了整个训练集

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

原文地址:https://www.cnblogs.com/weizhibin1996/p/9165138.html