适合新手入门且最简单的ANN人工神经网络模型(Python)

ANN的全拼是Artificial Neural Network即人工神经网络,简称神经网络,是一种基于模仿大脑神经网络结构和功能而建立的信息处理系统。

既然是模仿,那我们就必须了解生物学上的神经元到底是什么?
在这里插入图片描述

树突是是神经元的输入通道,接受来自其他神经元的信息。轴突即神经纤维,是神经元的输出通道。轴突末端称为神经末梢,它是神经元信息的输出端,用于输出神经元的动作脉冲。

由此我们可以得知,生物学上的神经元能起到接收信息,并传递信息的功能,换句话说,就是输入和输出。

那么应用在数学上,可以理解为:给你一个线性函数,神经元的功能就是把这个线性函数的解代入反曲函数,这是个连续可导函数。

但这是上世纪五十年代的研究水平,这么简单的神经元网络能解决的问题可以很复杂。

用贾通艺教授的话总结,就是:“本来无一物,何处惹尘埃”,就算再复杂的东西都可以找到方法来简化

最简单的神经网络其实可以理解为只有一个神经元的神经网络:
在这里插入图片描述

以上是只有一个权重(w)的最小神经网络。输入一个值(x),乘以权重,结果就是网络的输出值。

这里要注意,权重可以随着网络的训练进行更新,从而找到最佳的值,这样网络就能尝试匹配输出值与目标值。

讲到这里,相信大家对神经网络有一定了解了,下面开始上代码:

import numpy as np

class NeuralNetwork():
    def __init__(self):
        # 将权重转化为一个1x1的矩阵,其值分布为-1~1,并且均值为0
        self.synaptic_weights = 2 * np.random.random((1, 1)) - 1

权重的初始方法有两种:

  • 把权重初始化为0
  • 对权重随机初始化

首先讲讲为什么把权重设置为一个随机数,而不设置为零。先说一下我们的目标:输入一个数,输出它的相反数,在这个过程中,我们能想到,权重肯定越趋近于-1越好,因此,如果把权重初始化为0,那么每一层的神经元学到的东西都是一样的即输出都为零。

另外,这里使用数组的原因是,在研究目标检测时,必须要用到这方面的知识,因此,我举了相对简单的例子:如果输入1,则网络应输出-1;如果输入-1,则网络应输出1。仅此而已,非常简单,大家可以在这个的基础上提高难度。

接下来,我讲讲我使用的激活函数tanh:
在这里插入图片描述
用数学公式可以表示为:
在这里插入图片描述
用python代码实现:

def tanh(self, x):
        s1 = np.exp(x) - np.exp(-x)
        s2 = np.exp(x) + np.exp(-x)
        return s1 / s2

tanh函数的导数:

def tanh_derivative(self, x):
        s1 = np.exp(x) - np.exp(-x)
        s2 = np.exp
基于粒子群优化(PSO)算法优化人工神经网络ANN)的方法可以提高神经网络的性能和泛化能力。Python是一种强大的编程语言,提供了丰富的机器学习神经网络相关的库和工具,使得PSO优化ANNPython中的仿真变得非常方便。 首先,我们需要准备ANN模型和数据。ANN是一种模拟人脑神经元网络的机器学习模型,可以用于分类、回归等任务。在Python中,可以使用一些流行的机器学习库如PyTorch、Keras或TensorFlow来构建ANN模型。 接下来,我们需要编写PSO算法的代码。粒子群优化算法的核心思想是通过模拟鸟群觅食行为来寻找最优解。每个粒子代表一个解,并根据自身的经验和群体的经验更新自己的位置和速度,以找到全局最优解。 在PSO算法的代码中,首先需要定义粒子的位置、速度、适应度等参数。然后,根据粒子的适应度和全局最优解更新粒子的位置和速度。这个过程重复多次,直到满足停止条件。 最后,我们可以使用PSO算法来优化ANN模型。通过编写一个调用ANN模型和PSO算法的函数,可以将PSO算法和ANN模型结合起来,同时进行训练和优化。在训练过程中,ANN模型的参数会被PSO算法不断调整,以使模型在给定的训练数据上达到较好的性能。 整个过程中,需要保证PSO算法和ANN模型之间的交互正确和有效。此外,为了确保代码的质量和可读性,适当地注释和文档是必要的。 总结来说,基于PSO算法优化ANNPython仿真可以通过以下步骤实现:准备ANN模型和数据,编写PSO算法的代码,结合PSO算法和ANN模型进行训练和优化。这样可以提高ANN模型的性能和泛化能力,从而在各种任务中取得更好的效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.郑先生_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值