进程、线程和协程


进程,是程序运行时的实例,是操作系统分配资源的基本单位。确保了程序运行的独立性。
线程,是进程中的执行单元,是操作系统调度的最小单位。线程共享进程的内存空间,可以访问进程的资源。
协程,是一种用户态的轻量级”线程”,这种机制的关键在于 Python 中的事件循环。事件循环维护着一个就绪队列,通过不断轮询来检查和调度可以执行的协程。所有的协程都在同一个线程中执行,它们通过主动交出控制权来实现任务切换。

...More

装饰器和装饰器模式

装饰,实际上是对函数、对象行为的改变,或是扩展、增强、甚至替换。它接收一个个体,最终输出一个装饰后的个体。

这里,装饰器是 Python 中的概念,而装饰器模式来源于设计模式。把它们放在一起,是因为它们都具备有”装饰”的特性,但也有一些不同。

...More

神经网络隐藏层中的过拟合问题

回顾一下,在 上一篇文章中,我们提到了在反向传播过程中的梯度计算。
梯度,是损失函数(成本函数)对参数的偏导数组成的向量。它的方向是损失函数上升最快的方向,它的值是损失函数上升最快的速率。
如上图示,是一张3D的损失函数图,其中,x轴和y轴分别是参数 w 和 b,z轴是损失函数的值。我们最终的目标是希望损失函数最小,即找到最优的参数 w 和 b。
这就像是一个下山的过程,我们需要找到那个下山最快的方向,但是,山路是曲折的,我们需要不断的调整方向,逐步跨步(按照一个学习率)。跨步太大,可能会错过最优解,跨步太小,可能会收敛太慢。
当然,实际过程要复杂的多,在神经网络中往往会存在很多的隐藏层,而每一层都需要计算梯度,而每一层的梯度计算都需要依赖于前一层的输出以及对后一层结果产生的影响。影响可能会被放大,也可能会被缩小,这就是梯度消失和梯度爆炸的本质原因。

...More

前向传播和反向传播

alt text
图片来源

神经网络,是一种模拟人脑神经元网络的计算模型。它由多个神经元组成,每个神经元通过权重和偏移,对输入信号进行处理,最终输出结果。
如上图示,每个神经元就像是一个仪表盘,它通过输入的值,经过处理,最终输出一个值。训练过程,就是在调整这些仪表盘的参数,使得输出尽可能接近目标输出。

...More

© 2025 YueGS