前言:Hello大家好,我是小哥谈。本门课程将介绍人工智能相关概念,重点讲解机器学习原理机器基本算法(监督学习及非监督学习)。使用python,结合sklearn、jupyter-notebook进行编程,介绍iris、匹马印第安人数据集,建立AI模型并评估其表现。本节课主要面向刚毕业高中生、大学生、硕士生等对AI行业充满向往的同学们!
目录
1.人工智能是什么?
2.如何入门人工智能?
3.机器学习的主要类别有哪些?
3.1 监督式学习
3.2 非监督式学习
3.3 强化学习
4.开发环境介绍及部署
4.1 Python介绍
4.2 scikit-learn介绍
4.3 jupyter notebook介绍
4.4 开发环境准备
人工智能(英语:Artificial Intelligence,缩写为AI)亦称机器智能,指由人制造出来的可以表现出智能的机器。通常人工智能是指通过普通计算机程序来呈现人类智能的技术。该词也指出研究这样的智能系统是否能够实现,以及如何实现。人工智能于一般教材中的定义领域是“智能主体(intelligent agent)的研究与设计”,智能主体指一个可以观察周遭环境并作出行动以达致目标的系统。约翰·麦卡锡于1955年的定义是“制造智能机器的科学与工程”。安德里亚斯·卡普兰(Andreas Kaplan)和迈克尔·海恩莱因(Michael Haenlein)将人工智能定义为“系统正确解释外部数据,从这些数据中学习,并利用这些知识通过灵活适应实现特定目标和任务的能力”。人工智能的研究是高度技术性和专业的,各分支领域都是深入且各不相通的,因而涉及范围极广。
AI的核心问题包括建构能够跟人类似甚至超卓的推理、知识、规划、学习、交流、感知、移物、使用工具和操控机械的能力等。当前有大量的工具应用了人工智能,其中包括搜索和数学优化、逻辑推演。而基于仿生学、认知心理学,以及基于概率论和经济学的算法等等也在逐步探索当中。思维来源于大脑,而思维控制行为,行为需要意志去实现,而思维又是对所有数据采集的整理,相当于数据库,所以人工智能最后可能会演变为机器替换人类。
领域
人工智能行业所涵盖的领域,主要有:机器学习、计算机视觉、自然语言处理、语音识别、数据挖掘、推荐系统等等...
分类
人工智能主要分弱人工智能、强人工智能和超人工智能三类,其含义分别解释如下:
总结:♨️♨️♨️
人工智能即让机器模拟人的各种能力,包括:感知、推理、创造、理解、语言、逻辑、社交、情感等等。
人工智能(AI)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。它是计算机科学的一个分支,旨在理解智能的实质,并生产出一种能以人类智能相似的方式做出反应的智能机器。
如果你想入门人工智能,你需要了解机器学习和深度学习这两种实现人工智能的方法。机器学习是一种通过让计算机从数据中学习并自动改进算法的方法,从而使计算机能够解决一些复杂的问题。而深度学习是机器学习的一个分支,它模仿人脑神经网络的工作原理,通过构建深层次的神经网络来实现更加复杂的任务。
总结:♨️♨️♨️
机器学习是一种实现人工智能的方法,而深度学习是一种实现机器学习的技术。
机器学习:使用算法来解析数据并从中学习,然后对真实世界中的事件作出决策和预测,比如:垃圾邮件检测、房价预测等。
深度学习:模仿人类神经网络建立模型并进行数据分析,比如:人脸识别、语义理解、无人驾驶等。
要入门人工智能,你可以从学习机器学习算法开始,了解常见的机器学习算法和它们的应用。你还可以学习编程语言和工具,如Python和TensorFlow,来实现机器学习和深度学习模型。同时,你可以通过参加在线课程、阅读相关书籍和论文,以及参与项目实践来提升自己的人工智能技能。
总结来说,人工智能入门涉及学习机器学习和深度学习的基本概念和方法,掌握相关的编程语言和工具,以及通过实践项目来应用所学知识。这将帮助你逐步了解和掌握人工智能的基础,并为进一步深入研究奠定基础。
监督式学习是一种机器学习方法,其中算法通过使用带有标签的训练数据集来学习模式和规律。在监督式学习中,我们有一个包含输入特征和对应标签的训练数据集,算法通过学习输入与标签之间的关系,从而能够对新的输入进行预测或分类。
具体来说,监督式学习的目标是通过找到一个函数,将输入映射到输出。这个函数被称为模型,它可以是线性模型、决策树、支持向量机、神经网络等等。在训练阶段,模型使用训练数据集来调整自身的参数,使其能够最好地拟合训练数据中的特征和标签之间的关系。然后,在预测阶段,模型可以根据已学习到的规律对新的输入进行预测或分类。
举个例子,如果我们想构建一个垃圾邮件过滤器,我们可以使用监督式学习。我们会收集一批已经标记好的电子邮件(训练数据集),其中包含了垃圾邮件和非垃圾邮件,并提取出一些特征,比如邮件中的单词、发件人信息等。然后,我们使用这些特征和标签进行训练,让模型学会识别垃圾邮件和非垃圾邮件之间的模式和规律。最后,当我们有一个新的未标记的电子邮件时,模型可以根据已学习到的规律预测它是垃圾邮件还是非垃圾邮件。
总结来说,监督式学习是一种常用的机器学习方法,通过使用带有标签的训练数据集来训练模型,并用于预测或分类新的输入数据。
监督式学习核心步骤:
(1)使用标签数据训练机器学习模型
(2)调用训练好的机器学习模型,根据新的输入数据预测对应的结果。
非监督式学习是机器学习的一种方法,其目标是从无标签的数据中发现隐藏的结构、模式或关系。与监督式学习不同,非监督式学习不需要预先提供标签或目标变量。相反,它通过对数据进行聚类、降维或异常检测等技术来发现数据的内在结构。
在非监督式学习中,算法主要关注数据本身的特征和相似性,以便从中提取有用的信息。常见的非监督式学习算法包括聚类算法(如K-means、层次聚类)、降维算法(如主成分分析、独立成分分析)和关联规则挖掘算法(如Apriori算法)等。
非监督式学习在许多领域都有广泛的应用,例如推荐系统、市场分割、图像分割、异常检测等。它可以帮助我们发现数据中的隐藏模式,从而提供洞察力和决策支持。
相比于监督式学习,非监督式学习不需要标签数据,而是通过引入预先设定的优化准则进行模型训练,比如自动将数据分为三类。
强化学习是一种机器学习的方法,它通过与环境的交互来学习如何做出最优决策。在强化学习中,一个智能体从环境中观察到一系列状态,并通过采取不同的行动来影响环境。智能体通过接收环境反馈的奖励或惩罚来评估自己的行动,并利用这些信息来调整策略,以最大化长期累积的奖励。
强化学习的核心思想是基于试错学习。智能体通过尝试不同的行动并观察结果,逐步调整策略以获得更好的结果。这种学习方式类似于人类学习的方式,通过不断实践和反馈来提高自己的技能。
强化学习在许多领域都有广泛应用,包括机器人控制、游戏玩法、自动驾驶等。它能够处理复杂的决策问题,并能够在没有明确标签的情况下进行学习。
强化学习的例子有:马尔可夫决策过程(Markov Decision Process)。
总结:♨️♨️♨️
监督式学习:基于数据及结果进行预测
非监督式学习:从数据中挖掘关联性
强化学习:通过与环境的交互来学习如何做出最优决策
Python是一种高级、通用的编程语言,它具有简单易学、可读性强的特点。Python语言的设计注重代码的简洁和可读性,使得开发者能够更快速地编写清晰、可维护的代码。它广泛应用于数据分析、人工智能、网络开发、科学计算等领域。Python有丰富的第三方库和工具生态系统,例如NumPy、Pandas、Django等,这些库大大提高了开发效率。同时,Python也是一种跨平台的语言,可以在多个操作系统上运行。
Python语言特点:
(1)解释性:不需要编译成二进制代码,可以直接从源代码运行。
(2)面向对象:Python既支持面向过程的编程,也支持面向对象的编程。
(3)可移植性:由于它的开源本质,可以在不同平台进行开发。
(4)高层语言:无须考虑诸如如何管理程序使用的内存一类的底层细节
说明:♨️♨️♨️
Python官网:Welcome to Python.org
Scikit-learn是一个基于Python的机器学习库,它提供了许多用于数据预处理、建模和评估的工具和算法。它包含了各种常用的机器学习算法,例如分类、回归、聚类、降维等。通过使用Scikit-learn,你可以轻松地构建和训练机器学习模型,并对其进行评估和优化。它还提供了丰富的功能,例如特征提取、特征选择和模型选择等,以帮助你更好地处理和分析数据。无论你是机器学习初学者还是专业人士,Scikit-learn都是一个非常有用的工具。
Scikit-learn特点:
(1)集成了机器学习中各类成熟的算法,容易安装和使用,样例丰富,教程和文档也非常详细。
(2)不支持Python之外的语言,不支持深度学习和强化学习。
说明:♨️♨️♨️
Scikit-learn中文社区:scikit-learn中文社区
Scikit-learn官方文档(中文版):scikit-learn (sklearn) 官方文档中文版
Jupyter Notebook是一个开源的交互式计算环境,可以让你创建和共享实时代码、方程式、可视化和文本。它支持多种编程语言,包括Python、R和Julia等,并且可以在Web浏览器中运行。
Jupyter Notebook的主要特点是所见即所得的编辑和执行代码的能力。它以一种笔记本的形式组织代码和文本,并且你可以在笔记本中编写和运行代码块,同时还可以添加文本、图像、数学公式和交互式图表等内容。
Jupyter Notebook还具有代码自动补全、语法高亮、代码调试和丰富的展示功能等特性,使得它成为数据分析、机器学习、科学研究和教学等领域中广泛使用的工具。
Jupyter Notebook特点:
(1)允许把代码写入独立的cell中,然后单独执行。用户可以在测试项目时单独测试特定代码块,无需从头开始执行代码。
(2)基于web框架进行开发,非常方便。
说明:♨️♨️♨️
Jupyter Notebook官网:Project Jupyter | Home
说明:♨️♨️♨️
安装Python:Python安装教程(2022最新)
安装Pycharm:PyCharm安装教程(详细步骤)
安装Anaconda:PyTorch基础知识(1)— PyTorch框架介绍和安装步骤
Jupyter Notebook教程:手把手教你安装Jupyter Notebook(保姆级教程)
新建开发环境,安装numpy、Scikit-learn库。
conda create -n env_name(环境名)
pip(conda)install package_name(包名)