学习人工智能-基础篇

这篇具有很好参考价值的文章主要介绍了学习人工智能-基础篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

随着大模型的火爆,人工智能再次被推到高潮,其实它在众多行业领域已经落地很多应用,并给社会带来了巨大的经济价值。其中包括互联网、教育、金融、医疗、交通、物流等等。在测试领域也有一些落地的案例,作为测试人员,有必要去了解并学习人工智能,去挖掘人工智为测试领域解决痛点问题,例如自动化测试用例自动生成、视觉自动化测试、缺陷预测、智能的精准测试等等。

大家经常会听说,人工智能(ArtificialIntelligence,AI)、机器学习(MachineLearning,ML)、深度学习(DeepLearning,DL),但是他们三者是一个什么关系呢,概括来讲,人工智能、机器学习、深度学习覆盖的技术范围是逐层递减的。机器学习是人工智能的一种实现方式,深度学习又是机器学习中最热门的一个分支,并且它可以代替大多数的传统机器学习的算法。

学习人工智能-基础篇,机器学习,学习,人工智能
什么是人工智能

人工智能(ArtificialIntelligence,AI)是最宽泛的概念,是用于研发模拟、延伸和扩展人的智能的理论、方法、技术及系统的一门新的技术科学。对于这个定义只阐述了目标,但是没有限定的方法,因此实现人工智能存在诸多的方法和分支。机器学习(MachineLearning,ML)是实现人工智能的一种有效的方式,深度学习(DeepLearning,DL)是机器学习算法中最重要的一个分支,并且它可以替代大多数传统机器学习的算法。

什么是机器学习

关于机器学习的定义,此处引用两位
第一位是人工智能先驱亚瑟·塞缪尔(Arthur Samuel),他在1959年创造了“机器学习”一词[1]。塞缪尔认为,所谓机器学习是指:计算机能够具备根据现有数据构建一套不需要进行显示编程的算法模型来对新数据进行预测的能力。这里所谓不需要进行显示编程是区别于传统程序算法需要人为指定程序的执行过程。

第二位是卡内基梅隆大学的计算机科学家汤姆·迈克尔·米切尔(Tom Michael Mitchell),他给出了一个相较于塞缪尔更加正式与学术的定义。米切尔认为,如果计算机程序能够在任务T中学得经验E并且通过指标P来进行评价,同时根据经验E还能够提升程序在任务T的评价指标P,那么这就是机器学习[2]。这段话对于初学者来说稍微有点拗口,其实际想要表达的就是,如果一个计算机程序能够自己根据数据样本学习获得经验并逐步提高最终的表现结果,那这个过程就被称为是机器学习。

区别于人工智能,机器学习、尤其是监督学习则有更加明确的指代。机器学习是专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构,使之不断改善自身的性能。这句话有点“云山雾罩”的感觉,让人不知所云,下面我们从机器学习的实现和方法论两个维度进行剖析,帮助读者更加清晰地认识机器学习的来龙去脉。

2.1 机器学习的实现
2.1
机器学习的实现可以分成两步:训练和预测,类似于归纳和演绎:

归纳:就是从具体案例中抽象出一般规律,如同机器学习中的训练,从一定数量的样本中(已知模型输入X和模型输出Y),学习输出Y和输入X的关系,类似于某种表达式。

演绎:从一般规律推导出具体案例的结果,如同机器学习中的预测,基于训练得到的Y和X之间的关系,如果出现新的输入X,计算出输出Y,当通过模型计算的输出Y和真实场景的输出一致时,就说明模型就是有效的,如果出现过拟合或者欠拟合的情况下,我们可能需要替换其他的模型算法,继续训练模型。

2.2 机器学习的方法论

机器学习的方法论和人类科研的过程有着异曲同工之妙,下面以“机器从牛顿第二定律实验中学习知识”为例,帮助读者更加深入理解机器学习(监督学习)的方法论本质,即在“机器思考”的过程中确定模型的三个关键要素:假设、评价、优化。
包括 监督学习、无监督学习、半监督学习

例如一个房价的预测

什么是深度学习

