李宏毅深度学习课程笔记总结

**

一、Different types of Functions

**
我们将机器学习进行许多的分类,其中分为以下几种
classification:分类问题
即要机器做选择题
regression:回归问题
即找到一个函数 function,通过输入特征 x ,输出一个数值 Scalar

举例说明:
股市预测(Stock market forecast)
    输入:过去10年股票的变动、新闻咨询、公司并购咨询等
    输出:预测股市明天的平均值

自动驾驶(Self-driving Car)
    输入:无人车上的各个sensor的数据,例如路况、测出的车距等
    输出:方向盘的角度

商品推荐(Recommendation)
    输入:商品A的特性,商品B的特性
    输出:购买商品B的可能性
两大领域之外,还有
Structured Learning:机器产生有结构的东西的问题(机器学会创造)

二、实现回归(regression)的步骤

step1、首先要设计一个model(模型)

李宏毅深度学习课程笔记总结_第1张图片
通过对函数的理解,我们可以通过最简单的线性模型(即线性函数),来一步步的加深对模型的描述。
注:model:就是一个带有未知parameter 的 function

step2、goodness of function(确定评价函数)

在我们设计好一个模型后,就可以通过输入cp值来产生数据了。

而我们产生的数据一定是有误差的,那么怎么样将这些误差作为一个考量的依据呢,我们通过一个叫损失函数(Loss function)的东西来判定模型的好坏。
李宏毅深度学习课程笔记总结_第2张图片
domain knowledge(换句话来说,你对要设计的这个model有着什么样的理解,打算用什么样的函数来描述,这就是领域知识)
注:loss:多个训练出来的值,对比出来的平均误差
label:真实的数值
注意:判断loss并不是只有这一种函数,在我们判断一个loss的时候,可以有很多种方式(目前见到的有e=y-y与e=(y-y)²这两种)
即MAE和MSE

我们通过不同的parameter可以求出不同的loss,而根据loss做出的误差图就叫Error Surface。
李宏毅深度学习课程笔记总结_第3张图片

step3、optimization

最佳化的问题
唯一用到的,Optimization的方法:gradient descent 即梯度下降
李宏毅深度学习课程笔记总结_第4张图片
如图,如何使用gradient descent的方法来求一个w使得loss达到最小呢?

1,对于某一随机点,我们求其斜率,即,w这个参数对loss的微分
理由:我们可以通过切线的斜率来判断其走势,即是在变大还是在变小,这样就可以进行“移动”。
2,我们需要确定一个learning rate,来确定移动的距离。它取决于当前点的斜率,即斜率大时步伐可以大一点,斜率小时可以小一点。
除此之外,还要判断的是当前点的微分。用η来表示。
其中learning rate 是自己设置的一个参数,用来调整学习速率
我们不难看出,gradient descent求得的w很有可能是一个local minima,这是个会产生的问题(但是是个假问题 )
local minima:局部最小(类比数学中的极值)
Hyperparameters(超参数)

以上是对一个参数的例子,不难看出,多个参数时进行的步骤是近似的,仍需要各个参数分别来对loss微分。这样就能得出最终的结果

Linear model

李宏毅深度学习课程笔记总结_第5张图片
我们最终能否准确的得到正确的结果,减小其误差。
最终取决的还是你对这个模块涉及的内容的理解程度,即Domain Knowledge
而这样的简单模型很难做到一些稍微复杂的情况,所以它也有他的model bias,即某些情况是你永远无法“模仿”出来的

线性模型 Linear models
model bias:模型的限制(缺陷)
threshold:阈值
Sigmoid Function

李宏毅深度学习课程笔记总结_第6张图片
我们把之前进行的三个步骤叫做“训练”,然而,数据仅仅是在已知条件下训练是不够的,我们需要的事其在未知情况下给我们预测出最合理的结果。

Piecewise Linear Curves

我们对于一些曲线(或多条直线组成的)采用分段线性化( Piecewise Linear Curves)来模仿其功能
李宏毅深度学习课程笔记总结_第7张图片
基于这种复杂的线段,我们需要写一个更复杂的,更有弹性的,有未知参数的 Function
李宏毅深度学习课程笔记总结_第8张图片
这个蓝色的 Function,它的特性是

当输入的值,当 x 轴的值小於某一个这个 Flash Hold 的时候,它是某一个定值,
大於另外一个 Flash Hold 的时候,又是另外一个定值,
中间有一个斜坡

而实现一个红色这样的线(Piecewise Linear 的Curves)本质就是多个蓝色的线相加
李宏毅深度学习课程笔记总结_第9张图片
而sigmoid函数则更加精细化
李宏毅深度学习课程笔记总结_第10张图片
我们通过调整b 跟 w 跟 c,就可以产生出不同种类的sigmoid函数,进而可以形容不同的function
李宏毅深度学习课程笔记总结_第11张图片
李宏毅深度学习课程笔记总结_第12张图片
所以对于像上方这种有多个转折点的函数图像,我们就使用多个sigmoid相加起来,即在这里插入图片描述
而我们在计算时可能会用到多个feature,不是只用一个 Feature,
我们这边用 j 来代表 Feature 的编号

举例来说刚才如果要考虑前 28 天的话,j 就是 1 到 28,考虑前 56 天的话,j 就是 1 到 56,那如果把这个 Function,再扩展成我们刚才讲的上面这个,比较有弹性的 Function 的话那也很简单,我们就把 Sigmoid 裡面的东西换掉,本来这边是
在这里插入图片描述
在引入我们刚刚提及的多个sigmoid相加,可以得到
在这里插入图片描述
对于这个式子,我个人是从两反面来理解的,首先括号里面的是我们将多组数据作为一组(神经元的思想),往往这样做的目的是使得偏差更小,其次外面的是用来描述一个sigmoid function,而多个相加是为了描述出 Piecewise Linear 的 Function或者是更加复杂的Continuous 的 Function
而在这个式子中,对于不同的w,h,c我们有不同的变换,具体如下图所示:
李宏毅深度学习课程笔记总结_第13张图片
李宏毅深度学习课程笔记总结_第14张图片

而我们通过线性代数的概念,不难看出,我们可以将这样的式子给列为矩阵相乘(更简单的表示,也是为了引入数学概念进而更进一步讨论问题)
李宏毅深度学习课程笔记总结_第15张图片
CiBiWi中的i表示同一个sigmoid函数,xj表示一个函数的不同的特征,wi表示不同的权值
而wij表示wi*wj

李宏毅深度学习课程笔记总结_第16张图片
我们在这里将所有未知量统称为θ向量
李宏毅深度学习课程笔记总结_第17张图片
到了这里,我们重新定义了所有的未知量并称位θ向量,作为机器学习的第一步
李宏毅深度学习课程笔记总结_第18张图片

你可能感兴趣的:(机器学习,python,深度学习,神经网络,人工智能)