python人工智能算法之人工神经网络怎么使用

人工神经网络

(artificial neural network,ann)是一种模仿生物神经网络的结构和功能的数学模型,其目的是通过学习和训练,在处理未知的输入数据时能够进行复杂的非线性映射关系,实现自适应的智能决策。可以说,ann是人工智能算法中最基础、最核心的一种算法。

ANN模型的基本结构包含输入层、隐藏层和输出层。输入层接收输入数据,隐藏层负责对数据进行多层次、高维度的变换和处理,输出层对处理后的数据进行输出。ANN的训练过程是通过多次迭代,不断调整神经网络中各层的权重,从而使得神经网络能够对输入数据进行正确的预测和分类。

人工神经网络算法示例

接下来看看一个简单的人工神经网络算法示例:

import numpy as np
class NeuralNetwork():
    def __init__(self, layers):
        """
        layers: 数组,包含每个层的神经元数量,例如 [2, 3, 1] 表示 3 层神经网络,第一层 2 个神经元,第二层 3 个神经元,第三层 1 个神经元。
        weights: 数组,包含每个连接的权重矩阵,默认值随机生成。
        biases: 数组,包含每个层的偏差值,默认值为 0。
        """
        self.layers = layers
        self.weights = [np.random.randn(a, b) for a, b in zip(layers[1:], layers[:-1])]
        self.biases = [np.zeros((a, 1)) for a in layers[1:]]
    def sigmoid(self, z):
        """Sigmoid 激活函数."""
        return 1 / (1 + np.exp(-z))
    def forward_propagation(self, a):
        """前向传播."""
        for w, b in zip(self.weights, self.biases):
            z = np.dot(w, a) + b
            a = self.sigmoid(z)
        return a
    def backward_propagation(self, x, y):
        """反向传播."""
        nabla_w = [np.zeros(w.shape) for w in self.weights]
        nabla_b = [np.zeros(b.shape) for b in self.biases]
        a = x
        activations = [x]
        zs = []
        for w, b in zip(self.weights, self.biases):
            z = np.dot(w, a) + b
            zs.append(z)
            a = self.sigmoid(z)
            activations.append(a)
        delta = self.cost_derivative(activations[-1], y) * self.sigmoid_prime(zs[-1])
        nabla_b[-1] = delta
        nabla_w[-1] = np.dot(delta, activations[-2].transpose())
        for l in range(2, len(self.layers)):
            z = zs[-l]
            sp = self.sigmoid_prime(z)
            delta = np.dot(self.weights[-l+1].transpose(), delta) * sp
            nabla_b[-l] = delta
            nabla_w[-l] = np.dot(delta, activations[-l-1].transpose())
        return (nabla_w, nabla_b)
    def train(self, x_train, y_train, epochs, learning_rate):
        """训练网络."""
        for epoch in range(epochs):
            nabla_w = [np.zeros(w.shape) for w in self.weights]
            nabla_b = [np.zeros(b.shape) for b in self.biases]
            for x, y in zip(x_train, y_train):
                delta_nabla_w, delta_nabla_b = self.backward_propagation(np.array([x]).transpose(), np.array([y]).transpose())
                nabla_w = [nw+dnw for nw, dnw in zip(nabla_w, delta_nabla_w)]
                nabla_b = [nb+dnb for nb, dnb in zip(nabla_b, delta_nabla_b)]
            self.weights = [w-(learning_rate/len(x_train))*nw for w, nw in zip(self.weights, nabla_w)]
            self.biases = [b-(learning_rate/len(x_train))*nb for b, nb in zip(self.biases, nabla_b)]
    def predict(self, x_test):
        """预测."""
        y_predictions = []
        for x in x_test:
            y_predictions.append(self.forward_propagation(np.array([x]).transpose())[0][0])
        return y_predictions
    def cost_derivative(self, output_activations, y):
        """损失函数的导数."""
        return output_activations - y
    def sigmoid_prime(self, z):
        """Sigmoid 函数的导数."""
        return self.sigmoid(z) * (1 - self.sigmoid(z))

使用以下代码示例来实例化和使用这个简单的神经网络类:

x_train = [[0, 0], [1, 0], [0, 1], [1, 1]]
y_train = [0, 1, 1, 0]
# 创建神经网络
nn = NeuralNetwork([2, 3, 1])
# 训练神经网络
nn.train(x_train, y_train, 10000, 0.1)
# 测试神经网络
x_test = [[0, 0], [1, 0], [0, 1], [1, 1]]
y_test = [0, 1, 1, 0]
y_predictions = nn.predict(x_test)
print("Predictions:", y_predictions)
print("Actual:", y_test)

输出结果:

Predictions: [0.011602156431658403, 0.9852717774725432, 0.9839448924887225, 0.020026540429992387]Actual: [0, 1, 1, 0]

