Machine Learning 笔记一

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39820793/article/details/80151810

Machine Learning 笔记一

1.什么是Machine Learning?

  定义:

假设用P来评估计算机程序在某任务类T上的性能,若一个程序通过利用经验E在T中的任务上获得了性能改善,则我们就说关于T和P,该程序对E进行了学习。——Mitchell 1997

  通俗的讲就是:在任务不断执行中积累的经验会给计算机带来性能上的提升。
  举个例子:
  假如我写了个程序,可以识别手写数字,但是在程序一开始的时候基本上不能够正确的识别手写的数字,但是,当你把这个程序进行了多次的训练之后(多次的运行),到最后程序可以很好的识别你写的数字。

2.人类的学习

  人非生而知之者,那么人类是怎么从无知到掌握大量的知识的呢?
  首先,人类能够接受来自外部的信息,这是一切的前提。
  然后我们会不自觉讲我们看到的接收到的东西进行一些特征的提取。

比如,怎么认识月亮是月亮的过程,月亮在不同的时候都会显示出不同的月相,有人在满月的时候告诉你,”这个是月亮”,好,这个时候你就知道这个是月亮了,但是,当过了一段时间,月亮变成下弦月或者新月的时候呢?这时你又不知道这是什么了,这时,人家还告诉你,“这是月亮”,多次之后,你可能就知道,这个悬在夜空,晚上会发光的球体就是月亮了,这个就是特征的提取,人类的学习过程(当然人类的学习力很强)

  有了这些特征,我们就会根据这些特征来判断东西。

