前言
本文教程均来自b站【小白也能听懂的人工智能原理】,感兴趣的可自行到b站观看。
代码及工具箱
本专栏的代码和工具函数已经上传到GitHub:1571859588/xiaobai_AI: 零基础入门人工智能 (github.com),可以找到对应课程的代码
正文
深度学习简介
深度学习的核心在于让神经网络通过增加隐藏层和神经元来深入学习数据。这样做可以帮助模型发现数据中复杂的规律,从而做出更准确的预测。
如果一个网络的隐藏层超过三层,我们就叫它深度神经网络。虽然听起来技术性很强,但其实深度学习就是让计算机通过分析很多数据来学习如何做出更好的预测。
我们可能不清楚网络内部每个部分具体是如何运作的,但通过给网络提供数据并进行训练,我们可以看到它的效果。虽然不能直接控制网络的所有部分,但我们可以通过改变一些重要的设置,比如学习速度、选择不同的激活函数或者调整隐藏层的数量,来影响网络的训练和表现。这个过程就是我们常说的“调参”。
Tensorflow游乐场体验
让我们来试试Tensorflow游乐场,这个在线工具让初学者可以轻松地搭建和训练自己的神经网络。
这个网站界面简单,包括文字说明、控制区、数据集选择和神经网络的可视化展示。
数据集选择区提供了四种数据集,都是我们在课程中见过的,涉及两个特征维度的输入。
我们先从简单的第三个数据集开始,这个数据集容易分开,就像我们之前讨论的豆豆问题,大小和颜色代表两个特征,颜色不同的点代表是否有毒。
在三维图像的俯视图上,我们的任务是用预测函数的0.5等高线来分开两种豆豆。这种简单问题只需要一个输出层神经元,不需要隐藏层。
设置时,我们可以选择Sigmoid作为激活函数,学习率用默认的0.03。
运行模型,我们可以看到预测曲面的0.5等高线很好地分开了两种豆豆。
接着,我们看第一个数据集,它是圆形分布的,中间蓝色有毒,周围黄色无毒。要分开这种圆形数据,需要至少三个神经元在隐藏层。因为一个神经元的等高线是直线,三个神经元可以形成一个闭合圆形,这样就可以区分内外。
通过这些分析,我们对搭建神经网络有了基本认识。虽然实际计算可能更复杂,但Tensorflow游乐场是一个很好的实践和学习平台。
让我们在Tensorflow游乐场上试试。首先,我们给网络加上一个隐藏层,里面放三个神经元,学习率保持原样。这样设置后,模型跑起来,能很好地把数据分成两类。
如果你把隐藏层里的神经元减少到两个,模型就分不开数据了。这说明多一个神经元,网络的分辨能力就强一些。
然后,我们再试试第二个数据集,它是一个特殊的问题,叫做异或(XOR)。异或的规则是,两个输入如果一样,结果是0;不一样,结果是1。很久以前,人们发现单个感知器解决不了这个问题,这让很多人对神经网络失去了信心。
但现在我们知道了,只要在隐藏层里放三个神经元,网络就能解决异或问题,很好地分类数据。这说明神经网络比单个感知器厉害,能处理更复杂的分类任务。
点击【初学人工智能原理】【9】深度学习:神奇的DeepLearning - 古月居 (guyuehome.com)可查看全文