🎊学习日记|Day 1 了解AI技术的基础知识
00 分钟
2023-4-22
2023-8-26
date
password
icon
hashtag
标题
勘误
type
status
slug
summary
tags
category
URL
AI summary
AI custom autofill
贴文
类型
Status
标签
🪄
Text
Multi-select

写在学习前

今天学习的其实主要还是概念部分,白天因为都在外边(散步🚶+FAF🎵)所以只能晚上来速效学习法啦,哈哈哈哈哈
今天主要学习范围的有以下三个点:
机器学习的概念
之前对机器学习的书籍浅尝辄止过,所以今天主要是以复习概念点以及深入了解各类算法的特点及其应用场景。
AI的应用及局限性
我打算让AI帮我总结这一部分的内容😏
Python基础
读计算机时学了十几种语言,但是没有python😭,不过别的别的学了也跟没学一样,不仅仅是忘记了更多的是我上学时候没有好好学习🤬
今天主要学习python的常用库(基础语法我能力迁移一下吧,hhhhhhh
 

学习笔记

1. 机器学习的基本概念和算法

机器学习是一项重要的人工智能技术,其应用广泛,从自然语言处理到计算机视觉和语音识别等领域都有着广泛的应用。机器学习可以让计算机从数据中学习并自动改进,从而更好地处理未来的数据。机器学习可以分为多个类型,每种类型都有其独特的应用场景和限制。
以下内容是对常见算法的介绍:

1.1. 监督学习(Supervised Learning)

监督学习是机器学习中最常见、最基础的算法之一。在监督学习中,计算机从带有标签的数据中学习,然后预测新的数据
问题:过拟合,即模型在训练集上表现很好,但在测试集上表现较差。
为了避免过拟合,可以使用正则化等技术。
数据集:通常被分为训练集和测试集。
训练集用来训练模型,测试集用来验证模型的性能。
应用:监督学习可以用于图像分类、语音识别、文本分类等任务。
优点:可以得到精确的预测结果。
缺点:需要大量的标记数据。
  • 如果数据集不足或没有足够的标记数据,可能需要使用其他类型的机器学习算法。

1.2. 无监督学习(Unsupervised Learning)

与监督学习相比,无监督学习并不需要人工标注的数据集,而是通过对数据本身的分析和处理,从中发现潜在的模式和规律

聚类(Clustering)

是无监督学习中应用最广泛的问题之一。聚类是将相似的数据点分为一组,不同组之间的数据点差异较大。
目标:是将数据点分组,使得同一组内的数据点相似度较高,不同组之间的数据点相似度较低。
常用算法:K-Means、层次聚类等。其中K-Means是最常用的聚类算法之一,它将数据点分为K个簇,每个簇的中心点是该簇内所有数据点的平均值。

异常检测(Anomaly Detection)

目标:找出与大多数数据点不同的数据点,这些数据点可能是数据中的错误、离群点或者是需要特殊处理的数据。
应用:金融领域,异常检测可以用于检测信用卡欺诈、网络攻击等异常行为。
常用算法:有K近邻算法、基于密度的离群点检测算法等。

降维(Dimensionality reduction)

目标:将高维数据映射到低维空间中,同时尽可能保留原始数据的结构和特征。
应用:图像处理、自然语言处理等领域。
常用算法:主成分分析(PCA)、t-SNE等。
优点:在于它可以在没有标记数据的情况下发现数据之间的潜在模式和关系,因此对于大规模数据集的处理非常有用。
缺点:由于缺乏标记数据,无监督学习的预测精度通常较低。如果数据集不适合监督学习,无监督学习可能会是更好的选择。

1.3. 半监督学习(Semi-Supervised Learning

半监督学习是介于监督学习和无监督学习之间的一种算法,它既利用了标记数据,也利用了未标记数据。在半监督学习中,部分数据有标签,部分数据没有标签。模型需要使用有标签数据训练,然后使用未标记数据进行预测。
应用:半监督分类,即将未标记的数据点分为已知的几类中的一类。半监督学习还可以用于半监督聚类、半监督降维等。常应用于领域,如图像识别、自然语言处理和信号处理等。
优点:可以使用较少的标记数据获得精确的预测结果,这对于那些标记数据较少但需要高精度预测的任务非常有用。
缺点:是需要较多的计算资源,因为它需要使用未标记数据进行训练和预测。如果数据集中有一部分标记数据,半监督学习可能是更好的选择。

1.4. 强化学习(Reinforcement Learning)

强化学习是机器学习中的一种算法,其目标是通过与环境的交互来学习最优策略。在强化学习中,模型需要从环境中获取奖励或惩罚信号,以调整策略。强化学习的一个典型问题是马尔可夫决策过程,即在状态转移的过程中,如何选择最优的行动,以获得最大的奖励。
应用:在智能交通中,强化学习可以用于交通信号灯的控制。
优点:通过与环境的交互学习最优策略。
缺点:是训练时间较长。如果应用需要与环境进行交互或需要学习最优策略,则强化学习可能是更好的选择。

1.5. 拓展

1.5.1 K-means和K临近(KNN)

K-means是一种聚类算法。用于将数据点分组到k个簇中,其中k是用户定义的参数。它通过最小化数据点和其分配的质心之间的平方距离来工作,其中质心是该簇中所有数据点的平均值。
优点:简单而高效。
缺点:其中一个主要限制是需要用户事先指定集群数k,这在某些情况下可能具有挑战性。另一个限制是它对质心的初始选择敏感,这可能导致相同数据集的不同解决方案。
应用:图像分割,文档聚类和客户细分。它还经常用作比较更先进的聚类算法的基准算法。
KNN是一种分类算法,基于实例的学习方式。当需要对一个新的样本进行分类时,将其与训练样本中的所有向量进行比较,并找出最相似的K个向量。然后,通过多数投票的方式,将新样本分配到最近邻居所属的类别中。
应用:分类问题,尤其是在数据集较小的情况。回归问题,通过这些向量的类标签的平均值,预测新样本的类标签。
优点:是分类速度快,容易理解和实现。
缺点:处理大型数据集时会变得很慢,而且需要存储所有的训练数据。因此,在实际使用中,需要仔细考虑如何选择最佳的K值,以及如何优化算法以提高性能。

1.5.2. tips

  1. 深度学习应用中,模型的训练和调优需要大量的时间和计算资源。为了提高模型性能,可以使用更多的数据、更复杂的算法或更高级的硬件。权衡计算资源和模型性能之间的平衡,并根据数据集和应用场景选择合适的机器学习算法。
  1. 在自然语言处理应用中,语言的多样性和歧义性也会对模型的准确性产生影响,需要考虑这些因素并进行适当的处理。此外,数据质量和样本量的问题也是常见的挑战。如果数据质量不好或样本量太少,模型的性能会受到影响。因此,需要选择合适的数据集并进行数据清洗和预处理。

2. 机器学习的应用及局限性

2.1. 机器学习的应用场景

机器学习技术在不同领域的应用范围非常广泛,可以帮助人们更好地利用大量的数据资源,并提供更准确、更高效的决策支持。
金融领域,它可以用于信用评估、风险管理等任务,以提供更准确的决策支持。
它可以帮助金融机构分析大量的数据,识别潜在的风险因素,并提供预测和决策支持。这种技术在预测贷款违约、市场行情等方面都有着广泛的应用。
医疗领域,机器学习技术可以用于疾病预测、诊断等任务,以提高医疗水平。
它可以分析大量的医疗数据,识别潜在的疾病因素,并提供预测和治疗支持。这种技术在癌症筛查、糖尿病诊断、器官移植和药物研究等方面都有着广泛的应用。
物联网领域,机器学习技术可以用于智能家居、智能交通等任务,以提供更便捷的生活方式。
它可以分析大量的物联网数据,识别潜在的模式和趋势,并提供智能决策支持。这种技术在智能交通管理、环境监测、智能家居控制等方面都有着广泛的应用。
除了以上领域,机器学习技术还可以在广泛的领域中应用,例如能源、教育、军事、零售等。例如,在能源领域,机器学习技术可以用于天然气、石油和电力行业,以优化生产和提高效率。在教育领域,机器学习技术可以用于个性化教育和学生评估等方面。在军事领域,机器学习技术可以用于情报分析和决策支持等方面。在零售领域,机器学习技术可以用于预测销售和改进用户体验等方面。

2.2. 机器学习的局限性

数据质量。如果数据质量不好或样本量太少,模型的性能会受到影响。同时,在某些场景下,机器学习算法的解释性不够好,难以解释算法的决策过程。这些问题需要在应用机器学习技术时予以考虑和解决。
数据隐私和安全。机器学习算法需要处理大量的数据,这些数据中可能包含个人身份信息、个人偏好和敏感信息等,如果这些信息泄露或被滥用,将会给个人和组织带来严重的损失。因此,保护数据隐私和安全已经成为机器学习应用中的重要问题之一。
为了保护数据隐私和安全,机器学习算法需要采取一系列措施。例如,数据加密是一种常见的保护数据隐私和安全的方式。在数据加密的过程中,数据被转换为一种无法识别的形式,只有拥有相应密钥的人才能解密。此外,限制对数据的访问权限也是保护数据隐私和安全的有效措施。通过限制对数据的访问权限,可以确保只有授权的人员才能访问数据,并且对不同级别的用户分配不同的访问权限。

3. Python中的AI相关的库和框架

3.1. TensorFlow

TensorFlow是最初为谷歌内部使用而开发的开源机器学习框架。旨在提供一种灵活的、可扩展的、高效的机器学习框架。它通过提供一个可移植的、跨平台的计算图模型来简化了机器学习的开发和实现,同时也提供了一个丰富的开发者社区和支持体系。
应用:深度神经网络、卷积神经网络、循环神经网络、自编码器等等,这些模型可以应用于图像处理、自然语言处理、语音识别等各种机器学习任务。
功能:TensorFlow 除了提供基础的机器学习功能之外,还提供了许多高级功能,如分布式训练、自动微分、模型优化等等。这些功能可以帮助开发者更好地完成复杂的机器学习任务,并提高模型的性能和效率。
特点:计算图(Computation Graph)。计算图是一个由节点和边组成的数据结构,节点表示计算操作,边表示数据依赖关系。TensorFlow 将计算过程表示为一张计算图,然后通过计算图来完成模型的训练和推理。这种设计使得 TensorFlow 能够高效地利用计算资源,如 CPU、GPU、TPU 等,以加速模型训练和推理的过程。
缺点:TensorFlow 的学习曲线相对较陡峭,需要花费一些时间来掌握其基本概念和编程模型。此外,TensorFlow 的代码相对较长,有时可能会让开发者感到不太直观。但是,随着深度学习的不断发展和 TensorFlow 的不断完善,这些问题正在逐渐得到缓解。

3.2. Keras

Keras是一种基于Python和TensorFlow等后端库的高级深度学习API,提供了一种方便、快速的方式来构建和训练深度学习模型。Keras 的设计理念是简单易用、模块化、可扩展和用户友好的。
应用:它可以帮助用户快速构建各种类型的深度学习模型,包括卷积神经网络、循环神经网络、自编码器和深度强化学习等。
优点:
  1. Keras易于学习和使用,它提供了简单易懂的API,使得用户可以轻松地构建各种类型的深度学习模型。
  1. Keras的模块化设计使得用户可以轻松地创建和重用模型组件,这对于快速原型开发和模型迭代非常有帮助。
  1. Keras还提供了内置的优化算法来进行模型训练,这使得用户可以更方便地构建深度学习模型并进行训练。
  1. Keras还支持与其他深度学习框架集成,如TensorFlow和Theano等。这使得用户可以在不同的深度学习框架之间切换,并使用Keras的高级API来构建和训练深度学习模型,而无需考虑底层实现细节。
缺点:Keras的设计理念是简单易用、模块化、可扩展和用户友好的,这使得它的灵活性相对较低,无法满足一些高级功能的需求。其次,Keras的可扩展性也存在一些问题,它可能无法满足一些特殊应用场景的需求。

3.3. Scikit-learn

Scikit-learn是一款非常强大、灵活、高效可靠的机器学习库。它的出现使得机器学习的开发和实现变得更加容易,并且为机器学习的应用提供了强有力的支持。
应用:各种机器学习问题的解决,提供了多种常用机器学习算法的实现,包括分类、回归、聚类等。
优点:
  1. 易于使用和高效性能。它提供了简单易懂的API,使得用户可以轻松地构建各种类型的机器学习模型。
  1. 灵活性和可扩展性。可以使用Scikit-learn内置的算法和工具,也可以使用自定义的算法和工具。能够非常灵活地进行机器学习的开发和应用。Scikit-learn还提供了许多功能强大的工具,例如交叉验证、网格搜索和特征选择等,这些工具可以帮助您更好地理解和调整模型。此外,如果需要使用其他的深度学习算法或框架,Scikit-learn也提供了与Keras、TensorFlow、PyTorch等其他深度学习框架的集成,以更加灵活地进行机器学习的开发和应用。
  1. 非常高的效率和可靠性。Scikit-learn是用Python编写的,但是它的底层算法是使用C和C++编写的,并且使用了NumPy和SciPy等高性能数学库。这使得Scikit-learn非常高效,并且能够处理大量的数据和复杂的计算。此外,它对于数据的处理和准备非常高效,可以节省大量的时间和精力。
  1. 模块化设计使得用户可以轻松地创建和重用模型组件,这对于快速原型开发和模型迭代非常有帮助。
缺点:尽管它的文档非常完善,很容易找到所需的信息,但是有些算法的实现不太完整,比如对于一些高级的深度学习算法,需要使用其他库来实现。此外,Scikit-learn的设计理念在某些应用场景下可能会变得不够灵活和可扩展。

3.4. Pandas

Pandas 是一个用于数据处理和分析的库,它可以帮助轻松地处理各种类型的数据。它还提供了强大的数据索引和数据切片功能,可以快速地访问和处理数据。
应用:Pandas 可以应用于各种数据处理和分析场景,包括数据清洗、数据重塑、数据合并和数据分组等。它可以用于处理结构化数据、时间序列数据、统计数据等多种类型的数据。Pandas 还可以与其他库和工具(如 Matplotlib 和 Scikit-learn)一起使用,进行更加复杂的数据分析和建模任务。
优点:
  1. 简单易用:Pandas 提供了简单的 API,使得数据处理和分析变得简单易用。
  1. 高效可靠:Pandas 底层是基于 NumPy 实现的,具有高效、可靠的数据处理和运算能力。
  1. 功能丰富:Pandas 提供了多种数据操作和转换方法,包括数据清洗、数据重塑、数据合并和数据分组等。
  1. 提供大量的文档和示例:Pandas 提供了大量的文档和示例,使得数据处理和分析变得更加容易。
缺点:
  1. 内存占用较大:Pandas 对于大型数据集的处理需要占用较大的内存空间。
  1. 需要一定的学习成本:由于 Pandas 提供了丰富的功能和 API,因此需要一定的学习成本。

3.5. NumPy

NumPy 是一个用于数值计算的库,它提供了高性能的数组和矩阵运算,可以帮助您进行高性能的数值计算和科学计算。NumPy 支持多种数值计算和线性代数操作,包括数组运算、矩阵运算、傅里叶变换和随机数生成等。它还提供了高效的内存管理和数据存储功能,可以处理大规模的数值数据。
应用:
  1. 数值计算和科学计算。在工程或科学领域,NumPy 可以进行高性能的数学计算,如矩阵运算、傅里叶变换等。另外,NumPy 也可以用于计算机视觉、自然语言处理等领域。
  1. 数值数据处理。NumPy 可以处理大规模的数值数据,如图像、声音、文本等。您可以使用 NumPy 来读取、处理、转换和存储数据。
  1. 数组运算、矩阵运算、傅里叶变换和随机数生成等。NumPy 提供了丰富的数学运算符和函数,可以进行数组运算、矩阵运算、傅里叶变换和随机数生成等操作。
优点:
  1. 高性能可靠:Numpy 的内置函数优化了数组运算,使得它们比 Python 中的列表更快。此外,Numpy 的数组可以更好地利用 CPU 的缓存,从而提高性能。
  1. 功能丰富:Numpy 提供了大量的数学函数和运算符,可以完成各种数学计算。
  1. 提供了大量的文档和示例:Numpy 有详细的文档和示例,可以学习和使用该库。
缺点:不适合处理非数值数据。Numpy 主要用于数值计算和线性代数运算,不适合处理非数值数据,如字符串和图形等。

3.6. Matplotlib

Matplotlib是一个用于数据可视化的Python库,它是Python中最受欢迎的绘图库之一。它不仅提供了各种绘图和可视化操作,包括线性图、散点图、柱状图、饼图和热力图等,而且还可以创建复杂的可交互式可视化,如3D图表、动画和交互式图表。Matplotlib的目标是为Python提供一个2D绘图库,可以轻松地生成各种类型的图表,以便更好地理解数据。
应用:无论是数据探索、数据分析、科学研究还是其他领域都可以使用Matplotlib。
优点:
  1. 简单易用性:Matplotlib提供了简单的API,使得数据可视化变得简单易用。
  1. 强大的自定义和交互功能:可以创建各种高质量的数据可视化。
  1. 提供了大量的文档和示例:Matplotlib还提供了大量的文档和示例,使得学习和使用该库变得更加容易。
缺点:默认样式可能不够美观,需要手动调整样式或使用其他可视化库。但是,Matplotlib提供了许多可定制化的选项,可以帮助您改善图表的外观和风格。例如,可以自定义图表的线条颜色、粗细、标签、标题、字体等。
 
📝记录
最近发现了一个很棒的开源项目,是将chatGPT接入个人微信公众号,而且它还有语音功能✨!!!
但是只有源码,没有教程😫,所以现在我的进程还是阻塞状态😵‍💫。
主要有两个问题,一个是语音转化服务的注册过程中,我的visa姓名识别有问题,中英文切换以及顺序颠倒都是过了还是不可以❌;
另一个就是ec2部署我的项目,不是多个模块缺失就是找不到文件,再不就是服务器直接卡住😭。
希望这一周可以彻底解决吧🥺

评论