Brain.js 的力量:构建多样化的人工智能应用程序

机器学习(ML)是人工智能 (AI) 的一种形式,旨在构建可以从处理的数据中学习或使用数据更好地执行的系统。人工智能是模仿人类智能的系统或机器的总称。

机器学习(ML)与复杂的数学纠缠在一起,让大多数初学者感到害怕。由于与密集的数学方程和看似神秘的术语的联系,这门学科通常看起来难以入门。

随着 Brain.js 的出现,可以更加轻松地驾驭机器学习,摆脱令人生畏的数学问题,并让初学者能够顺利进入这个有趣的世界。本文通过一个实际示例演示 Brain.js 如何轻松理解神经网络。

基础知识

神经网络是机器学习的支柱, Brain.js 可以用 JavaScript 创建神经网络,超越互联网上以 Python 为中心的文档。 Brain.js 让 Web 开发人员更容易理解这个概念。

将神经网络想象成人脑,一个由分层互连节点组成的网络。这些层包括输入层、隐藏层和输出层,以及从输入单向移动到输出的数据。

神经网络消耗大量标记数据,学习模式和关联,做出预测,然后反映所需的输出。令人惊讶的是,神经网络的准确性和速度超越了人类大脑!

Brain.js

Brain.js 是一个开源库,是一种针对神经网络的 JavaScript 库。它简化了教导机器如何识别给定输入和输出之间的模式和关系的任务。它简单明了,很适合初学者,为具有 Web 开发背景的开发人员提供了平滑的学习曲线。

借助 Brain.js 构建神经网络、使用数据集对其进行训练并逐渐让模型根据学习到的数据进行预测变得可行。

打开方式

首先,像其它前端项目一样,使用 npm 安装 Brain.js:

npm install brain.js

假设训练数据位于 JSON 文件 data.json 中,项目结构将如下所示:

brainjs
    ┣ node_modules
    ┣ data.json
    ┣ index.js
    ┣ package-lock.json
    ┗ package.json

接下来导入 Brain.js 库和包含训练数据的数据文件。然后构建神经网络布局,如下代码:

/**
 * 引入 Brain.js
 */
const brain = require("brain.js");

/**
 * 导入数据文件
 */
const data = require("./data.json");

/**
 * 创建神经网络
 */
const network = new brain.recurrent.LSTM();

使用 Brain.js 内置的 LSTM(长短期记忆)。 LSTM 是一种 RNN(循环神经网络),允许机器学习序列具有更长的时间步长,从而避免与长期依赖相关的问题。

训练模型

这里训练数据将是一个对象数组,其中每个对象包括键值 text 和 category。根据文本中的单词,可以将给定的短语分类为基于后端 backend 或基于前端 frontend 。

[
    {
        "text": "the user interface component is fixed",
        "category": "frontend"
    },
    {
        "text": "the css file look inituitive",
        "category": "frontend"
    },
    {
        "text": "i need a few ui designs",
        "category": "frontend"
    },
    {
        "text": "the database has issues",
        "category": "backend"
    },
    {
        "text": "the button is centered",
        "category": "frontend"
    },
    {
        "text": "make it clickable",
        "category": "frontend"
    },
    {
        "text": "i did the api integration",
        "category": "backend"
    },
    {
        "text": "a driver code should have less memory usgae",
        "category": "backend"
    },
    {
        "text": "it needs more memory",
        "category": "backend"
    },
    {
        "text": "code with responsive design in users interface",
        "category": "frontend"
    },
    {
        "text": "navigate the website easily",
        "category": "frontend"
    },
    {
        "text": "user login and authentication",
        "category": "backend"
    },
    {
        "text": "forms and dropdowns lists",
        "category": "frontend"
    },
    {
        "text": "username password email are stored",
        "category": "backend"
    },
    {
        "text": "programming loading animation",
        "category": "frontend"
    },
    {
        "text": "mysql, mongo, firebase databases",
        "category": "backend"
    },
    {
        "text": "restful api is useful with backend",
        "category": "backend"
    },
    {
        "text": "data access layer is not presentation layer",
        "category": "backend"
    },
    {
        "text": "the web browser loads dynamic webpages slowly",
        "category": "frontend"
    }
]