3.统计学习

  统计学习分为监督学习、非监督学习、半监督学习以及强化学习。
    监督学习(supervised learning),任务是学习一个模型,是模型能够对任意给定的输入,对其相应的输出做出一个好的预测,是有标签(label)输入的。
    非监督学习(unsupervised learning), 也称为聚类,依据计算数据之间的相似性进行分类,是没有标签(label)的输入的。
    半监督式学习(semi-supervised learning),介于两者之间。
    强化学习(Reinforcement Learning),举个例子,比如:Alpha Go,在一开始,只告诉计算机,围棋的基本规则(如何下子与输赢规则等),然后让其不断训练。(附:Alpha Go论文

4.一个小小的例子

  如果有人难以理解模型是什么的话,可以把模型认为是一个比较复杂的定义函数,输入值或者不输入值都会给你返回一个结果;也可以看成一个映射,从左边的定义域映射到右边的值域。
  在此,为大家举一个例子,可以更加深刻的理解一些。
这里写图片描述

  我们来通过上面的训练集来预测下面的房价,就是说把问号去掉,换成具体的数值。
  首先我们假设,这是一个非常非常简单的线性问题,符合条件

y=f(x)=θ0x0+θ1x1+θ2x2+θ3x3+θ

  其中 x0x1x2x3 都是变量,分别代表房屋的类型、房间数、屋子的面积、是否有公共交通, θ0θ1θ2θ3 分别代表着每个向量的权重,而 y f(x) 就是最终计算出来的结果,也即房屋价格,而 θ 都是干嘛的呢?它是公式的一个截距,有的时候什么都没有做它本身的存在就代表了一定的价值,这个价值就是 θ ,当然 θ 也可以为0。
  然后我们通过上面的计算,算出了 θ0θ1θ2θ3θ ,然后我就利用已知的数据(房子类型、房间数等)来预测房价。

5.ML的一般流程

  通过上面的一个小小的例子,我们可以总结出一些小小的机器学习的流程规律。

Created with Raphaël 2.1.0 数据收集 数据清洗 特征工程 数据建模

6.各种算法的简单介绍

  这里本来想放各种算法的简单介绍,但是我怕一写起来没完没了,反正也会用到,用到的时候再进行详细的介绍吧。

7.数理问题的一些学习

 ①自然常数 e 的简单推导

  首先抛出一条公式

S=10!+11!+12!+13!+14!++1n!+

   或者
这里写图片描述
  我们这么想
,我们画出 log1.5(x)log2(x)log3(x) 的图像,然后在 (1.0,0) 处做切线,那么是否可以找得到对数函数使其切线斜率为1?
  解:(上图问题)
    我们令 f(x)=loga(x)
    则:
f(x+Δx)f(x)Δx=loga(x+Δx)logaxΔx=loga(x+Δxx)Δx=loga(x+Δxx)1Δxx=1loga(1+Δx)1Δx==1limΔx0(1+Δx)1Δx=a

    问: limn(1+1n)n=?
    对此我们构造{ xn }并使用牛顿-莱布尼兹展开式子。
     xn=(1+1n)n
     =1+C1n1n+C2n1n2+C3n1n3++Cnn1nn
     =1+n1n+n(n1)2!1n2+n(n1)(n2)3!1n3++n(n1)(n2)1n!1nn
     =1+1+12!(11n)+13!(11n)(12n)++1n!(11n)(12n)(1n1n)
     <1+1+12!+13!++1n!
     <1+112+122+123++12n1
     =312n1
    <3
    于此我们可知,此单调函数必有上界,即当 n 时极限必存在,我们将极限记作 e .
    同时我们再利用夹逼定理:
    
(1+1n+1)n<(1+1x)x<(1+1n)n+1

    
limn(1+1n+1)n=limn(1+1n+1)n+11+1n+1=limn(1+1n+1)n+1limn(1+1n+1)=e1+0

     =e
     limn(1+1n)n+1=limn((1+1n)n(1+1n)=limn(1+1n)nlimn(1+1n)=e(1+0)=e
    由夹逼定理可知 f(x)=(1+1x)x 的极限存在,且为 e

 ②二阶导数

  是斜率变化快慢的反应,表征是曲线的凸凹性,二阶导大于0时,为凸函数,二阶导小于0时为凹函数。

 ③ NlnN!N(lnN1)

     lnN!=Ni=1lniN1lnxdx
     =xlnx|N1N1xdlnx
     =NlnxN1x1xdx
     =NlnNx|N1
     =NlnNN+1
     NlnNN
     ==N(lnN1)

 ④Tayolr公式-Maclaurin公式

     Tayolr :f(x)=f(x0)+f´(x0)(xx0)+f(2)(xx0)22!++fn(x0)n!(xx0)n+Rn(x)
     Maclaurin(Tayolr0):f(x)=f(0)+f´(0)x+f(2)(0)2!x2++f(n)(0)n!xn+o(xn)

  Taylor展示的直观意义

这里写图片描述

    由上图我们标注 f(a1)=f(a)
    那么

f(a2)=f(a+Δx)=f(a)+f(Δx)
f(a3)=f(a+2Δx)=f(a+Δx)+Δf(a+Δx)=f(a)+2Δf(x)+Δ2f(x)
f(a4)=f(a+3Δx)=f(a)+4Δf(x)+6Δ2f(x)+4Δ3f(x)+Δ4f(x)

  Taylor公式的应用1

    数值计算:初等函数值的计算
     sinx=xx33!+x55!x77!x99!++(1)m1x2m1(2m1)!+R2m
     ex=1+x+x22!+x33!++xnn!+Rn
    例子:给定正实数x,计算 ex=?
    提供一种可行的思路:求整数k和小数r,使得:

x=kln2+e,|r|0.5ln2

    (提示:任意一个数值可以分成一个整数加小数的情况,比如:2.8 = 3.0-0.2 , 3.3 = 3.0+0.3,至于取 ln2 完全是因为它方便,且使得小数部分足够小)


     :ex
     =ekln2+r
     =ekln2er
     =2ker
     2k

  Taylor公式的应用2

    考察Gini系数
     f(x)=lnxx=1f(x)1x
     H(x)=ki=1pklnpk
     Kk=1pk(1pk)

⑤方向导数

  如果函数 z=f(x,y) 在点 P(x,y) 是可微分的,那么,函数在该点沿任意方向L的方向导数都存在且有:
    

fl=fxcosϕ+fysinϕ
ϕxL

  梯度

    设函数 Z=f(x,y) 在平面区域D内具有一阶连续偏导数,则对于每一个点 P(x,y)D ,向量
    

(fx,fy)

    为函数 Z=f(x,y) 在点P的梯度,记作 gradf(x,y)
    梯度的方向(即与方向向量的夹角为 0o )是函数在该点变化最快的方向,于此后面的SGD等都是依照此原理。

Γ 函数推导

     Γ(x)=(x1)Γ(x1)Γ(x)Γ(x1)=x1
     Γ 函数是阶乘在实数域上的推广,它的发明人是欧拉
    

Γ(x)=+0tx1etdt=(x1)!

    我们来这个思考 xndx=1n+1xn+1 exdx=ex
    当我们都将其放在一起思考,并且将 ex 变成倒数即 ex 之时
    就为
+0xnexdx

    这样子貌似和我一般的习惯不是很相似,我们将其转化一下,同时将x的指数换减去1(不减1也能算,但是-1之后算出的结果比较好看)
    于是就成了
+0tx1etdt

    我们开始对其进行计算,使用分步积分法
+0tx1etdt
=+0tx1etdt
=tx1et|0+++0etdtx1
=tx1et|0++(x1)+0tx2etdt
=tx1et|0+ +(x1)+0tx2etdt
=(x1)Γ(x1)

    同时我们令 x=1 ,可以计算的 Γ(1)=1
    那么 Γ(x)=(x1)Γ(x1)=(x1)(x2)Γ(x2)=(x1)(x2)(x3)Γ(1)=(x1)!

f(x1,x2)=log(ex1+ex2)max(x1,x2)

  推广
f(x1,x2,x3,,xn)=log(ex1+ex2+ex3++exn)max(x1,x2,x3,,xn)

  在这里只进行简单的计算,以后再进行推导,在此可以简单的画上两张图让大家看一看。
这里写图片描述

  这个是代码

import numpy as np
from matplotlib import pyplot as plt

if name == ‘main‘:
fig = plt.figure()
ax = fig.add_subplot(111)
u = np.linspace(0,4,1000)
x , y = np.meshgrid(u , u)
z = np.log(np.exp(x) + np.exp(y))
ax.contourf(x,y,z,20)

8.概率论

  下次再对这个进行一些简单的介绍,其实很多东西,大家都已经了解非常的多了,我的介绍仅仅只是为大家锦上添花罢了。

9.小结

  机器学习这一门学科,真的是需要的非常好的数理功底,在学习这个的时候其实更多时候是在学习各种数学的原理,而且还不是简简单单的知道就可以的,最好是能够对各种数学原理信手拈来,抓起笔就能写推导的程度,感觉在学习的过程中对各种数学原理理解的更加深刻了。

  再之,在一开始写这篇博客的时候,万万没有想到中间的数学式子写的我要吐了,在右边每一条好看的的数学式子后面都是一堆代码在支撑着,不过那时已经写了一半了(其实远不到),放弃就不太甘心,硬是这么支撑着写了下来(当然,中间有些东西也没有详细讲),中间一些东西怕readers难以理解还特意去思考了如何表述比较明了,一些定义为了更精准到处去翻,其中虽然苦,但是还是让我乐在其中的,写这一篇即是为了和大家分享学习心得,也算是给自己一次复习的机会,接下里还是要继续努力学习!

  与诸君共勉!

猜你喜欢

转载自blog.csdn.net/weixin_39820793/article/details/80151810