1、监督学习

        监督学习就是利用已知标签的数据集来训练模型,使模型能够学习输入数据与输出标签之间的映射关系,从而对新的、未知的数据做出准确预测或分类。

        监督学习分为分类和回归两种,分类就像是在做选择题,就比如猫狗分类识别;回归更像是在做填空题,比如房价预测,预测出一个确切的值。

        通常,分类学习有有限个输出,回归问题的输出可以输出无限多个可能的数字。

2、无监督学习

        无监督学习是在没有预先定义标签或正确答案的情况下,让算法自行探索和分析数据的内在结构、模式和分布。无监督学习与监督学习的区别就在于是否给出数据的标签。
        聚类算法,举个例子,就比如说你很喜欢小熊猫,然后你搜索关于小熊猫的今天的新闻,结果就是你不止能搜索到今天的新闻,你可能还会搜索到过去几天的关于小熊猫的新闻,甚至你还可能看到动物园之类的新闻,这就是聚类,算法在无监督的情况下,把他认为相似的内容聚集到一起,所以聚类算法属于无监督学习算法。

        无监督学习还包括异常检测和降维。

3、jupyter

        Jupyter​ 是一个开源的、交互式的 Web 应用程序,主要用于创建和共享包含实时代码、可视化图表、数学公式和叙述性文本的文档。可以直接在pycharm中新建一个jupyter文档。 

4、线性回归模型       

        首先,线性回归模型属于监督学习。

        如下图所示,这就是一个单变量线性回归模型,我们的目的就是求出 f(x) = wx + b 这和模型中的 w 和 b ,就是求出模型。线性回归模型是最简单的模型了。

5、代价函数(损失函数)

        如上图所示,代价函数是衡量模型预测值与真实值之间的差异,从而指导模型参数的优化,也就是上图中的 J(w) ,因为我们这里假设模型是最简单的模型,参数只有 w 。代价函数很好地反映了模型应该如何调节,才能找到最小的损失,从而使模型的预测值更加准确。

        这里是包括两个参数的代价函数,最低点代表最好的参数。

6、梯度下降

        梯度下降就是用来找到用于最优模型的参数的大小的算法,每次都对 w 和 b 进行微小的调整,使loss的值接近最小。梯度下降算法是一个逐渐找到局部最小值的算法,这就意味着选取不同的初始点,你可能会得到不同的结果。

        具体实现同步的梯度下降,其实梯度就是导数(或者说是偏导数),公式中的 \alpha 就是学习率,用来决定每次收敛的速度大小。

7、学习率

        1、是什么

        具体地说就是,当前的点距离目标点越远,那么导数值就会越大,梯度值就大,下一步走的就大,随着越来越靠近局部最低点,导数值越来越小,最后慢慢收敛。

        求梯度公式,其实就是高等数学中的链式求导法则。

        2、如何选择学习率

        很简单,如果你的损失随着训练次数测增加不断增大或者时大时小,那么就可以尝试减小学习率,因为在学习率足够小的情况下,每次训练的loss一定是逐渐减小的,最后趋近于0。如果已经将学习率调的非常小,loss还是会增大,那就是代码中出现了问题。

        但是问题还是存在,如果学习率调整的太小,模型的收敛速度会非常慢。所以可以试着来,比如先设置0.0001,在逐渐增大,0.0003,0.001,0.003之类的。然后分别观察loss曲线,选择效果最好的。

8、多特征(多元线性回归模型)

9、向量化(numpy)

        向量化的好处就是是代码更加简洁,还有加速计算。并且在深度学习中,我们模型的输入的类型是tensor,ndarray可以很好的转换成张量,从而输入模型。

        如下所示,左边没有进行向量化,那么只能串行的进行相加。但是右边进行向量化,不同位置可以并发执行,然后同时相加,加快了计算的速度。

10、多重线性回归的梯度下降

        还有一种只能用于线性回归模型的梯度下降方法,就是正规方程方法,需要调用机器学习库,在后台使用复杂的方法来求w和b。

