摘要
本文主要介绍什么是机器学习,机器学习的函式类别有哪些,机器寻找函式的三个步骤,以及梯度下降的详细描述,最后用预测神奇宝贝的战斗值的例子来讲解Regression。
机器学习的基本概念
机器学习
(Machine learning):即让机器具备找函式的能力。
不同的函式类别
Regression:函式输出结果为数值
Classification:从设定的选项中选出一个类别当做输出
Structured learning
那么机器如何找一个函式?
步骤1.写出一个带有未知参数的函式。
步骤2.定义一个loss(一个function,L(b,w),输入为b,w; 输出未知参数的值好不好)。
例如:
步骤3.Optimization(最佳化的问题,找w,b使得L的值最小的问题)
用到的方法:gradient descent
gradient descent
1.随机选取一个初始的点w0,b0;
2.计算微分(斜率为负,W增大,L减小;为正则相反);
3.更新w,b找到最好的w,b。
然而线性模型,x1与y成线性关系,太过简单,有很多局限性;因此我们需要更复杂的模型,下述进行讨论:
红线=常数+蓝线,如下图:
0+1=第一段红线;0+1+2=二段;0+1+2+3=三段
我们怎么表示hard sigmoid(蓝色function)?用sigmoid function
不同的w,b,c会形成不同的sigmoid function。当我们改变w时,会改变函式的斜率;改变b会使得函式左右移动;改变c则会改变高度,如下图所示:
红色曲线的函式=0(常数)+1(由c1,b1,w1组成的蓝色function1)+2(由c2,b2,w2组成的蓝色function2)+3(由c3,b3,w3组成的蓝色function3),如下图:
bi+∑wijxi式展开如下:
简化为
然后把r分别通过sigmoid function得到α,把α乘以c再加上得到y。
上述我们有了新的model,那么接下来定义loss( L(θ) )。
新模型的optimization(与之前的类似)
Gradient简写为
更新参数;
以此类推。
Sigmoid 可与看做两个ReLU.
Sigmoid 和relu为常见的activation function
深度学习(Deep learning)
三步骤:
Step1:neural network
Deep=many hidden layers
Neural network:
Step2:goodness of function :gradient descent
Step3:pick the best function
Backpropagation
Chain rule
上述式子中的C对Z’和Z’’的微分怎么求?
情况1:红色的neural是output layer。
情况2:
Regression :
Case study
这里讲案例:预测pokemon的CP战斗力值
一只pokemon用x来表示,xcp表示进化前的cp值,xs表示物种,xhp表示生命值,xw重量,xh高度,y进化后的cp值。
当最好的b=-188.4;w=2.7时;测试数据的平均误差:
从上图可以看到在最高和最低处的预测不是很准确,那么怎样做的更好呢?
找到一个函数如下图:
有么有可能做的更好呢?
得出越复杂的model可以在training data上越来越低,但在testing data上就不是这样。
这情况就叫overfitting。
当考虑Pokmon的种类时,
当考虑身高体重等因素时,
当重新考虑loss的function时,
通过调整λ来决定函数的平滑程度。
得到的结论:pokemon进化后的cp值和进化前的cp值以及物种是有关系的,知道了进化前的cp值和物种几乎可以决定进化后的cp值。