手把手教你实现神经网络

教育行业A股IPO第一股(股票代码003032)

全国咨询/投诉热线:400-618-4000

In[1]:

In[2]:

#生成数据集并用plot画出np.random.seed(0)X,y=sklearn.datasets.make_moons(200,noise=0.20)plt.scatter(X[:,0],X[:,1],s=40,c=y,cmap=plt.cm.Spectral)

Out[2]:

这里为了演示,我们使用逻辑回归行分类。输入是数据集里的x,y坐标,输出是预测的类别(0或者1)。为了方便我们直接使用scikit-learn中的逻辑回归。

In[3]:

#训练逻辑回归分类器clf=sklearn.linear_model.LogisticRegressionCV(cv=5)clf.fit(X,y)

Out[3]:

In[4]:

#这是个帮助函数,这个函数的作用是用来画决策边界的,如果看不懂函数内容不用介意。defplot_decision_boundary(pred_func):#设置边界最大最小值x_min,x_max=X[:,0].min()-.5,X[:,0].max()+.5y_min,y_max=X[:,1].min()-.5,X[:,1].max()+.5h=0.01#生成一个点间网格,它们之间的距离为hxx,yy=np.meshgrid(np.arange(x_min,x_max,h),np.arange(y_min,y_max,h))#预测Z=pred_func(np.c_[xx.ravel(),yy.ravel()])Z=Z.reshape(xx.shape)#绘制轮廓和训练示例plt.contourf(xx,yy,Z,cmap=plt.cm.Spectral)plt.scatter(X[:,0],X[:,1],c=y,cmap=plt.cm.Spectral)

In[5]:

plot_decision_boundary(lambdax:clf.predict(x))plt.title("LogisticRegression")

这个图显示了通过逻辑回归学习到的决策边界。这里的直线已经尽可能的把数据集分成两部分,但是分的效果还是不理想,还是有些分错类别的。

现在我们构建一个3层神经网络,其中包含一个输入层,一个隐藏层和一个输出层。输入层中的节点数由我们的数据的维数确定的,这里是2。输出层中的节点数由我们拥有的类别数量决定,这里也是2。因为我们只有两个类实际上只用一个输出节点可以预测0或1,但是有两个可以让网络更容易扩展到更多的类。网络的输入将是x和y坐标,其输出将是两个概率,一个用于类别0,一个用于类别1。神经网络如图所示:

我们可以选择隐藏层的维度也就是节点数。隐藏层的节点越多,得到的神经网络功能就越复杂。但更高的维度需要付出代价。首先,学习网络参数和预测就需要更多的计算量。同时更多参数也意味着我们得到的模型更容易过拟合。如何选择隐藏层的大小?虽然有一些指导方针,但实际上具体问题需要具体分析,稍后我们将改变隐藏层中的节点数量来查看它如何影响我们的输出。

现在我们把具体代码实现来,这里先定义一些后面求梯度会用到的参数:

In[6]:

num_examples=len(X)#训练集大小nn_input_dim=2#输入层维度nn_output_dim=2#输出层维度#梯度下降参数,这两个参数是为设定的超参数epsilon=0.01#梯度下降的学习率reg_lambda=0.01#正则化强度首先我们实现上面定义的损失函数,这里用它来评估我们的模型的好坏:

In[7]:

In[8]:

In[9]:

下面来看看如果我们训练隐藏层大小为3的网络会发生什么。

In[10]:

#隐藏层大小为3model=build_model(3,print_loss=True)#绘制决策边界plot_decision_boundary(lambdax:predict(model,x))plt.title("DecisionBoundaryforhiddenlayersize3")

Lossafteriteration0:0.432387Lossafteriteration1000:0.068947Lossafteriteration2000:0.068901Lossafteriteration3000:0.071218Lossafteriteration4000:0.071253Lossafteriteration5000:0.071278Lossafteriteration6000:0.071293Lossafteriteration7000:0.071303Lossafteriteration8000:0.071308Lossafteriteration9000:0.071312Lossafteriteration10000:0.071314Lossafteriteration11000:0.071315Lossafteriteration12000:0.071315Lossafteriteration13000:0.071316Lossafteriteration14000:0.071316Lossafteriteration15000:0.071316Lossafteriteration16000:0.071316Lossafteriteration17000:0.071316Lossafteriteration18000:0.071316Lossafteriteration19000:0.071316

