美文网首页
机器学习记录01

机器学习记录01

作者: Junhua1024 | 来源:发表于2019-05-13 18:33 被阅读0次

中心极限定理

中心极限定理指的是给定一个任意分布的总体。我每次从这些总体中随机抽取 n 个抽样,一共抽 m 次。 然后把这 m 组抽样分别求出平均值。 这些平均值的分布接近正态分布。

回归LossFucntion

回归问题的损失函数一般使用每个点的误差的平方的和,即平方误差,平方误差比绝对值误差要容易求解,所以一般用平方误差。

最大释然估计

极大释然估计,就是利用已知的样本结果信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值。举个例子来说明,假设某个硬币出现正面的概率未知(并不少固定的0.5),那么我可以通过做很多次实验,然后估计这个硬币出现正面的真正概率。

损失函数与凸函数

损失函数定义了模型的优化方向,是模型的灵魂,不同的损失还是决定了模型的不同表现。模型的损失函数越小,表示模型在这个数据集上拟合得越好。

如果损失函数为凸,其极值就为最优解;反之,损失函数可能只计算得到局部最优解(正好下面会谈到),很难得到全局最优 。

全局最优和局部最优

在函数解析的过程中,由于很难直接求到最优解,或者并不存在最优解,这个时候我们采用迭代的方式,不断的朝着正确的方向去优化我们的解,期望能得到最优解。但如果我们设置的步长不合理,可能我们会限在某个局部最优解里面,看不到后面也许还有更好的解析解。如果损失函数为凸,其极值就为最优解;反之,损失函数可能只计算得到局部最优解,很难得到全局最优 。

梯度下降

复合函数求导:
f'(g(x))=f'(g)g'(x)
eg:
f(x)=ax+b \\ g(x)=x^2 \\ f'(g(x))=((ax+b)^2)'= 2(ax+b)a
偏导数:

偏向某个方向,其他的方向就看作一般常量
f(x,y) = x^2 + y^3 + 4 \\ \frac{\partial f(x,y)}{\partial x} = 2x \\ \frac{\partial f(x,y)}{\partial y} = 3y^2 \\
我们的函数可以表示为:
f(x)=w_1x_1+w_2x_2+w_3x_3...+b \\ 向量表示f(x)=W^T\cdot{X} + b
定义误差函数为每个点的误差的平方的和,即平方误差,平方误差比绝对值误差要容易求解,所以一般用平方误差。
y_i表示第i次的预测结果 \\ f_i(x)表示第i次的实际结果 \\ 损失函数L(x)=\sum_{i=1}(f_i(x)-y_i)^2 \\ 为了方便推导一般也等价于: L(x)=\frac{1}{2}\sum_{i=1}(f_i(x)-y_i)^2
要使L(x)最小,我们需要对L(x)在每个w方向上求偏导数,并使w沿着偏导数的反方向移动,直到L(x)出现最优解

为了方便推倒,这里先假设i=1
为了方便推导,这里假设n=2,i=1\\ L(x) = \frac{1}{2}(w_1x_1+w_2x_2+b-y_1)^2 \\ \frac{\partial L(x)}{\partial w_1}=(w_1x_1+w_2x_2+b-y_1)x_1 \\ \frac{\partial L(x)}{\partial w_2}=(w_1x_1+w_2x_2+b-y_1)x_2 \\ \frac{\partial L(x)}{\partial b}=w_1x_1+w_2x_2+b-y_1 \\ 所以我们可以得出\\ 针对每个w有:\frac{\partial L(x)}{\partial w_n}=(w_nx_n+b-y_1)x_n \\ \frac{\partial L(x)}{\partial b}=w_nx_n + b-y_1 \\ \frac{\partial L(x)}{\partial w_n}=\sum_{j=1}[(w_nx_n+b-y_j)x_n ]
每个w每次减去该方向的偏导数。

import numpy as np
def fit(X:[],y:[], round=30, eta=0.01):
    # if(len(X) != len(y)):
    #     return (0,0)
    vector_X = np.array(X)
    diamon = vector_X.shape[1]

    vector_w = np.ones(diamon)
    bais = 0

    while(round > 0):
        loss = vector_X.dot(vector_w) + bais - np.array(y)
        vector_w -= eta * vector_X.T.dot(loss)
        bais -= eta*loss.sum()
        round -= 1
        error = (loss ** 2).sum() / 2.0
        print(error)
    return vector_w, bais

正则化

min\left\{ \frac{1}{N}\sum_{i=1}^{N}{(y_{i} - f(x_{i} ))^{2} + r(d)} \right\}

r(d)表示对参数的约束。

正则化的出现是为了防止模型出现过拟合,模型出现过拟合就表示出现了更多的高次方程,曲线更加复杂,而这些w都是通过数据学习来的,所以要防止过拟合就要减少w的个数。

范数
  • 0范数,向量中非零元素的个数。
  • 1范数,为绝对值之和。
  • 2范数,就是通常意义上的模。

说明为什么用L1-Norm代替L0-Norm

l0-Norm虽然可以直接减少w向量的维度,但是求解的过程属于NP-hard问题,因此一般用相近的L1代替。
min\left\{ \frac{1}{N}\sum_{i=1}^{N}{(y_{i} - f(x_{i} ))^{2} + |W|} \right\}

L2-Norm

min\left\{\sum_{i}^{N}{(y-W^{T}x )} + \frac{\lambda }{2} \left| \left| W \right| \right| _{2} ^{2} \right\},

L2范数是指向量各元素的平方和然后求平方根。我们让L2范数的正则项||W||2最小,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0。L2范数在求解方面更加有优势,所以L2也经常被使用到

学习为什么只对w/Θ做限制,不对b做限制

b不会增加模型的复杂度,模型的复杂度只和w有关

相关文章

  • 机器学习记录01

    中心极限定理 中心极限定理指的是给定一个任意分布的总体。我每次从这些总体中随机抽取 n 个抽样,一共抽 m 次。 ...

  • 机器学习记录

    1.在线吴恩达深度学习视频:https://www.bilibili.com/video/av66314465/?...

  • 1. 介绍

    本人在学习斯坦福大学的机器学习课程,特记录课程概要内容。课程地址: Andrew Ng机器学习课程 什么是机器学习...

  • 机器学习笔记

    学习记录,从小白做起。 传统给机器学习 先来镇楼的,吴恩达机器学习:吴恩达机器学习 OCTAVE版本下载:http...

  • 机器学习40讲

    机器学习概观 (10讲) 01 | 频率视角下的机器学习 02 | 贝叶斯视角下的机器学习 03 | 学什么与怎么...

  • 机器学习代码记录-回归(机器学习)

    先列出回归函数代码,可以使用的回归算法包括: xgboost lightgbm catboost sklearn ...

  • 机器学习代码记录-分类(机器学习)

    分类问题的k折校验,一般使用KFold,而分类问题一般使用StratifiedKFold。 参数:X - 训练数据...

  • 机器学习-写在读前

    一直对机器学习充满兴趣,从本周开始学习周志华老师机器学习一书,系列文章记录学习过程、疑惑、心得

  • 《Scikit-Learn与TensorFlow机器学习实用指南

    (第一部分 机器学习基础)第01章 机器学习概览第02章 一个完整的机器学习项目(上)第02章 一个完整的机器学习...

  • 《Scikit-Learn与TensorFlow机器学习实用指南

    (第一部分 机器学习基础)第01章 机器学习概览第02章 一个完整的机器学习项目(上)第02章 一个完整的机器学习...

网友评论

      本文标题:机器学习记录01

      本文链接:https://www.haomeiwen.com/subject/xoiraqtx.html