- Objective: why解决什么问题?
- Breadcrumb:
# 概念阐释
神经网络的训练过程简单来说就是先输入一批样例,然后调整网络中的[[weights 权重]]来最小化[[Loss function 损失函数]]。
> 神经网络的实际学习过程是怎样的呢?归根结底,核心在于确定哪些 [[weights 权重]]能够最好地捕捉给定的训练样例。有各种各样的详细选择和“超参数设置”(之所以这么叫,是因为权重也称为“参数”),可以用来调整如何进行学习。有不同的[[Loss function 损失函数]]可以选择,如平方和、绝对值和,等等。有不同的**损失最小化**方法,如每一步在权重空间中移动多长的距离,等等。然后还有一些问题,比如“批量”(batch)展示多少个样例来获得要最小化的损失的连续估计。是的,我们可以(像在Wolfram语言中所做的一样)应用机器学习来自动化机器学习,并自动设置超参数等。
# 实例
# 相关内容
神经网络的训练本质上就是在处理数据(由数组成的数组组块)。但这些数组完全可以重新排列和重塑。而处理数的数组正是[[GPU]]所擅长的事,这也是为什么神经网络的训练常受限于GPU的数量。
## 针对特定的任务选择何种神经网络架构
即使看似完全不同的任务,也可以使用同样的架构,这就像我们通常希望人工神经网络完成的任务就是类人的任务。
人工神经网络在完成任务时有点像人类在完成任务时一样,不要给它安排太多的具体任务。例如在语音转写文本时,要先分析音频 -> 将音频转换为音素等等。而是训练神经网络解决 **端到端的问题**([[machine learning 机器学习]]?),即输入语音,输出文本,让它自己“发现”必要的中间特征、编码等。
在任务完成度上,只要提供足够的样例和训练足够长的时间就可以得到想要的结果。
## 如何获取用于训练神经网络的数据
- 通过[[Supervised learning 监督学习]]获取数据
- 通过[[unsupervised learning 无监督学习]]获取数据:与[[图像识别]]不同,ChatGPT的学习实际上可以从它得到的任何文本样例中学习
# 参考资料
- 《这就是ChatGPT》神经网络训练的实践和学问 p42-50