机器学习(一) 机器学习概述


一、机器学习基本概念简介

1.1机器学习的定义

我们所要求机器所能为我们做的事情均离不开两个最要的模块:输入和输出。比如对于无人驾驶来说,汽车必须根据路段信息来决定车辆的行驶,在此过程中,路段信息就是输入,车俩的行驶就是输出,但问题是他是怎么让输入变成输出的呢。而这就是机器学习所需要做的事情:寻找一个函数根据输入而输出合理的操作,表示为 f(输入)–> 输出,这也是机器学习的定义。

1.2函数的分类

在机器学习中我们知道其定义是找一个函数来根据输入做出合理的输出,在这里介绍两种常见函数:
1.Regression(回归函数):其输出是一个数值。如我们需要预测未来的PM2.5的浓度,当天的PM2.5浓度、气温、臭氧的浓度为输入然后经过一个回归函数来预测明天的PM2.5浓度。
在这里插入图片描述
2.Classification(分类函数):其输出为一个类别。如我们在收到邮件时,常常有些骚扰或者垃圾邮件,这些邮件便是输入,经过分类函数可以将这些归类到“垃圾邮件”类别之中
在这里插入图片描述

1.3如何寻找函数

1.3.1定义函数

根据之前视频播放资讯预测未来的播放量即其他比例
在这里插入图片描述
函数的输入是前一天的资讯,输出是今天的播放量的预测值。我们可以把函数设成一次函数:
y = b +wx1 其中b我们称为偏置参数bias,w为权重参数weight。x1是前一天的播放量,是我们所知道的,称作feature,w和b是未知的,需要我们通过学习得到的,而这样的一个带有未知参数的函数我们称作Model(模型)

1.3.2定义Loss函数

Loss函数的输入是我们在1.31所定义函数的未知参数(parameters)即:L(b, w),输出我们预测的数据更跟实际数据的差别。如:
令L=L(500, 1),则y = b + wx1 -> y = 500 + x1 假设有下面时间的播放量:
在这里插入图片描述
对于2017/1/2这一天,当b=500,w=1时,x1等于2017/1/1的播放量根据所设函数计算y=500+4800 = 5300,即我们预测01/02号这天的播放量是5300,但从开始的资讯中我们可知实际这天的实际播放量是4900,则en=abs(5300 - 4900)。同样的方法,我们都可以算出每一天的误差。则最终的Loss = 1/N ∑en,N表示有N份学习资料。我们也可以推出在不同b和w值下Loss是不一样的,而机器要做的就是寻找一组最合适的b,w值从而使Loss最小,提高预测的精确度

1.3.3定义Optimization(优化函数)

在 1.3.2 中我们知道要寻找一组最合适的 b,w 值的过程就是不断优化未知函数的过程,而最常用的方法就是梯度下降法(Gradient Descent)

1.3.3.1假设只有w需要优化时

w* = arg minLoss,假设Loss函数与w关系如下:
在这里插入图片描述
首先随机找一个w的初始值w0,计算在w0的L对w的微分∂L/∂w(w=w0)也就是斜率:
在这里插入图片描述
从图中我们可以观察到此偏导是负的,所以在w0左边的虚线比较高,右边比较低,这样的话我们可以提高w的值来使Loss值减小(偏导如果是正的则相反),有:
在这里插入图片描述
在图中又有了一个新的参数为η,我们称作学习率(Learing rate),η值越大,w值更新越快,越小则w值更新越慢。而η是需要我们在实验过程中手动设置的参数,我们将这一类参数叫做超参数(hyperparameters),由图我们也能得出w与Loss的微分关系:w1-w0=η*∂L/∂w(w=w0),以此方法训练数据得到Loss的最小值,此时gradient为0
同样,b的值也是以这种方法不断更新

1.3.3.2将b,w的方向组合在一起时

w*,b* = arg minLoss,可视化后:
在这里插入图片描述
当w* = 0.97(接近1),b* = 100(一般设的比较小)Loss值达到最小480,因此我们拿出这组数据来预测一下;
在这里插入图片描述
可以看出大致的方向是能够拟合的,但是预测的播放量的低估总是比实际的出现晚一两天,这可能出现的原因是我们在预测是只用前一天的数据就行预测,数据量太少,因此我们就要修改我们的Model。

1.4函数的修改

1.4.1取多天的资讯进行训练

考虑7天时,函数由y = b + wx1 变成y = b + ∑wjxj(j从1到7)每一天的播放量都乘上对应的w值,Loss值变化及对应的b,w值如下:
在这里插入图片描述
L表示训练数据上的损失,L‘表示预测未知数据的损失。随着参考天数的增加,Loss值实在减小,而表格中w有正由负,负表示前一天的播放量与我们预测的那天的播放量是成反比的,从函数的表达式我们也能得到这个结论,w为正则相反。
当我们继续考虑28天和56天时:
在这里插入图片描述
我们发现考虑天数对Loss值的影响已经变化不大,因此这应该是极限了。
而以上我们所设和修改后的函数模型称作线性模型(Linear Models)