深度学习(Deep Learning)(也称为深度结构学习【Deep Structured Learning】、层次学习【Hierachical Learning】或者 深度机器学习【Deep Machine Learning】)是一类算法集合,是机器学习的一个分支。它是基于多层神经网络,借鉴人脑神经元的结构,设计出神经网络模型,在图像识别、绘画识别和对象侦测领域,预测数据准确性有较高的表现。
学习人工智能-基础篇,机器学习,学习,人工智能
图(a)展示了神经网络基本单元-感知机的设计方案,其处理信息的方式与人脑中的单一神经元有很强的相似性;图(b)展示了几种经典的神经网络结构,类似于人脑中多种基于大量神经元连接而形成的不同职能的器官。

对于深度学习,可以在TensorFlow的playground场进行体验,它是一个通过网页浏览器训练的简单神经网络并实现可视化训练过程的工具
http://playground.tensorflow.org

如图是一个逻辑回归分类模型,通过训练,把数据分为两类。增加的每一个节点就是一个神经元,还有增加一层层的深度。

学习人工智能-基础篇,机器学习,学习,人工智能

从图中可以看出,所谓深度学习其实就是将原始特征通过多层神经网络进行抽象特征提取,然后再将提取到的特征输入到最后一层进行回归或者分类处理的过程,核心就是:特征提取。

什么是卷积神经网络

深度学习模型中典型的就是卷积神经网络(convolutional neural network,CNN)。它主要应用是在图像识别方向。还有一个模型是循环神经网络(Recurrent Neural Network,RNN),通常用于自然语言的处理。本文介绍的是卷积神经网络。生成对抗网络、强化学习。
在早期的图像分类任务中,通常是先人工提取图像特征,再用机器学习算法对这些特征进行分类,分类的结果强依赖于特征提取方法,往往只有经验丰富的研究者才能完成.

在这种背景下,基于神经网络的特征提取方法应运而生

卷积神经网络是目前计算机视觉中使用最普遍的模型结构。
卷积神经网络分为:输入层、卷积层、池化层、激活层、全连接层

输入层(Input Layer)、卷积层(CONV Layer)、池化层(Pooling Layer)、ReLU激活层(ReLU Layer)、全连接层(FC Layer)五个层次。

实践Pytorch框卷积神经网络

目前常用的深度学习框架有TensorFlow和PyTorch,TensorFlow
当然,现今任何一个深度学习框架都有其缺点,PyTorch也不例外,对比TensorFlow,其全面性处于劣势,目前PyTorch还不支持快速傅里 叶、沿维翻转张量和检查无穷与非数值张量;针对移动端、嵌入式部署以及高性能服务器端的部署其性能表现有待提升;其次因为这个框 架较新,使得他的社区没有那么强大,在文档方面其C库大多数没有文档。

下面结合图像和代码介绍每一层的含义。

接下来需要安装环境,对于环境的安装,因篇幅原因,不在此介绍,可以到我的博客中查看安装步骤。

安装Anaconda

安装Pytorch及配置Pycharm

学习人工智能-基础篇,机器学习,学习,人工智能

我们可以从官网查看详细的可以看官网 https://pytorch.org

输入层
卷积层

如图是一个卷积操作,它的计算方式是
学习人工智能-基础篇,机器学习,学习,人工智能
输入图像55的矩阵
卷积核3
3的矩阵
Stride=1
1*1
接下来我们使用Pytorch框架用代码来实现。

import torch
import torch.nn.functional as F


input = torch.tensor([[0, 0, 75, 80, 80],
                      [0, 75, 80, 80, 80],
                      [0, 75, 80, 80, 80],
                      [0, 70, 75, 80, 80],
                      [0, 0, 0, 0, 0]])

# 卷积核
kernel = torch.tensor([[-1, -2, -1],
                       [0, 0, 0],
                       [1, 2, 1]])

# 进行尺寸变换:
input = torch.reshape(input, (1, 1, 5, 5))
kernel = torch.reshape(kernel, (1, 1, 3, 3))

# 进行卷积,移动步长为1(左移和下移都为1,默认是先右移后下移)
output = F.conv2d(input, kernel, stride=1)
print(output)

