首页 > 其他分享 >人工智能学习入门学习笔记 1

人工智能学习入门学习笔记 1

时间:2023-05-05 15:45:58浏览次数:42  
标签:入门 训练 人工智能 self 学习 算法 np 数据

目前人工智能算法分哪几类,哪些是需要训练的?

人工智能算法通常可以分为以下几类:
1. 监督学习(Supervised Learning):需要有标注数据,即输入数据与输出结果是已知的,算法通过学习这些数据来建立一个输入到输出的映射模型。例如,图像分类、自然语言处理和预测等任务。
2. 无监督学习(Unsupervised Learning):不需要标注数据,算法通过对未标注数据的学习来发现数据中的规律和结构,例如聚类、降维和异常检测等任务。
3. 半监督学习(Semi-Supervised Learning):同时使用有标注和未标注数据进行学习,既提供了标注数据的信息,又充分利用了未标注数据的信息。
4. 强化学习(Reinforcement Learning):通过试错探索环境,从而最大化累积奖励的方法。例如,游戏和机器人控制等任务。
除了强化学习外,其他算法均需要训练。在训练过程中,算法会根据输入数据和预期输出数据之间的差异来调整自身的参数,以达到更好的性能。训练结束后,算法可以用来处理新的、没有见过的数据。

监督学习 有哪些主要算法?

监督学习是机器学习的一种重要方法,其目的是通过已有标记(即已知正确答案)的训练数据来训练模型,进而预测新的未知数据。主要的监督学习算法包括以下几种:
1. 决策树:通过对训练数据进行划分,生成一棵树形结构,用于分类和回归任务。
2. 支持向量机(SVM):将样本映射到高维空间,在该空间中寻找最优超平面,从而实现分类或回归任务。
3. 最近邻算法(KNN):根据与目标样本距离最近的k个训练样本的标记,确定目标样本的标记。
4. 逻辑回归:利用逻辑函数模拟因变量与自变量之间的关系,实现二分类或多分类任务。
5. 神经网络:通过多层非线性转换实现对复杂模式的建模,适用于图像识别、自然语言处理等各种领域的问题。
6. 集成学习:通过结合多种模型,降低误差,提高预测准确率,如随机森林和梯度提升树。
当然,这只是部分常见的监督学习算法,实际上还有很多其他的算法,例如朴素贝叶斯分类器、线性判别分析等。

如果我要对手写的数字进行识别,用哪种算法比较合适?

对手写数字的识别,可以考虑使用支持向量机(SVM)算法或者神经网络算法。
SVM算法是一种二分类模型,通过将样本映射到高维空间后,在该空间中寻找最优超平面将不同类别的样本分开。对于手写数字识别问题,可以将每个数字看成一个类别,利用SVM进行多分类。
神经网络算法则是基于生物神经元的模拟,具有非线性、自适应等特点,可以处理复杂的输入输出模式。在手写数字识别问题中,可以使用卷积神经网络(CNN)来提取图像特征,然后进行分类。CNN已经被广泛应用于图像识别领域,并且在MNIST数据集上取得了非常好的效果。
除了上述两种算法,还有其他一些算法也可以用于手写数字识别,例如KNN和决策树等。选择哪种算法最合适,需要根据具体问题的特点以及数据集的规模和性质来进行选择。

用 python 写一个最简单的需要 学习训练的算法?

当涉及到需要学习训练的算法时,最简单的可能是线性回归算法。以下是一个使用Python实现的示例代码:

import numpy as np

class LinearRegression:
    def __init__(self, lr=0.01, n_iters=1000):
        self.lr = lr
        self.n_iters = n_iters
        self.weights = None
        self.bias = None

    def fit(self, X, y):
        # 初始化权重和偏置
        n_samples, n_features = X.shape
        self.weights = np.zeros(n_features)
        self.bias = 0

        # 梯度下降求解权重和偏置
        for _ in range(self.n_iters):
            y_pred = np.dot(X, self.weights) + self.bias
            dw = (1 / n_samples) * np.dot(X.T, (y_pred - y))
            db = (1 / n_samples) * np.sum(y_pred - y)
            self.weights -= self.lr * dw
            self.bias -= self.lr * db

    def predict(self, X):
        return np.dot(X, self.weights) + self.bias