二、深度学习基本概念简介

前言:Linear Models对我们解决应用场景问题来说太过于简单了,因为Linear Medols永远都只是一条直线,你可以通过修改w值来改变斜率和修改b来修改斜距,但是其永远是直线。在这里插入图片描述
而我们需要的可能是一段斜率是正的,而一段是负的,此时线性模型就永远不能满足这一点,显然Linear Models有着许多的限制,而这种来自于Models的限制叫做Model Bias,注意不是我们上面所设函数中的b参数。因此,我们需要更加有弹性的函数来实现图中红色线段。

2.1sigmoid函数定义

上述的红色曲线可以由一个常数项加上一堆s型折线的和来实现
在这里插入图片描述
从0,1,2,3蓝色曲线分别取与红色曲线相对应的部分即可构成红色曲线。依照这种方法,无论所求的曲线有多复杂,折点有多多,我们都可以用一个常数项加不同数的s性折线构成。而要写出s性折线的函数表达式并不是很容易,所以我们可以用一条光滑的曲线去逼近它,这个曲线函数就是sigmoi函数:
在这里插入图片描述
从sigmoid函数表达式中y = c*[1 / (1 + e-(b + wx1))](注意表达式中的b是Models bias)看出当x1非常大是函数值会收敛到c的位置,当x1非常小时,函数值会收敛到0。sigmoid函数可写成y = c * sigmoid(b + wx1)

2.2sigmoid函数如何逼近各种线段

1.改变w值可以改变sigmoid函数图像的斜率
2.改变b的值可以让sigmoid函数图像左右移动
3.修改c的值可以改变sigmoid函数图像的高度
在这里插入图片描述

2.3建立更加弹性的函数

2.3.1更多的Model Features

当我们用很多的sigmoid函数去形成一条复杂的函数图像时,每一个sigmoid函数中参数c,b,w都是不一样的。
当我们只用一天的数据去预测未来的播放量时,函数可变成
在这里插入图片描述
其中i表示sigmoid函数的个数
当用多天数据时,函数可变成
在这里插入图片描述
其中i代表sigmoid函数个数,j代表天数,xj表示第前j天的播放量

2.3.2sigmoid函数的计算方式

当j:1,2,3;i:1,2,3时,计算图如下:
在这里插入图片描述