运行后的结果:
学习人工智能-基础篇,机器学习,学习,人工智能

池化层

池化层的作用,
最大池化的目的:保留数据特征,同时能把数据量减少

import torch
import torchvision
from torch import nn
from torch.nn import MaxPool2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter


dataset = torchvision.datasets.CIFAR10("./7dataset", train=False, download=True,
                                       transform=torchvision.transforms.ToTensor())
dataloader = DataLoader(dataset, batch_size=64)

class NN_MaxPool_Model(nn.Module):
    def __init__(self):
        super(NN_MaxPool_Model, self).__init__()
        self.maxpool1 = MaxPool2d(kernel_size=3)

    def forward(self, input):
        output = self.maxpool1(input)
        return output

maxpool_test = NN_MaxPool_Model()

writer = SummaryWriter("../learn/log")
step = 0
for data in dataloader:
    imgs, targets = data
    writer.add_images("input", imgs, step)
    output = maxpool_test(imgs)
    writer.add_images("output", output, step)
    step += 1


writer.close()
print("运行完毕")

这个是池化前的输入图像
学习人工智能-基础篇,机器学习,学习,人工智能
这是池化后的输出图像
学习人工智能-基础篇,机器学习,学习,人工智能

经过池化后图像可以隐约的看出是之前的,它的目的是保存数据的特征,但是大大减少了数据量,是训练速度加快,所以一般在卷积之后来一层最大池化。

如果在运行过程中因为网络原因,可能会出现【Pytorch】下载CIFAR10数据集报错:
urllib.error.URLError: <urlopen error name: https>
学习人工智能-基础篇,机器学习,学习,人工智能
因篇幅不在此处展开,可以看我的博客中的查看具体的解决办法,
下载CIFAR10数据集报错

激活层

非线性激活函数
非线性激活,非线性的主要目的就是给我们的网络引入一些非线性特征,非线性越多,越能训练出符合各种曲线或者说是符合各种特征的模型。

import torch
import torchvision
from torch import nn
from torch.nn import Sigmoid
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter

dataset = torchvision.datasets.CIFAR10("./7dataset", train=False,
                                       transform=torchvision.transforms.ToTensor(), download=True)

dataloader = DataLoader(dataset, batch_size=64)

# 创建神经网络
class NN_Sigmoid_Model(nn.Module):
    def __init__(self):
        super(NN_Sigmoid_Model, self).__init__()
        self.sigmoid1 = Sigmoid()

    def forward(self, input):
        output = self.sigmoid1(input)
        return output


nn_sigmoid_mode  = NN_Sigmoid_Model()

writer = SummaryWriter("../learn/log")
step = 0

for data in dataloader:
    imgs, targets = data
    writer.add_images("input", imgs, global_step=step)
    output = nn_sigmoid_model(imgs)
    writer.add_images("output", output, global_step=step)
    step += 1

writer.close()

学习人工智能-基础篇,机器学习,学习,人工智能

flattern展平

线性

全连接层

损失函数和反向传播

优化

经过卷积层的计算后,还要经过 池化层 激活层,最后
卷积神经网络是计算机视觉使用最普遍的模型结构,主要模块包括:
- 卷积
- 池化
- 激活函数层
- 和全连接层
- 线性层
- flattern展平
- 线性
卷积是深度学习的重要技术之一,简单点来说就是先通过多层的全连接进行特征提取,然后通过softmax层进行分类。

搭建一个CIFAR 10 model

后记

本文主要介绍了关于机器学习、深度学习的一些基本定义,本文介绍的也只是冰山的一角,后续会有一些深度学习训练的实例。保持持续学习,学习新的技术,拥抱大模型时代。

参考资料:
《跟我一起学机器学习 》
Pytorch深度学习快速入门教程文章来源地址https://www.toymoban.com/news/detail-765588.html

