一、穷人还是富人?
举个例子。
假如我们需要根据财富将人分成两类:穷人和富人。财富用x表示,拥有为正,负债为负。类别用y表示,0为穷人,1为富人。
三十年前,万元户就算很有钱了,所以将标准定为1万。即:拥有财富量x≥1万的人为富人,<1万的人为穷人。就可以得出这样一个划分模型:
它可以用公式:
来表示。h(x)表示拥有财富的人是富人的概率。如果取0.99为分界点,当h(x)>=0.99时,y=1,为富人,否则,y=0,为穷人。
随着通货膨胀,钱越来越不值钱了。万元户已不算啥,10万才算有钱人。模型需要调整如下:
公式变为:
对比发现,式子中其它部分不变,只有x的系数由4变为了0.5。也就是说,如果评判标准发生了变化,只需要调整x的系数就可以得到新的满足要求的模型。
把系数当成一个参数θ,得到通用公式如下:
问题来了,如果我们不知道评判标准,只知道几组已知的评判结果如下:
如何推测拥有财富6万的人是穷人还是富人?
我们已经知道了评判标准的通用模型,只是参数:
尙不确定。
不过我们可以通过上面的公式用已知评判数据反推。
如果将第一组数据x=10,y=0.99带入,由之前的例子可知θ约等于0.5即可满足要求。
得到评判模型公式如下:
模型曲线:
评判结果:
可以看出,除了x=10,与给定吻合,其它的相差较大。
如果我们以最小的x=-5,y=0.01带入公式:
反推出的评判模型公式如下:
模型曲线:
原数据评判结果:
和给定结果一致。
所以,我们可以认为这个评判模型和实际模型是比较接近的。
回到最初的问题,要想知道财富量为6万的人究竟属于哪一类?只需将x=6带入评判模型公式:
所以y=1,应属于富人。
总结以上,我们根据问题的特点,创建了一个通用,但参数不确定的模型。再根据已知的数据信息,确定模型的参数。最后,用参数已定的模型预测新的未知数据。
其中,由已知信息确定模型参数的过程就叫机器学习。
问题是,为何要选择:
这样一个模型,它是怎么来的?
二、万能公式
从牛顿的F=ma对宏观物理现象的解释,到麦克斯韦方程组对电磁波的描述,再到爱因斯坦、霍金对大一统理论的探索。人类苦苦追求的其实就是一个万能公式,它囊括了万物之理,是宇宙的模型。通过它我们可以解释一切未知的物理现象,宇宙对我们来说也再无秘密可言。
为了得到这个模型,无数的科学家观测记录了大量数据,从中抽象并总结了很多规律,形成了我们目前已知的定理、定律和公式。我们可以把它们看作一个个的子模型。
机器学习也是,如果能有一个描述能力很强的模型,能够囊括我们需要解决的问题的规律。那么我们就可以利用观测到的数据通过训练来确定模型的参数,然后用来预测或解释新的数据和现象。
那到底有没有这样的一个模型呢?
有。
就是指数族分布函数,如下:
其中:
- η是自然参数,包括输入数据和模型参数 ;
- T(y)是充分统计量;
- a(η)保证 p(y;η)的和为1;
大多数概率分布都可以由指数族分布给出,包括正态分布、多项式分布、泊松分布、伽马分布,Beta分布,伯努利分布等。
它就像概率分布的一个万能公式。
而我们现实世界中有很多现象是服从这些分布的,比如穷人富人分类问题其实就是一个典型的伯努利分布问题。
所以,在构造模型的时候就可以考虑这个指数族分布函数。
三、伯努利分布与指数分布族函数
既然指数族分布函数涵盖了伯努利分布,那伯努利分布和指数分布族之间的关系是怎样的呢?
我们知道,伯努利分布如下:
其中,y是可能的取值,只有0和1。Φ是y=1时的概率。
转换成指数分布族函数的样式:
和指数分布族函数标准式子进行对比:
可以看出,当:
时,指数分布族函数就变成了伯努利分布。
四、逻辑回归
有了指数分布族这一利器,让我们重新审视穷富人的分类问题。
根据财富x,进行分类,非富即穷,只有两种选择。是个二分类问题,服从伯努利分布。
既然指数分布族函数涵盖了伯努利分布,我们就将伯努利分布作为描述问题的模型:
其中包含了模型参数和输入x两部分信息。设:
当通过训练确定后,输入财富量x就可以得到y=0或1的概率,进而确定x对应的类别。
但如何确定:b(y)、T(y)、a(η)呢?
因为问题服从伯努利分布。设y表示划分的类别,0-穷人,1-富人。Φ表示富人的概率,1-Φ表示穷人的概率,公式如下:
由伯努利分布和指数族分布之间的关系可知:
连同
一起带入指数族分布,得:
令y=1,也就是说类别为富人的概率:
所以就得到了最终的模型:
这就是最初我们选择这个公式作为模型的由来,这个模型又叫逻辑回归模型。
总结:
之所以会选择这个公式,是由我们选择描述问题的方式决定的。我们选择了伯努利分布来描述我们的问题,自然而然的也就推导出了这样一个公式。
如果选择其它的描述方式,可能就会出来另外一个公式了。
五、sigmoid
神经网络中用到的sigmoid函数,如下:
是不是很眼熟,和我们推导出来的逻辑回归模型函数有着惊人的相似:
为什么会这样呢?
原因是,sigmoid函数,通常位于神经网络的输出层,作为二分类问题的最终输出。它本质上也是一个逻辑回归问题。
所以用它也就自然而然了。
閱讀更多 一根兒蘆葦 的文章