将这些数据提供给神经网络进行训练。为了训练模型,这里加载训练数据并对其进行迭代:

/**
 * 训练模型和设置数字,在训练过程中进行迭代
 */
network.train(data, {
    iterations: 2000,
});

由于神经网络通过多次迭代来学习模式,因此这个步骤可能非常耗时。

测试模型

训练模型后,将向其提供一个句子来确定该短语是前端术语还是后端术语:

/** 提供输入进行分类 */
const output = network.run("navigate the website easily");
console.log(`分类:${output}`);

对于句子 navigate the website easily,模型预测的分类为 frontend

总结

Brain.js 是一个优秀的库,适合具有 Web 开发背景的且对机器学习有兴趣的初学者。本文阐述了通过使用 Brain.js 构建机器学习模型(ML 的训练、测试和预测)的简便性。

Brain.js 让 JavaScript 开发人员更容易使用机器学习,它可能不是唯一的机器学习库,就像 TensorFlow.js 和 ML5.js 等其他库一样,但它无疑提供了最轻松的学习曲线之一。

虽然 Brain.js 可能不涵盖大规模机器学习项目,但它确实提供了一个绝佳的起点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/515875.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

逻辑代数点

文章目录 与或非与非 或非 与或非异或同或布尔恒等式代入定理例子例子 反演定理例子例子:例子: 真值表 与 逻辑式:逻辑式 与 逻辑图最小项例子:最小项编号最小项性质最小项之和 最大项最大项性质最大项编号 逻辑代数的化简公式化简法卡诺图化简法表示逻辑代数用卡诺…

【蓝桥备赛】异或和——树状数组、DFS

题目链接 异或和 思路分析 树上每个点都有一个点权,对树上的更新操作是修改指定点的点权,查询操作是查询指定点为根结点的子树点权异或和。 这里的这些操作都和树状数组的单点修改和区间查询非常相似,即我们在修改一个点时,同时…

Three.js——scene场景、几何体位置旋转缩放、正射投影相机、透视投影相机

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

医院云HIS系统源码,二级医院、专科医院his系统源码,经扩展后能够应用于医联体/医共体

基于云计算技术的B/S架构的HIS系统,为医疗机构提供标准化的、信息化的、可共享的医疗信息管理系统,实现医患事务管理和临床诊疗管理等标准医疗管理信息系统的功能。 系统利用云计算平台的技术优势,建立统一的云HIS、云病历、云LIS&#xff0…

Linux集群部署项目

目录 一,环境准备 1.1.安装MySQL 1.2.安装JDK 1.3.安装TomCat 1.4.安装Nginx 二,部署 2.1.后台服务部署 2.2.Nginx配置负载均衡及静态资源部署 一,环境准备 1.1.安装MySQL 将MySQL的安装包上传至服务器 查看系统中是否存在mariadb&…

167.乐理基础-四个偏音、六声、七声、清雅燕乐

如果到这五线谱还没记住还不认识的话去看102.五线谱-高音谱号与103.五线谱-低音谱号这两个里,这里面有五线谱对应的音名,对比着看 如果不认识调号去看112.五线谱的调号(一)、113.五线谱的调号(二)、114.快…

图片改大小尺寸怎么改?几个修改图片尺寸的方法

日常生活和工作中,图片的大小和尺寸对于我们的工作和生活都至关重要,因此我们经常需要调整图片的大小。我们都知道压缩图是一款功能强大的图片在线处理工具,那么用它怎么调整图片大小呢?下面就让我们一起来看一下具体的操作步骤。…

Sora的阅读技术报告

