【深度学习】(一)机器学习基础

简介: AI人工智能包含的内容十分广泛,对于图像处理而言,机器学习、深度学习或者计算机视觉主要关注图像识别这部分内容,所以重点学习CNN卷积神经网络。今天先从上古时期的机器学习开始。

a942ed055a8f4c4eb20dc2f89f29a5b5.png

计算机视觉是人类希望机器可以像人眼一样去“看”,而机器学习(深度学习)是希望机器可以像人的大脑一样“思考”。

d90757a5520d45fc9bd6907b92ab11f8.png

既然要机器拥有人类的大脑,那就要从人类的大脑结构出发。人脑中的神经网络是一个非常复杂的组织。成人的大脑中估计有1000亿个神经元之多。前人对神经的结构进行了数学建模,进而通过计算机进行数学映射,得到了神经网络。神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器学习技术。

a96881c8fd644a2fa2d32212f0319281.png

1958年,计算科学家Rosenblatt提出了由两层神经元组成的神经网络。他给它起了一个名字--“感知器”(Perceptron)(有的文献翻译成“感知机”,下文统一用“感知器”来指代)。每个神经元都是一个结构相似的独立单元,它接受前一层的输入,并将加权和输入非线性作用函数,最后输出结果传递给后一层。下图为单层感知机:

25f1b5004f054b72a8190b67fe258512.jpg

函数**:一般采用sigmoid和tanh函数,主要是将数据进行非线性变换,将输入压缩到(0,1)和(-1,1)之间。208e3589e7d14e6bb4133ffb587e1170.png

# 激活函数deftanh(x):  
returnnp.tanh(x)  
deflogistic(x):  
return1/(1+np.exp(-x))  

**学习规则**:设置学习率learning_rate和学习轮次epochs,机器学习是一个不断迭代优化的过程,需要学习率来调整实际输出和期望输出的差别。

5dfec6bb93f542b78458ee85066dbe50.png

# 学习率self.weights[i] +=learning_rate*layer.T.dot(delta) 

**目标函数**:主要采用均方误差,几乎所有的机器学习算法最后都归结为求解最优化问题,以达到我们想让算法达到的目标。为了完成某一目标,需要构造出一个“目标函数”来,然后让该函数取极大值或极小值,从而得到机器学习算法的模型参数。如何构造出一个合理的目标函数,是建立机器学习算法的关键,一旦目标函数确定,接下来就是求解最优化问题,这在数学上一般有现成的方案。

9d242fc01f2c40188d00d3971c3637bd.png

# cost/loss functioncost=-tf.reduce_mean(Y*tf.compat.v1.log(hypothesis) + (1-Y) *tf.compat.v1.log(1-hypothesis))

**梯度下降算法**:主要采用SGD、Mini-batch GD,目的就是求解目标函数的最小值。这个过程可以理解为蒙着眼睛下山,每次都朝着梯度下降最快的方向往下走。当然随着不断的发展,之后深度学习还有更好的最优化算法,如Adam。

36b80b989b2e4150a61c5bc2e45f9000.gif

# 调用Tensorflow的API函数GradientDescentOptimizer实现train=tf.compat.v1.train.GradientDescentOptimizer(learning_rate=learning_rate).minimize(cost)

**BP算法**:即误差反向传播算法,BP算法中核心的数学工具就是微积分的链式求导法则。

2673cdb19aca4e57ac225439b14209c7.png


#开始反向计算误差,更新权重  forlinrange(len(a) -2, 0, -1): # we need to begin at the second to last layer  deltas.append(deltas[-1].dot(self.weights[l].T)*self.activation_deriv(a[l]))  
deltas.reverse()  
foriinrange(len(self.weights)):  
layer=np.atleast_2d(a[i])  
delta=np.atleast_2d(deltas[i])  
self.weights[i] +=learning_rate*layer.T.dot(delta)   


目录
打赏
0
1
0
0
2
分享
相关文章
探索AI的未来:从机器学习到深度学习
【10月更文挑战第28天】本文将带你走进AI的世界,从机器学习的基本概念到深度学习的复杂应用,我们将一起探索AI的未来。你将了解到AI如何改变我们的生活,以及它在未来可能带来的影响。无论你是AI专家还是初学者,这篇文章都将为你提供新的视角和思考。让我们一起探索AI的奥秘,看看它将如何塑造我们的未来。
150 3
深度学习中模型训练的过拟合与欠拟合问题
在机器学习和深度学习中,过拟合和欠拟合是影响模型泛化能力的两大常见问题。过拟合指模型在训练数据上表现优异但在新数据上表现差,通常由模型复杂度过高、数据不足或质量差引起;欠拟合则指模型未能充分学习数据中的模式,导致训练和测试数据上的表现都不佳。解决这些问题需要通过调整模型结构、优化算法及数据处理方法来找到平衡点,如使用正则化、Dropout、早停法、数据增强等技术防止过拟合,增加模型复杂度和特征选择以避免欠拟合,从而提升模型的泛化性能。
探索机器学习:从线性回归到深度学习
本文将带领读者从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将通过代码示例,展示如何实现这些算法,并解释其背后的数学原理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和知识。让我们一起踏上这段激动人心的旅程吧!
基于TensorFlow的深度学习模型训练与优化实战
基于TensorFlow的深度学习模型训练与优化实战
191 3
机器学习与深度学习:差异解析
机器学习与深度学习作为两大核心技术,各自拥有独特的魅力和应用价值。尽管它们紧密相连,但两者之间存在着显著的区别。本文将从定义、技术、数据需求、应用领域、模型复杂度以及计算资源等多个维度,对机器学习与深度学习进行深入对比,帮助您更好地理解它们之间的差异。
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
204 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
机器学习和深度学习之间的区别
机器学习和深度学习在实际应用中各有优势和局限性。机器学习适用于一些数据量较小、问题相对简单、对模型解释性要求较高的场景;而深度学习则在处理大规模、复杂的数据和任务时表现出色,但需要更多的计算资源和数据,并且模型的解释性较差。在实际应用中,需要根据具体的问题和需求,结合两者的优势,选择合适的方法来解决问题。
162 0
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
235 6
基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
本项目展示了人脸识别算法的运行效果(无水印),基于MATLAB2022A开发。核心程序包含详细中文注释及操作视频。理论部分介绍了广义回归神经网络(GRNN)、概率神经网络(PNN)、深度神经网络(DNN)和反向传播(BP)神经网络在人脸识别中的应用,涵盖各算法的结构特点与性能比较。

热门文章

最新文章