深度学习算法基础

简介: 深度学习算法基础

1, 基本概念

一,欧氏距离与余弦相似度(cos距离)

专题-机器学习实践余弦相似度 | 文本分析:基础

1.1,余弦相似度

通过对两个文本分词,TF-IDF 算法向量化,利用空间中两个向量的夹角,来判断这两个向量的相似程度:(计算夹角的余弦,取值 0-1)

  • 当两个向量夹角越大,距离越远,最大距离就是两个向量夹角 180°;
  • 夹角越小,距离越近,最小距离就是两个向量夹角 0°,完全重合。
  • 夹角越小相似度越高,但由于有可能一个文章的特征向量词特别多导致整个向量维度很高,使得计算的代价太大不适合大数据量的计算。

计算两个向量a、b的夹角余弦:我们知道,余弦定理:cos(θ)=a2+b2+c22abcos(\theta) = \frac {a^2+b^2+c^2}{2ab}cos(θ)=2aba2+b2+c2 ,由此推得两个向量夹角余弦的计算公式如下:cos(θ)=ab∣∣a∣∣×∣∣b∣∣=x1x2+y1y2x12+y12x22+y22cos(\theta) = \frac {ab}{||a|| \times ||b||} = \frac {x_{1}x_{2}+y_1y_2}{\sqrt{x^2_1+y^2_1}\sqrt{x^2_2+y^2_2}}cos(θ)=a×bab=x12+y12x22+y22x1x2+y1y2(分子就是两个向量的内积,分母是两个向量的模长乘积)

1.2,欧式距离

在欧几里得空间中,欧式距离其实就是向量空间中两点之间的距离。点 x=(x1,...,xn)x = (x_{1}, ..., x_{n})x=(x1,...,xn)y=(y1,...,yn)y = (y_{1}, ..., y_{n})y=(y1,...,yn) 之间得欧氏距离计算公式如下:d(x,y)=((x1−y1)2+(x2−y2)2+...+(xn−yn)2)d(x,y) = \sqrt {((x_{1}-y_{1})^{2} + (x_{2}-y_{2})^{2} + ... + (x_{n}-y_{n})^{2})}d(x,y)=((x1y1)2+(x2y2)2+...+(xnyn)2)

1.3,余弦相似度和欧氏距离的区别

  • 欧式距离和余弦相似度都能度量 2 个向量之间的相似度
  • 放到向量空间中看,欧式距离衡量两点之间的直线距离,而余弦相似度计算的是两个向量之间的夹角
  • 没有归一化时,欧式距离的范围是 [0, +∞],而余弦相似度的范围是 [-1, 1];余弦距离是计算相似程度,而欧氏距离计算的是相同程度(对应值的相同程度)
  • 归一化的情况下,可以将空间想象成一个超球面(三维),欧氏距离就是球面上两点的直线距离,而向量余弦值等价于两点的球面距离,本质是一样。

2,容量、欠拟合和过拟合

  • 模型容量是指模型拟合各种函数的能力,决定了模型是欠拟合还是过拟合。
  • 欠拟合就是指模型的训练误差过大,即偏差过大,表现为模型不够”准“,优化算法目的在于解决欠拟合问题。
  • 过拟合就是指训练误差和测试误差间距过大,即方差过大,表现为模型不够”稳“,正则化目的在于解决过拟合问题。
  • 机器学习模型的目的是解决欠拟合和过拟合的问题,这也是机器学习算法的两个挑战。

训练误差 train error,泛化误差 generalization error,也叫测试误差(test error)。

3,正则化方法

  • 正则化是指我们修改学习算法,使其降低泛化误差而非训练误差。 正则化是机器学习领域的中心问题之一,只有优化能够与其重要性相媲。
  • 正则化一个学习函数为 f(x;θ)f(x; θ)f(x;θ) 的模型,我们可以给代价函数(损失函数)添加被称为正则化项(regularizer)的惩罚。
  • 正则化是一种思想(策略),给代价函数添加惩罚只是其中一种方法。另外一种最常用的正则化技术是权重衰减,通过加入的正则项对参数数值进行衰减,得到更小的权值。当 λ\lambdaλ 较大时,会使得一些权重几乎衰减到零,相当于去掉了这一项特征,类似于减少特征维度。

4,超参数和验证集

  • 普通参数指算法权重 www 的值,是可以通过学习算法本身学习得到。超参数的值不是通过学习算法本身学习出来的,可通过验证集人为选择合适的超参数
  • 将训练数据划分为两个不相交的子集,即训练集和验证集,训练集用于学习普通参数,验证集用于估计训练中或训练后的泛化误差,更新超参数(“训练超参数”)。通常,80% 的训练数据用于训练,20% 用于验证。
  • 交叉验证方法适合小规模数据集(例如几百上千张图片)训练模型的情况。

5,估计、偏差和方差

  • 统计领域的基本概念,例如参数估计、偏差和方差,对于正式地刻画泛化、欠拟合和过拟合都非常有帮助。偏差和方差的关系和机器学习容量、欠拟合和过拟合的概念紧密相联
  • 偏差和方差度量着估计量的两个不同误差来源。偏差度量着偏离真实函数或参数的误差期望。而方差度量着数据上任意特定采样可能导致的估计期望的偏差。

6,随机梯度下降算法

  • 随机梯度下降算法是目前最为广泛应用的一种优化算法,形式为 θ=θ−ϵgθ=θ − ϵgθ=θϵgϵϵϵ 是学习率,ggg 是梯度,θθθ 是权重。
  • 随机梯度下降优化算法不一定能保证在合理的时间内达到一个局部最小值,但它通常能及时地找到代价函数一个很小的值,并且是有用的。


相关文章
|
3天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
92 55
|
12天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
83 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
6天前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如"How are you"、"I am fine"、"I love you"等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的优化算法及其应用
【10月更文挑战第8天】 本文将探讨深度学习中常用的优化算法,包括梯度下降法、Adam和RMSProp等,介绍这些算法的基本原理与应用场景。通过实例分析,帮助读者更好地理解和应用这些优化算法,提高深度学习模型的训练效率与性能。
188 63
|
9天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于深度学习网络的宝石类型识别算法matlab仿真
本项目利用GoogLeNet深度学习网络进行宝石类型识别,实验包括收集多类宝石图像数据集并按7:1:2比例划分。使用Matlab2022a实现算法,提供含中文注释的完整代码及操作视频。GoogLeNet通过其独特的Inception模块,结合数据增强、学习率调整和正则化等优化手段,有效提升了宝石识别的准确性和效率。
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
77 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
1月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
77 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
79 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
81 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
2月前
|
机器学习/深度学习 数据采集 算法
如何在一夜之间成为模型微调大师?——从零开始的深度学习修炼之旅,让你的算法功力飙升!
【10月更文挑战第5天】在机器学习领域,预训练模型具有强大的泛化能力,但直接使用可能效果不佳,尤其在特定任务上。此时,模型微调显得尤为重要。本文通过图像分类任务,详细介绍如何利用PyTorch对ResNet-50模型进行微调,包括环境搭建、数据预处理、模型加载与训练等步骤,并提供完整Python代码。通过调整超参数和采用早停策略等技巧,可进一步优化模型性能。适合初学者快速上手模型微调。
118 8