其中x1,x2,x3表示该天的播放量,wij表示乘给xj的播放量的weight。把b1+w11x1+w12x2+w13x3相加送到第一个sigmoid函数中计算,第二、三个sigmoid函数也是这样计算。为了简化计算过程,我们可以用矩阵的方法来计算,令
r1=b1+w11x1+w12x2+w13x3
r2=b2+w21x1+w22x2+w23x3
r3=b3+w31x1+w32x2+w33x3
在这里插入图片描述
再令a=sigmoid(r)=1 / (1 + e-r),再乘每个sigmoid函数的c再相加有!
在这里插入图片描述
如果将三个sigmoid函数的过程整合成矩阵计算的话,如下:
r = b + wx
a = sigmoid(r
y = b + cT(c 矩阵的转置)a
y = b + cT sigmoid(b + wx

2.4新Loss

y = b + cT sigmoid(b + wx)中,我们将所有矩阵的每一列或者每一行整合在一起得到一个大的矩阵 θ
在这里插入图片描述

所以Loss函数每一组的参数可以用 L(θ)来表示,计算方法跟只有w,b时是一样的,只不过现在可能是几百,几千个参数

2.5新Optimization

计算方法参数的更新方法跟只有w,b时是一样的
θ* = arg minLoss θ = [θ1 θ2 θ3…]T

2.6batch与epoch

当我们有一笔N资料时,要去计算Loss时,我们可以将N笔资料分成M份,每一份有N/M笔资料,N/M笔资料就叫做一个batch,而我们可以先计算每一个batch的Loss’,然后更新参数 θ,计算出gradient。当所有batch都看过一遍之后叫做epoch

2.7ReLU(Rectified Linear Unit)函数

ReLU是现在深度学习最常用的激活函数,表达式为
y = b + ∑ci max(0, ∑wijxj)
可以看出ReLU是分段函数,当∑wijxj > 0时,y = ∑wijxj,当∑wijxj <= 0时,y = 0 图像为
在这里插入图片描述
且可以看出两个ReLU函数才能组成一个sigmoid函数
在这里插入图片描述
它们都是激活函数,一般来说ReLU的拟合效果比sigmoid函数好,因此ReLU更加常用

2.8多层网络及深度学习的定义

之前所有的讨论都是只经过一次激活函数,但是我们可以通过多层的激活函数进行预测结果,一层激活函数的输出可以作为下一层的输入,所以层与层之间的参数是不相同的
在这里插入图片描述
注意两个 a 向量是不同的
在预测我们一开始的视频播放量时,当经过一百层的ReLU函数后,Loss与预测和实际播放量的拟合程度如下图:
在这里插入图片描述
在这里插入图片描述
在上面的许多层的ReLU或者sigmoid,被称作Neuron(神经元),很多的Neuron就叫做Neural Network,许多许多的隐藏层就叫做Deep,而这一套分析计算技术就叫做Deep Learning

三、后话

此系列文章是我学习深度学习的一些笔记,可能过程中有些错误,欢迎大家指正,不胜感激!与君共勉

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 基于机器学习的路面病害检测是利用计算机视觉和机器学习技术对道路表面上的病害进行自动检测和识别的过程。其主要流程包括图像采集、图像预处理、特征提取、分类器训练和病害检测等几个步骤。 在图像采集阶段,利用摄像机或者其他设备对道路表面进行拍摄,获取病害图像。在预处理阶段,对图像进行去噪、图像增强等处理,以提高识别精度。在特征提取阶段,利用计算机视觉技术对图像进行分析,提取出病害的特征,例如形状、纹理、颜色等。在分类器训练阶段,利用机器学习算法对提取的特征进行训练,建立病害分类模型。最后,在病害检测阶段,利用训练好的分类器对新的道路病害图像进行检测和识别。 基于机器学习的路面病害检测具有自动化、高效性和准确性等优点,可以有效提高道路病害的检测速度和精度,为道路维护和管理提供了有力的支持。 ### 回答2: 基于机器学习的路面病害检测是一种利用机器学习算法和技术来自动识别和检测路面病害的方法。路面病害包括裂缝、坑洞、龟裂等,它们对道路的安全性和可行性都有重要影响。 这种方法通常包括以下步骤:首先,需要采集路面图像或视频数据,可以使用传感器、摄像机等设备进行采集。接下来,要对这些数据进行预处理,包括去除噪声和图像增强等操作,以提高检测的准确性和性能。 然后,需要使用机器学习算法对预处理后的数据进行训练,这一步骤称为模型训练。训练数据可以包括已标记的正常路面和含有病害的路面图像,让机器学习算法能够学习到不同病害类型的特征和模式。常用的机器学习算法包括支持向量机、决策树、神经网络等。 一旦模型训练完成,就可以使用该模型来进行路面病害检测了。将新的路面图像输入到模型中,模型将根据之前学到的特征和模式进行预测和分类,判断该图像是否存在路面病害。预测结果可以使用不同的方式进行呈现,比如可以可视化成图像或标记出病害位置。 基于机器学习的路面病害检测具有高效性和准确性的优势。相比传统人工检测方式,这种方法能够实现自动化和快速检测,节省人力资源和时间成本。而且,由于机器学习可以不断学习和优化,所以检测效果也会随着时间的推移而得到改善。因此,基于机器学习的路面病害检测在道路维护和交通安全方面有着广阔的应用前景。 ### 回答3: 基于机器学习的路面病害检测是将机器学习算法应用于路面病害检测的一种方法。路面病害是指路面上的裂缝、坑洼、龟裂等损坏,这些病害如果得不到及时发现和修补,会对交通安全和行车舒适度产生很大的影响。 基于机器学习的路面病害检测主要包括以下几个步骤。首先,需要收集大量的路面病害样本数据,包括病害图像、病害位置和病害严重程度等信息。然后,利用这些样本数据进行数据预处理,如图像去噪、裁剪和尺度归一化等操作,以提高后续的模型训练效果。 接下来,选择适合的机器学习算法进行模型训练。常用的算法包括支持向量机(SVM)、卷积神经网络(CNN)和深度学习等。在模型训练过程中,需要将样本数据划分为训练集和测试集,通过迭代优化算法参数,使得模型能够准确地判断路面病害的存在与严重程度。 最后,将训练好的模型应用于实际路面病害检测中。利用摄像头等设备获取实时的路面图像,经过图像处理和特征提取,然后输入已训练好的模型进行预测。模型会根据图像的特征进行病害识别和分类,并判断病害的严重程度,进一步提供相应的维修建议。 基于机器学习的路面病害检测具有高效、准确、自动化等特点。它能够大大提高路面病害检测的效率,减少人工巡检的工作量,降低维修成本,同时能够实现对路面病害的及时监测和预警,有助于改善道路交通的安全性和舒适性。这种技术的发展前景较好,将在未来的交通领域得到广泛应用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

八岁爱玩耍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值