sora的技术报告 走进sorasora的特性sora的介绍sora的实际操作sora的发展安全措施研究技术 走进sora 大家好,我是清风之上。随着人工智能的发展,慢慢的他已经出现在我们生活中的各个角落,其中有API推出的sora,让我们震惊不已&…

应急响应实战笔记05Linux实战篇(2)

第2篇:捕捉短连接 0x00 前言 ​ 短连接(short connnection)是相对于长连接而言的概念,指的是在数据传送过程中,只在需要发送数据时,才去建立一个连接,数据发送完成后,则断开此连接…

多叉树题目:N 叉树的层序遍历

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题:N 叉树的层序遍历 出处:429. N 叉树的层序遍历 难度 4 级 题目描述 要求 给定一个 N 叉树的根结点 root \texttt{root} root&#xf…

架构之道:架构、结构、中间件、安全性

对本篇文章中有些此不是很理解的,可以看之前讲解的后端通用技术大全:后端技术大全-CSDN博客 一起食用,效果更加。 一、架构到底是什么 关于架构这个概念很难给出一个明确的定义,也没有一个标准的定义。 硬是要给一个概述&#…

社交媒体市场:揭示Facebook的商业模式

在数字化时代,社交媒体已经成为人们生活中不可或缺的一部分。Facebook作为全球最大的社交媒体平台之一,其商业模式的运作方式对于了解社交媒体市场的发展趋势和影响力至关重要。本文将深入探讨Facebook的商业模式,剖析其运作机制,…

ChatGPT 之百万富翁

原文:The ChatGPT Millionaire 译者:飞龙 协议:CC BY-NC-SA 4.0 介绍 当我写下这些文字时,ChatGPT 已经成为有史以来增长最快的技术平台 - 仅用 5 天就达到了一百万用户。相比之下,Netflix 用了 3 年,Twit…

查询SQL server数据库在后台执行过的语句

查询SQL server数据库在后台执行过的语句 SELECT TOP 30000total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数],qs.total_worker_time/qs.execution_count/1000 AS [平均消耗CPU 时间(ms)],last_execution_time AS [最后一次执行时间],min_worker_ti…

机器狗首次阵亡!美国警方披露详情

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 那天,唯一的伤亡者是我们的机器狗。 美国警察最新公布一则案件:波士顿…

Spring API 接口和自定义类来实现AOP(Spring学习笔记十)

1、什么是AOP 全称是 Aspect Oriented Programming 即:面向切面编程。是OOP(面向对象编程)的延续,也是Spring框架中的一个重要内容,是函数式编程的一种衍生泛型。简单的说他就是把我们程序重复的代码抽取出来&#xf…

【C++】引用与指针

​​ 🌱博客主页:青竹雾色间. 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注 ✨人生如寄,多忧何为 ✨ 目录标题 前言一.引用(Reference)二.指针(Pointer)三. 比较与总结 前…

随机生成Long全范围数

随机生成Long全范围数 前言实现思路主要代码分区随机生成过程案例:随机生成100个数 朴素的比较总结 前言 使用自带的Random.nextLong()函数生成Long型的长整数,范围比较小,如下图。100个随机数没看见10以内的数字。所以考虑实现随机化生成大…

新质生产力丨zData X 数据库一体机助力财政一体化平台全面升级

在数字化转型的大潮中,某财政局积极响应国家财政管理现代化的战略部署,启动了财政一体化平台升级改造工程。该项目旨在将财政局内部各部门及其各自独立的业务系统进行全面整合,构建起一个集约化的财政管理平台,力求通过技术创新推…

【剑指offr--C/C++】JZ31 栈的压入、弹出序列

一、题目 二、思路及代码 借助一个辅助栈来模拟入栈过程, ①在入栈之前先判断当前要入栈的元素是否与出栈数组当前元素相同, ② 如果不相同就入栈; ③如果相同就不用入栈了(不入栈出栈),然后再依次取出栈的…