这看起来很不错。我们的神经网络能够找到一个成功分离两个类别的决策边界。

在上面的示例中,我们设置了隐藏层大小3,接着看看改变隐藏层大小对结果的影响。

In[11]:

我们可以看到,隐藏层在低维度时可以很好地拟合数据的总体趋势,更高的维度容易过拟合。当隐藏层维度过大时,模型尝试着去“记住”数据的形状而不是拟合他们的一般形状。通常情况我们还需要一个单独的测试集来评估我们的模型,隐藏层维度较小的模型在这个测试集上的表现应该更好,因为这个模型更加通用。我们也可以通过更强的正则化来抵消过度拟合,但是选择一个合适的隐藏层大小是一个比较划算的解决方案。

THE END
1.机器学习数据集合集!AiWaf-2 是一个高级的机器学习系统,使用多种模型来检测三种类别的网络行为:XSS攻击、SQL注入攻击和良性请求。该系统旨在提供高精度的威胁识别和分类,包括: GRU (门控循环单元) CNN (卷积神经网络) KNN (K-最近邻) SVM (支持向量机) RF (随机森林) https://blog.csdn.net/Kyzy_1919/article/details/144371975
2.机器学习Hinton 因通过神经网络对现代机器学习作出的奠基性贡献,获得 2024 年诺贝尔物理学奖。“将超越人的智力水平”:机器学习先驱获2024年诺贝尔物理学奖 机器学习2024-10-09 10:15 1896 划重点 012024年诺贝尔物理学奖授予美国普林斯顿大学的John Hopfield和加拿大多伦多大学的Geoffrey Hinton,以表彰他们开发了理解神经https://ailab.cn/ml/
3.训练简单的密集神经网络在本单元中,我们将了解如何训练最简单的密集神经网络(或感知器)识别手写数字,并尝试可视化网络权重以了解其工作原理。https://docs.microsoft.com/zh-cn/training/modules/intro-computer-vision-pytorch/3-train-dense-neural-networks
4.量子神经网络初体验从上述打印可以看到,此时构建的哈密顿量为对第0位量子比特执行泡利Z算符测量,且系数为-1。之所以将系数设为-1,是因为在量子神经网络的训练中,Ansatz中的参数的梯度会一直下降,同时测量值也会一直减少。如果最后收敛于-1,那么此时对应的量子态是|1?而不是|0,如下所示 https://www.mindspore.cn/mindquantum/docs/zh-CN/r0.5/initial_experience_of_quantum_neural_network.html
5.PaddlePaddle/PaddleClas:Atreasurechestforvisual基于ImageNet1k 分类数据集,PaddleClas 支持 37 个系列分类网络结构以及对应的 217 个图像分类预训练模型,训练技巧、每个系列网络结构的简单介绍和性能评估将在相应章节展现,下面所有的速度指标评估环境如下: Arm CPU 的评估环境基于骁龙 855(SD855)。 Intel CPU 的评估环境基于 Intel(R) Xeon(R) Gold 6148。 GPUhttps://openi.pcl.ac.cn/PaddlePaddle/PaddleClas/src/branch/develop/docs/zh_CN/models/ImageNet1k
6.获全美的壁纸和神经网络训练素材的网站集合获取精美的壁纸和神经网络训练素材的网站集合 天天对着电脑,也是经常要换一下屏幕的底色,让人耳目一新的感觉。本想随便在百度上找几个图片,没想到现在的图片都限制大小了,并且很多都收费了。免费的东西用惯了,只能花点时间自己去找点这样的网站,在一段时间的搜索尝试中,终于找到了几个比较ok的。这里推荐几个网站https://blog.51cto.com/u_15054047/4134143
7.python使用Tensorflow训练BP神经网络实现鸢尾花分类python所以只要给出足够多的鸢尾花花萼、花瓣数据,以及对应种类,使用合适的神经网络训练,就可以实现鸢尾花分类。 搭建神经网络 输入数据是花萼长、花萼宽、花瓣长、花瓣宽,是n行四列的矩阵。 而输出的是每个种类的概率,是n行三列的矩阵。 我们采用BP神经网络,设X为输入数据,Y为输出数据,W为权重,B偏置。有 https://www.jb51.net/article/212039.htm
8.愉快使用谷歌免费人工智能平台colab,训练你的神经网络模型,为你的言归正传,本人研究方向为音频信息隐藏,是不是很憨的方向,具体的暂时做使用神经网络做音频隐写分析。既然使用神经网络了,那肯定需要GPU资源了。总的来说就是需要一台cpu和gpu都很强劲,内存很大的工作站了。但是苦于实验室和导师现状,我一时半会搞不到GPU资源。但是天无绝人之路,谷歌提供了这个免费的平台。国内https://www.shanyemangfu.com/colab.html
9.神经网络的训练方法专利名称::神经网络的训练方法技术领域::本发明一般地涉及人工神经网络及其操作,尤其但不专门涉及一种改进的神经网络训练方法和/或系统,该方法和/或系统使得神经元能够在训练过程屮根据需要增加到网络中。背景技术::随着过去十年间产生的数据集的扩增和规模,人们更感兴趣于开发能够用于找到数据集内的一些关系、也就是https://www.xjishu.com/zhuanli/55/200680042779.html
10.最新训练神经网络的五大算法腾讯云开发者社区神经网络模型的每一类学习过程通常被归纳为一种训练算法。训练的算法有很多,它们的特点和性能各不相同。 问题的抽象 人们把神经网络的学习过程转化为求损失函数f的最小值问题。一般来说,损失函数包括误差项和正则项两部分。误差项衡量神经网络模型在训练数据集上的拟合程度,而正则项则是控制模型的复杂程度,防止出现过https://cloud.tencent.com/developer/article/1090593
11.不敲代码,也能训练深度神经网络?试试DeepCognition不敲代码,也能训练深度神经网络?试试DeepCognition 提起AI与编程,很多人的脑海里,浮现出的画面,也许是这样子的。 目前,即便是代码量要求较小的自动化 AI 模型训练框架,比如 AutoML/AutoKeras等,使用它们,也需要一定的的编程基础,需要编写许多行的代码。https://www.jianshu.com/p/4454893ad7eb
12.MIT史上首次用AI控制动物大脑活动!技术前沿洞察新闻频道找到神经网络的“子网络”,让神经网络训练更快更好 如今,我们生活中几乎所有基于人工智能的产品都依赖于有自主学习并标记数据能力的“深度神经网络”。 然而,为了更好地学习,神经网络通常需要需要大量的数据集进行大型的训练——这一训练过程耗时长、需要配备昂贵的GPU,有时还需要定制设计的硬件。这些客观因素导致深度https://news.hexun.com/2019-05-14/197178826.html
13.字节跳动破局联邦学习:开源Fedlearner框架,广告投放增效209%联邦学习技术本质上是为了帮助联邦双方更好地训练模型。不同公司由于此前积累的数据类型特征不同,落地应用场景不同,会采用不同的模型训练方式。 常见的模型训练包括神经网络模型训练、树模型训练、线性回归模型训练等等。其中,神经网络训练模型最常见的落地应用场景是推荐,包括个性化内容推荐、广告推荐等等,而树模型更多在https://maimai.cn/article/detail?fid=1550604028&efid=zqj9rqK7Yf_Us-lu-0Wnmg
14.清华大学交叉信息研究院然而,研究人员发现深度学习网络常常倾向于寻找“捷径”的解决方案,当数据分布与训练集有稍许偏差时,这样的捷径解常常会出现灾难性的错误。该研究发现,当人们可以根据输入信号中的关键成分提供一个额外的“引导”特征时,深度神经网络可以成功避免捷径,这个“引导”特征可以是一个对于输出目标的粗略估计。这样的“引导”是https://iiis.tsinghua.edu.cn/show-9635-1.html
15.基于一维宽核卷积神经网络—长短时记忆网络的单导脑电信号睡眠本文从数据类不均衡处理及神经网络模型训练优化两方面开展研究工作[18-19],构建高性能的睡眠状态识别模型,以达到准确分类睡眠状态的目的。首先,针对N1样本量与其他状态样本量不均衡的问题,采用合成少数过采样技术(synthetic minority over sampling technique,SMOTE)联合托梅克联系对(Tomek link,Tomek)算法(SMOTE-Tomek)对https://www.cjebm.com/article/10.7507/1001-5515.202204021