11、特征缩放

        1、是什么

        首先说为什么要进行特征缩放,如下图所示,假如 x_{2} 要比 x_{1} 大很多,那么就会导致模型收敛特别慢,\theta_{1} 每次变动一小步,\theta_{2} 每次的变动特别大。

          第二个原因就是在计算距离的时候会产生偏差。如下图所示,横轴在计算距离的时候要比纵轴起到的作用更大,但是横轴代表的特征并不一定比纵轴表示的特征更重要。横轴之所以能起到决定性作用,纯纯是因为他能表示的范围更大,也就是数量级大。

        通过标准化之后,两个特征起到的作用就差不多了。也就是让算法不会受到特征尺度的影响。如下图所示。

        2、怎么做

        ·最大最小归一化

        最大最小归一化可以保证数据都在0~1之间。

        ·标准化(较流行)

12、多项式回归模型

         最简单来说,就是单纯的线性曲线已经满足不了对数据的拟合了,所以我们可以用非线性来拟合曲线。但是有一个很重要的点,下图中的 x ,x^{2} ,x^{3} 他们的量级不同,所以要进行特征缩放,保证不会因为一些物理上的因素影响模型的训练

13、逻辑回归模型

        sigmoid函数,输入一个或者一组特征 x ,得到一个介于0到1之间的值。逻辑回归模型经常用来解决二分类问题,输出的值是一个概率值,判断接近0还是1,从而判断结果是0还是1。

14、决策边界

        字面理解,在13、逻辑回归模型中,当 w\cdot x + b = 0 时,经过sigmoid函数得到的值为0.5,当 w\cdot x + b > 0 时,预测值等于1,当 w\cdot x + b < 0 时,预测值等于0,所以当 z = 0时,就是决策边界。如下图所示,对于不同的参数值有不同的决策边界,在w_{1} = 1, w_{2} = 1, b = -3 的情况下,当 z = 0 时,也就是 x_{1} + x_{2} = 3 时,下面的那条紫色的线,就是决策边界。决策边界会随着参数的不同而改变。

        参数的选择是模型最后训练出来的,训练完成后,这些参数就固定了,形成了一个具体的函数或规则,所以我们才能根据模型训练出来的参数进行划分决策边界。

15、泛化

        一句话,泛化就是模型在训练集之外、模型从未见过的数据上也能表现良好的一种能力。下图所示的模型就具有很好的泛化能力。机器学习的目标就是找到一个既不过拟合,又不欠拟合的模型。

16、欠拟合(高偏差)

        简单来说,欠拟合就是模型过于简单,无法找到正确的规律。

17、过拟合(高方差)

        过拟合就是模型在训练数据上表现过于优秀,以至于学习了训练数据中的噪声、随机波动和不相关的细节,导致它在新的、未见过的数据上表现显著下降。不具有很好的泛化能力。

        一张图看明白欠拟合的模型,泛化好的模型,过拟合的模型的区别。

        解决办法

        1、寻找更多的训练数据,就是大力出奇迹。

        2、使用更少的特征,通过直觉来猜测更加重要的特征,对于那些相对不重要的特征不参加模型的训练。

        3、正则化

        首先声明,正则化,和正则表达式,这是两个完完全全不同的东西,不要搞混。那么好,什么是正则化。一句话,凡是可以减少过拟合的方法,都叫正则化方法。

        正则化就是要在我们原始的loss函数的后面加上一个正则项,如图所示。我们的目的就是选择一个恰到好处的正则化参数 \lambda ,从而解决过拟合问题。如果 \lambda 过小,那么添加的正则项就约等于0,还是过拟合;如果 \lambda 过大,因为模型会想办法缩小整个loss,所以前面的 w_{1},w_{2},w_{3},w_{4} 就会变小,接近0,所以最后预测出的模型就会变成一条直线,就会发生欠拟合。

        与此同时,带有正则化参数的梯度下降公式也就变成了这样:

有关正则化内内容我找到了更加详细的内容,想看的更深入的可以看看。

更多推荐