到了这里,关于学习人工智能-基础篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【人工智能的数学基础】机器学习中的假设检验(Hypothesis Test)

    Hypothesis Test in Machine Learning. 在统计学中,总体分布往往是未知的,只能从中进行有限的抽样从而获得部分样本的信息。有时需要对总体的特征做出某种假设,如何判断该假设是正确的还是错误的?需要借助 假

    2024年02月07日
    浏览(48)
  • 人工智能基础_机器学习003_有监督机器学习_sklearn中线性方程和正规方程的计算_使用sklearn解算八元一次方程---人工智能工作笔记0042

    然后我们再来看看,如何使用sklearn,来进行正规方程的运算,当然这里 首先要安装sklearn,这里如何安装sklearn就不说了,自己查一下 首先我们还是来计算前面的八元一次方程的解,但是这次我们不用np.linalg.solve这个 解线性方程的方式,也不用 直接 解正规方程的方式: 也就是上面这种

    2024年02月08日
    浏览(55)
  • 人工智能基础_机器学习015_BGD批量梯度下降代码演示_在批量梯度下降中使用逆时衰减---人工智能工作笔记0055

    然后我们用代码来演示一下BGD批量梯度下降,首先启动jupyter notebook 然后我们新建一个文件 新建文件夹,然后新建一个python文件 然后我们这里用一元一次方程进行批量梯度下降. import numpy as np 导入数学计算包 X = np.random.rand(100,1)  `np.random.rand(100, 1)` 是NumPy库中的一个函数,用于

    2024年02月05日
    浏览(65)
  • Python编程入门基础及高级技能、Web开发、数据分析和机器学习与人工智能

    安装 Python 环境,选择一个 IDE,如 PyCharm、VSCode等。 安装 Python 环境是使用 Python 进行编程的第一步。Python 官网提供了 Windows、Linux 和 macOS 等主流操作系统的安装包,可以前往官网下载对应版本的 Python 并进行安装。 在安装完 Python 后,需要使用 pip 工具对常用的第三方库进行

    2024年02月09日
    浏览(71)
  • 机器学习入门教学——人工智能、机器学习、深度学习

    1、人工智能 人工智能相当于人类的代理人,我们现在所接触到的人工智能基本上都是弱AI,主要作用是正确解释从外部获得的数据,并对这些数据加以学习和利用,以便灵活的实现特定目标和任务。 例如: 阿尔法狗、智能汽车 简单来说: 人工智能使机器像人类一样进行感

    2024年02月09日
    浏览(91)
  • 人工智能|机器学习——基于机器学习的舌苔检测

    基于深度学习的舌苔检测毕设留档.zip资源-CSDN文库 目前随着人们生活水平的不断提高,对于中医主张的理念越来越认可,对中医的需求也越来越多。在诊断中,中医通过观察人的舌头的舌质、苔质等舌象特征,了解人体内的体质信息从而对症下药。 传统中医的舌诊主要依赖

    2024年02月22日
    浏览(70)
  • 人工智能与机器学习

    欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起探讨和分享Linux C/C++/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 专栏:《机器学习》 ​ ​ ☞什么是人工智能、机器学习、深度学习 人工智能这个概念诞生于1956年的达特茅斯

    2024年02月02日
    浏览(63)
  • 【机器学习】人工智能概述

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 1.人工智能概述 1.1 机器学习、人工智能与深度学习 1.2 机器学习、深度学习能做些什么

    2024年02月09日
    浏览(55)
  • 机器学习--人工智能概述

    入门人工智能,了解人工智能是什么。为啥发展起来,用途是什么,是最重要也是最关键的事情。大致有以下思路。 人工智能发展历程 机器学习定义以及应用场景 监督学习,无监督学习 监督学习中的分类、回归特点 知道机器学习的开发流程 人工智能在现实生活中的应用

    2024年01月19日
    浏览(60)
  • 人工智能与机器人|机器学习

    原文链接: https://mp.weixin.qq.com/s/PB_n8woxdsWPtrmL8BbehA 机器学习下包含神经网络、深度学习等,他们之间的关系表示如图2-7所示。 图2-7 关系图 那么什么是机器学习、深度学习、他们的区别又是什么呢? 2.7.1 什么是机器学习? 机器学习是 人工智能 (AI) 和计算机科学的一个分支,

    2024年02月06日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包