这里定义了一个LinearRegression类,它包含了初始化函数、拟合函数和预测函数。在初始化函数中,我们设置了学习率和迭代次数的默认值,以及权重和偏置的初始值。在拟合函数中,我们使用梯度下降法来更新权重和偏置,以最小化损失函数。在预测函数中,我们使用训练好的权重和偏置来预测新的样本输出。

你可以通过以下代码段来演示线性回归算法的使用:

# 创建样本特征向量X和目标值y
X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
y = np.array([7, 19, 31, 43])

# 创建线性回归模型并训练
model = LinearRegression(lr=0.01, n_iters=1000)
model.fit(X, y)

# 创建测试样本特征向量X_test
X_test = np.array([[3, 5, 8], [6, 9, 13]])

# 进行预测并打印预测结果
predictions = model.predict(X_test)
print(predictions)

输出结果如下:

[19.33720768 34.67105432]

 

标签:入门,训练,人工智能,self,学习,算法,np,数据
From: https://www.cnblogs.com/nanfei/p/17374326.html

相关文章

  • FFT学习笔记
    快速傅里叶变换多项式定义不严谨定义:形如\(f(x)=\sum\limits_{i=0}^{n}a_ix^i\)的式子为多项式。定义(fromOIWiki):对于求和式\(\suma_nx^n\),如果是有限项相加,称为多项式,记作\(f(x)=\sum\limits_{n=0}^ma_nx^n\)。次数:对于多项式\(F(x)=\sum\limits_{i=0}^{n......
  • 《CTFshow-Web入门》08. Web 71~80
    目录web71知识点题解web72知识点题解web73题解web74题解web75知识点题解web76题解web77知识点题解web78知识点题解web79题解web80知识点题解ctf-web入门web71知识点ob_get_contents():得到输出缓冲区的内容。ob_end_clean():清除缓冲区的内容,并将缓冲区关闭,但不会输出内......
  • FirewallD入门手册
    导读FirewallD是iptables的一个封装,可以让你更容易地管理iptables规则-它并不是iptables的替代品。虽然iptables 命令仍可用于FirewallD,但建议使用FirewallD时仅使用FirewallD 命令。 FirewallD是iptables的前端控制器,用于实现持久的网络流量规则。......
  • wireshark(抓包)学习
    1、Wireshark简介Wireshark(前称Ethereal)是一个免费开源的网络数据包分析软件。网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据。Wireshark官方网站:https://www.wireshark.org,可以去官网查看这款软件的详细信息2、Wireshark基本使用方法......
  • HttpRunner 4.x 学习2 - 快速创建项目
    执行 hrpstartprojectdemo  命令,即可初始化指定名称的项目工程。hrpstartprojectauto快速创建项目demo├──.env是环境配置文件├──.gitignore传git仓库时忽略文件├──debugtalk.py辅助函数功能文件├──har辅助函数功能文件......
  • 云原生学习笔记-DAY3
    etcd进阶和K8s资源管理1etcd进阶1.1etcd配置etcd没有配置文件,配置是从serivce文件里面加载参数实现的1.2etcd选举机制1.2.1选举简介etcd基于Raft算法进行集群角色选举,使用Raft的还有Consul、InfluxDB、kafka(KRaft)等。Raft算法是由斯坦福大学的DiegoOngaro(迭戈......
  • C语言从入门到精通
    1.C语言较为底层,更接近硬件,效率较高,因此更合适用于开发操作系统;2.C语言支持函数操作,但它并不属于函数式编程。函数式编程可以理解为高级的函数操作,例如,函数的嵌套定义、匿名函数、闭包、惰性求值等等,但C语言中,基本上只能常规的定义函数、调用函数;常量、变量和关键字数据类......
  • httprunner 4.x学习 - 3.variables 变量声明与引用
    前言在HttpRunner中,支持变量声明(variables)和引用($var或${var})的机制。在config和step中均可以通过variables关键字定义变量,然后在测试步骤中可以通过$变量名称的方式引用变量。区别在于在config中定义的变量为全局的,整个测试用例(testcase)的所有地方均可以引......
  • vue3学习第一课
    1,先安装npmbrewinstallnpmnpminitvite-appvue3demmocdvue3demmonpminstallnpmrundev ......
  • AI 学习笔记
    AI学习笔记机器学习简介DifferenttypesofFunctionsRegression:Thefunctionoutputsascalar(标量).predictthePM2.5Classification:Givenoptions(classes),thefunctionoutputsthecorrectone.SpamfilteringStructuredLearning:createsomethingwi......