初识机器学习与深度学习

一. 经典机器学习算法(基于数学或者统计学,具有很强的可解释性)

1. KNN分类(K-Nearest Neighbors)

判断一个新数据的类别,就看他的邻居是谁。假设分类一个未知的水果,由尺寸和颜色找到其在坐标轴之间的位置。

计算距离:a=直线距离(欧式距离),x与y的绝对值相加=曼哈顿距离

缺点:先计算新样本与所有样本的距离,由近及远排序,再确定K(奇数)进行分类。若样本数量则庞大,则计算量大且效率低。

2. 决策树

叶子结点=样本分类结果,非叶子结点=样本特征。关键在于谁做整棵树的根节点,接下来的子孙结点又是什么。为了构建决策树,人们找到了一个衡量标准S,在热力学的代表混乱度而在决策树中代表样本种类的丰富度。

构造基本思路:随着深度增加,令S都快速降低。S降低的越快则代表决策树分类效率越高。

缺点:任何样本都是有个例的,一棵树不可能将一个新样本完美的分类。如果可以那一定是过拟合的。

措施:剪枝。分为预剪和后剪。预剪则是在实验开始前规定前提条件,分类到达某一深度则停止训练。后箭则是先找到树,再根据一定条件限制叶子结点个数。

3. 朴素贝叶斯

之所以叫做朴素贝叶斯,是基于样本特征X来预测样本属于的类别Y(不同的交通工具)。因为假设X的特征是相互独立的(这种假设太过于简单粗暴,关键词出现的先后顺序并不影响计算结果,哪怕两句话意思天差地别)。 根据贝叶斯定理,可以得到一个条件概率加上全概率公式。最后选择正确度最高的类别作为分类的结果。

二. 经典深度学习算法(是机器学习的子集)

1. 反向传播

见下文三.3优化详例

2. 梯度下降

见下文三.3优化详例

3. 激活函数

即使多重神经元串联,最后输入输出的数据化简的依然是线性组合,所以哪怕再多的神经元连接,也与单个神经元无异,纯粹的线性组合不能解决更为复杂的问题。激活函数(能求导)的作用就是令神经网络可以逼近任何非线性函数以满足主体的需要,这使得神经网络应用到更多非线性模型中。最简的例子,一条直线永远也无法与一条抛物线拟合,但是添加的激活函数之后,可以把线性函数掰弯变成非线性的预测函数。

如何用:括号内的加权值经过一个非线性的变化sigmoid() 或者 relu()。

三. 深度学习的任务

// 深度学习就是构建一个很庞大的深度神经网络(Deep neural network),相当于找一个合适的函数F(x)=y

常见的神经网络常见输入有三种形式:向量、矩阵/张量(照片都是红绿蓝三基色的矩阵)、序列

例如:F(身高,体重,财产)=寿命,F(一张脸照片)= 这个人的名字。F(一句描述)= 图片。  

常见的神经网络常见输出有三种形式:回归任务(填空题,给确定的答案,根据昨天气温推测今天)、分类任务(选择题,阿尔法狗)、生成任务(结构化简答题,chatgpt生成一张完整图片)

输入形式向量矩阵序列
输出形式回归分类结构化输出
例题
往年3月水位推测明年3月水位向量——回归
根据视频生成字幕序列——结构化输出
编程软件自动填充代码序列——结构化输出
判断图片人物是谁矩阵——分类
判断两段动漫视频是否为一部序列——分类
判断声优是否为同一个人序列——分类
判断淘宝商品配图和标题是否一致序列(一段文字加图片=多模态)——分类 
由蛋白质名字生成其结构序列——结构化输出
摄像头的画面标识出人、路、车(语义分割)序列——结构化输出

总结:分类/回归是结构化学习的基础,分类时用数字表示其类别,有时候需要多模态的数据,比如图片,文字,声音。

四. 如何开始深度学习(即怎么做神经网络,三步走)

1. 定义一个函数F(model)

最简单的深度学习的任务:已知前6s汽车的速度,求第七秒。

解:定义线性模型(Linear Model) Y(预测值)=W(weight权重)X+B(bias偏差),W与B未知。

用数学模拟,模拟和现实即存在偏差,引出loss函数。

2. 定义合适的损失函数loss(衡量自定义的F与实际情况的差异)

Loss function of unknown para(未知参数的函数)

先随机初始化W与B

L (W,B) = | Y - Y |(均绝对值误差,平方则为均方误差)= | WX+B - Y | 。W与B取不同的值则loss也不同。loss的值即可判断W与B的选择的准确与否。

得出loss=4.48,得出W、B取值不太准确的结论。有了loss函数,就可以知道模型和实际的差距,就可以向实际情况靠拢,又引出模型优化概念。

3. 根据损失,对模型进行优化(梯度下降优化法)

优化公式:(令Loss值为最小时,自变量w与b的值是多少)

过程:引入超参数学习率概念learning rate,值不能太大或者太小,影响每次迭代的跨度步长,可能会导致L的取值直接跨过最小值点。

总结:

五. 试玩神经网络

A Neural Network Playground (tensorflow.org)

  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值