以上就是python人工智能算法之人工神经网络怎么使用的详细内容,更多请关注昆居客【www.kunjuke.com】。

相关推荐:

2026 年 APEC 数字和人工智能部长会议 7 月 23 日成都举行,我国时隔 12 年第三次担任 APEC 东道主

7 月 10 日消息,今日,工业和信息化部举行“亚太经合组织(APEC)2026 年数字和人工智能部长会议及数字周相关活动新闻通气会”。据介绍,今年是中国继 2001、2014 年之后,时隔 12 年第三次担任 APEC 东道主,全年将举行 11 场专业领域部长级会议及系列活动。工业和信息化部在外交部的指导下,将于 7 月 16 日至 24 日在四川成都举办数字和人工智能部长会议及数字周相关活动,...

倪飞:全球首款 AI 智能体手机来自努比亚,将在 2026 世界人工智能大会首次亮相

感谢网友 不一样的体验 的线索投递! 7 月 8 日消息,据凤凰网科技今日报道,中兴通讯高级副总裁、终端事业部总裁倪飞发文表示,努比亚将推出全球首款 AI 智能体手机。该设备定位为量产旗舰机型,已明确将在 2026 世界人工智能大会(WAIC)上进行首次公开展示。2026 世界人工智能大会暨人工智能全球治理高级别会议,将于 7 月 17 日至 20 日在上海举办。本届大会在展览规模、首发新品数量、...

首届全球人工智能治理对话在日内瓦举行,联合国秘书长古特雷斯发表讲话

7 月 6 日消息,据央视新闻今日报道,当地时间 7 月 6 日,首届全球人工智能治理对话在瑞士日内瓦举行,约 1500 名来自世界各地的代表将在为期两天的会议期间就人工智能治理进行交流。联合国秘书长古特雷斯在开幕式上表示,人工智能正以惊人的速度发展。问题在于,我们是要共同驾驭它,还是任由它驾驭我们。全球人工智能治理对话首次让每个国家都有机会参与其中。我们现在必须将全球参与转化为全球行动,使人工智...

人社部明确 2026 年技工院校招生 125 万人,培训人工智能、新能源汽车等领域技能人才

7 月 6 日消息,据央视新闻今日报道,日前,人力资源社会保障部发布通知,明确 2026 年技工院校学制招生目标为 125 万人。从报道中获悉,各地技工院校将面向有就业和培训意愿的农村转移就业劳动者、离校未就业高校毕业生、登记失业人员、就业困难人员等重点群体,围绕人工智能、先进制造、低空经济、新能源汽车、康养服务等重点领域市场需求和职业技能要求开展培训。各技工院校将深化产教融合校企合作,围绕新兴产...

微软宣布斥资 25 亿美元成立新公司,助力企业落地人工智能技术

7 月 2 日消息,微软今日宣布将成立一家全新企业,帮助客户挑适合其自身业务的人工智能技术,并实现投资回报。这家全新运营实体命名为微软前沿公司(Microsoft Frontier Company),初期将获得这家科技巨头 25 亿美元(注:现汇率约合 170.03 亿元人民币)注资,合作客户包括联合利华、诺和诺德等企业。如今大型企业不再单纯依赖单一服务商(如 Anthropic、OpenAI)提...

GitHub Copilot逻辑生成演示:如何利用注释引导AI完成复杂的排序算法

三路快排需原地升序排列整数列表,时间复杂度O(n)、空间O(log n),用三指针分区法以arr[0]为pivot,空或单元素直接返回。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 你需要让 GitHub Copilot 生成一个符合特定约束的排序算法,但直接写函数名或模糊描述只会得到通用模板甚至错误实现——必须用结构化注释明确输入输出、...
· AI · 188826

iPhone 17夜拍模式有提升吗 iPhone 17夜景算法升级详情

iPhone 17夜景能力显著提升,源于传感器(1/1.3英寸、f/1.6)、防抖(标准版传感器位移、Pro双防抖)、算法(星空模式2.0、动态光影控制)与A19芯片(AI算力+15%)四维协同,暗光成像亮度+35%、噪点-22%,长曝光更稳、合成更快、多焦段夜摄更优。 有明显提升,而且是传感器、防抖、算法和算力四方面协同进化的结果。 传感器与光圈硬件基础更扎实 主摄传感器尺寸从iPhone 16...

AI生成视频卡顿怎么办?纳逗Pro的算法优化与渲染效率解析

纳逗Pro通过帧间稳定性、多模型协同调度、渲染效率优化三重技术解决AI视频卡顿:首尾帧锚定+轨迹约束提升运动连贯性;分片加载+异步推理+缓存池实现算力高效调度;语义级帧压缩与自适应分辨率降低无效计算,显著提升流畅度与稳定性。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ AI生成视频卡顿,根本不是“运气差”,而是帧与帧之间缺乏物理连续性、运...