随笔分类 - Java
使用 Spring AMQP 进行错误处理-Java快速入门教程
摘要:1. 简介 异步消息传递是一种松散耦合的分布式通信,在实现事件驱动体系结构方面越来越流行。幸运的是,Spring框架提供了 SpringAMQP 项目,允许我们构建基于AMQP的消息传递解决方案。 另一方面,在此类环境中处理错误可能是一项艰巨的任务。因此,在本教程中,我们将介绍处理错误的不同策略。
阅读全文
死锁、活锁和饥饿-架构快速进阶教程
摘要:1. 简介 在多进程并发环境中,多个进程可能会争用一组有限的资源。如果进程请求资源,而该资源当前不可用,则进程将等待该资源。有时,此等待过程永远不会成功访问资源。这种对资源的等待会导致三种情况——死锁、活锁和饥饿。 在本教程中,我们将讨论这三个条件。 2. 死锁 在本节中,我们将首先讨论死锁、其必要
阅读全文
Java 线程死锁和活锁-Java快速进阶教程
摘要:1. 概述 虽然多线程有助于提高应用程序的性能,但它也带来了一些问题。在本教程中,我们将在 Java 示例的帮助下研究两个这样的问题,死锁和活锁。 2. 死锁 2.1. 什么是死锁? 当两个或多个线程永远等待另一个线程持有的锁或资源时,就会发生死锁。因此,应用程序可能会停止或失败,因为死锁线程无法进
阅读全文
Java中的梯度下降-Java快速进阶教程
摘要:1. 简介 在本教程中,我们将了解梯度下降算法。我们将在 Java 中实现该算法并逐步说明它。 2. 什么是梯度下降? 梯度下降是一种优化算法,用于查找给定函数的局部最小值。它广泛用于高级机器学习算法中,以最小化损失函数。 坡度是坡度的另一个词,下降意味着下降。顾名思义,梯度下降沿着函数的斜率向下,
阅读全文
线性回归与逻辑回归-AI快速进阶系列
摘要:1. 概述 在本教程中,我们将研究线性回归和逻辑回归之间的异同。 我们将首先研究回归的概念。通过这种方式,我们将看到回归与科学中的还原论方法的关系。 然后,我们将按顺序研究线性回归和逻辑回归。我们还将提出两种回归方法在特征向量和目标变量方面的形式化。 最后,我们将研究对可观察量执行回归的两种方法之间
阅读全文
决策树与随机森林-AI快速进阶系列
摘要:1. 简介 在本教程中,我们将展示决策树和随机森林之间的区别。 2. 决策树 决策树是一个树形模型,指导我们检查对象的特征以输出其离散或连续标签。例如,这里有一棵树,根据天气状况预测一天是否适合在户外玩耍: 内部节点告诉我们要检查哪些特征,叶子揭示树的预测。他们如何产生预测?每个叶子都包含训练数据集
阅读全文
随机森林与极度随机化树-AI快速进阶系列
摘要:1. 简介 在本教程中,我们将回顾随机森林 (RF) 和极端随机树 (ET):它们是什么、它们的结构以及它们有何不同。 2. 定义 随机森林和极端随机树属于一类称为集成学习算法的算法。集成学习算法利用许多学习算法的强大功能来执行任务。例如,在分类任务中,集成学习算法可以聚合来自多个不同分类器的预测以
阅读全文
计算机科学中的谓词-Java快速进阶教程
摘要:1. 简介 谓词问一个问题,答案是真还是假,或者换句话说,是或否。 在计算机科学和数学中,这个问题以函数的形式出现。函数的结果为真或假(是或否)。答案的数据类型,同样在数学和计算机科学中都称为布尔值。 在本教程中,我们将通过一些示例更深入地介绍这些概念。 2. 简单定义 谓词是一组参数的函数,该参数
阅读全文
什么是交叉熵-AI快速进阶系列
摘要:1. 概述 在本教程中,我们将研究机器学习交叉熵的定义。 我们将首先讨论信息论中的熵的概念及其与监督学习的关系。 然后,我们将看到如何从单变量分布中的熵定义中推导出二元分布中的交叉熵。这将使我们很好地理解一个如何概括另一个。 最后,我们将看到如何使用交叉熵作为损失函数,以及如何通过梯度下降来优化模型
阅读全文
机器学习模型的损失和准确性解释-AI快速进阶系列
摘要:1. 简介 使用机器学习时,我们有不同的指标来告诉我们模型的表现如何。但是,这些措施可能会混淆它们的含义、如何解释或它们究竟是什么。知道了这一点,我们可以推断出更多关于我们模型的信息。 在本教程中,我们将重点介绍损失和准确性。它们都是训练模型时要考虑的基本值。 2. 损失 损失是一个值,表示模型中误
阅读全文
生成对抗网络:判别器损失和生成器损失-AI快速进阶系列
摘要:1. 简介 在本教程中,我们将讨论生成对抗网络(GAN),一种无监督的深度学习方法。主要,我们将介绍构成 GAN 的两个主要模型的架构,即生成器和鉴别器模型。我们还将通过它们的损失函数分析两个模型之间的主导行为。 2. 生成对抗网络 GAN是一个机器学习框架,由Ian J. Goodfellow于2
阅读全文
生成对抗网络-AI快速进阶系列
摘要:1. 概述 在本教程中,我们将介绍生成对抗网络 (GAN)。 首先,我们将介绍术语生成模型及其分类法。然后,将描述GAN的架构和训练管道,并附有详细示例。最后,我们将讨论GAN的挑战和应用。 2. 生成模型 在机器学习中,有两种主要的学习类型: 在监督学习中,我们被给予自变量X和相应的标签Y,我们的
阅读全文
蒙特卡洛树-AI快速进阶系列
摘要:1. 概述 在本文中,我们将探讨蒙特卡罗树搜索 (MCTS) 算法及其应用。 我们将通过在Java 中实现井字游戏来详细研究它的阶段。我们将设计一个通用解决方案,该解决方案可用于许多其他实际应用,只需进行最少的更改。 2. 简介 简单地说,蒙特卡罗树搜索是一种概率搜索算法。它是一种独特的决策算法,因
阅读全文
监督、半监督、无监督和强化学习简介-AI快速进阶系列
摘要:1. 概述 机器学习包括应用数学和统计方法让机器从数据中学习。它由四大技术家族组成: 监督学习 半监督学习 无监督学习 强化学习 在本文中,我们将探讨机器学习的目的以及何时应该使用特定技术。因此,我们将根据简单的示例了解它们的工作原理。 2. 监督学习 监督学习是一种由向机器学习模型提供标记数据组成
阅读全文
使用 GAN 进行数据增强-AI快速进阶系列
摘要:1. 概述 在本教程中,我们将讨论使用生成对抗网络 (GAN) 进行数据增强。首先,我们将介绍数据增强和 GAN,然后我们将介绍一个能够生成非常逼真的样本的 GAN 架构。 2. 数据增强 深度学习彻底改变了许多领域,并已成为许多复杂任务(如文本翻译、图像分割和自动语音识别)的最新方法。大型注释数据
阅读全文
ExecutorService之等待线程完成-Java快速进阶教程
摘要:1. 概述 ExecutorService框架使在多个线程中处理任务变得容易。我们将举例说明一些等待线程完成执行的场景。 此外,我们还将展示如何优雅地关闭ExecutorService并等待已经运行的线程完成其执行。 2.Executor关闭后 当使用Executor时,我们可以通过调用shutdo
阅读全文
Java 中的线程池简介-Java快速进阶教程
摘要:1. 概述 本教程介绍了 Java 中的线程池。我们将从标准Java库中的不同实现开始,然后查看Google的Guava库。 2. 线程池 在 Java 中,线程映射到系统级线程,这些线程是操作系统的资源。如果我们不受控制地创建线程,我们可能会很快耗尽这些资源。 操作系统也会在线程之间进行上下文切换
阅读全文
Java 9 CompletableFuture API 改进-Java快速进阶教程
摘要:1. 简介 Java 9对CompletableFuture类进行了一些更改。这些更改是作为JEP 266的一部分引入的,目的是解决自 JDK 8 中引入以来常见的抱怨和建议,更具体地说,支持延迟和超时,更好地支持子类化和一些实用程序方法。 在代码方面,API 附带了八个新方法和五个新的静态方法。为
阅读全文
Guava的Futures与ListenableFuture-Java快速进阶教程
摘要:1. 简介 Guava为我们提供了ListenableFuture,在默认的Java Future上具有丰富的API。让我们看看如何利用这一点来发挥我们的优势。 2.Future, ListenableFuture and Futures 让我们简要看看这些不同的类是什么以及它们之间的关系。 2.1
阅读全文
如何在 Java 中运行 shell 命令-Java快速入门教程
摘要:1. 概述 在本文中,我们将学习如何从 Java 应用程序执行 shell 命令。 首先,我们将使用 .exec() 方法,其由运行时类提供。然后,我们将了解ProcessBuilder,它更易于定制。 2. 操作系统依赖性 命令行管理程序命令依赖于操作系统,因为它们的行为因系统而异。因此,在我们创
阅读全文
浙公网安备 33010602011771号