二元一次方程组:
2x+y=25 (1)
x-y=5 (2)
求解x , y
人的解法:
第一步:将(1)和 (2)左右各自相加, 得3x=30 ,于是 x=10
第二布:将x=10 带入 (1)或者 (2)式,得 y=5
机器(即计算机)的解法:
第一步:给x 和y 各赋予一个初始值:1 和 2
第二步:固定x,调节y,使得(2x+y) 不大于25,同时使得x-y 不大于5
此时y=2, 对于(1)y需要变大,对于(2),y需要变小。那么y不应该变。
第三步:固定y,调节x
此时x=1,y=2,对于(1)x需要变大,对于(2)x也需要变大,那么x=x+1
此时x=2,y=2,带入(1)和(2),x还需要变大
...
...
此时x=7,y=2, 带入(1)和(2),x不能再大了,因为再大x-y就大于5了。
第四步:固定x,调节y。.......
...
...
第N步:x=10,y=5,带入(1)和(2),都符合了,结束循环。
小结
——机器解个二元一次方程比人费劲这么多,那还要机器有毛用?我2步就解出来了。
——因为这是比较简单的方程组,只有两个变量。如果是N元方程组呢?N大于100,大于1000,大于10000的时候人怎么解?这个时候,机器还是可以按照上面的方式,先给N个变量各自一个初始值,然后固定N-1个变量,先调节一个变量。如果有解的话,最后就能把所有的变量算出来。
质疑
——这就是机器学习么?
——是的,这就是一种机器学习,是简化的EM思想,也可以理解为坐标上升法
——就解解方程而已,就算是机器学习,没有实际用处,有个鸡毛用?
——那么咱们就接着这个方程讲个实际应用。
数学模型的问题还原
如果你是一个房地产公司的资产评估员,主要工作是对新的房子估价;你手上有一堆历史已售出房子的买卖记录。让你对新拿到的房产估价,你应该怎么做呢?
假设房子由一些特征代表:面积大小(90,115,120,135,140)、所在楼层(1~30)、整幢楼高度(1~3)、几室(1~5)、几厅(1~2)、朝南还是朝北(南、北、南北通透)、层高(2.5~5m)、小区所在区块(各个区)、开发商(1代表万科、2代表绿城、等等)、物业公司(1万科、2绿城等等)。
我们假设房子的总价和房子的这些特征呈线性关系,那么我们只要计算出每个特征的权重就可以计算出房子的总价了。(为什么要假设是线性关系呢?因为线性模型最简单啊,所谓数学建模就是把问题简化成理想的数学公式或者方程。我们也可以建设房子的总价和特征呈非线性的关系,但是那样的话,就非常复杂了,我们不那么干。)
我们分别用x1,x2,x3,x4,x5,x6,x7,x8代替以上特征,每个特征对应不同的房子有不同的取值。
用w1,w2,w3,w4,w5,w6,w7,w8来表示每种特征的权重。
根据历史已售出房子的买卖记录,就可以列出方程:
w1*90+w2*8+.....+w8*1=210 (比如这条记录是面积为90方的房子,所在楼层是8,等等)
......
......
......
这样我们根据历史售卖记录,就可以列出非常多的这种方程,再通过上面我们讲的计算机的解法,很快就能计算出w1,w2,w3,.....,w8了。这样就解决了一个实际的问题了,是不是也挺简单的。