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.一个小小的例子
如果有人难以理解模型是什么的话,可以把模型认为是一个比较复杂的定义函数,输入值或者不输入值都会给你返回一个结果;也可以看成一个映射,从左边的定义域映射到右边的值域。
在此,为大家举一个例子,可以更加深刻的理解一些。
我们来通过上面的训练集来预测下面的房价,就是说把问号去掉,换成具体的数值。
首先我们假设,这是一个非常非常简单的线性问题,符合条件
其中
然后我们通过上面的计算,算出了
5.ML的一般流程
通过上面的一个小小的例子,我们可以总结出一些小小的机器学习的流程规律。
6.各种算法的简单介绍
这里本来想放各种算法的简单介绍,但是我怕一写起来没完没了,反正也会用到,用到的时候再进行详细的介绍吧。
7.数理问题的一些学习
①自然常数
e
的简单推导
首先抛出一条公式
或者
我们这么想,我们画出
解:(上图问题)
我们令
则:
问:
对此我们构造{
<3
于此我们可知,此单调函数必有上界,即当
同时我们再利用夹逼定理:
由夹逼定理可知
②二阶导数
是斜率变化快慢的反应,表征是曲线的凸凹性,二阶导大于0时,为凸函数,二阶导小于0时为凹函数。
③
N→∞⟹lnN!→N(lnN−1)
④Tayolr公式-Maclaurin公式
Taylor展示的直观意义
由上图我们标注
那么
Taylor公式的应用1
数值计算:初等函数值的计算
例子:给定正实数x,计算
提供一种可行的思路:求整数k和小数r,使得:
(提示:任意一个数值可以分成一个整数加小数的情况,比如:2.8 = 3.0-0.2 , 3.3 = 3.0+0.3,至于取
Taylor公式的应用2
考察Gini系数
⑤方向导数
如果函数
梯度
设函数
为函数
梯度的方向(即与方向向量的夹角为
⑥
Γ
函数推导
我们来这个思考
当我们都将其放在一起思考,并且将
就为
这样子貌似和我一般的习惯不是很相似,我们将其转化一下,同时将x的指数换减去1(不减1也能算,但是-1之后算出的结果比较好看)
于是就成了
我们开始对其进行计算,使用分步积分法
同时我们令
那么
⑦
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 pltif 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.概率论
下次再对这个进行一些简单的介绍,其实很多东西,大家都已经了解非常的多了,我的介绍仅仅只是为大家锦上添花罢了。