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 可能不涵盖大规模机器学习项目,但它确实提供了一个绝佳的起点。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

时序分解 | Matlab实现GSWOA-VMD改进鲸鱼优化算法优化变分模态分解时间序列信号分解

时序分解 | Matlab实现GWO-CEEMDAN基于灰狼算法优化CEEMDAN时间序列信号分解 目录 时序分解 | Matlab实现GWO-CEEMDAN基于灰狼算法优化CEEMDAN时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现GSWOA-VMD改进鲸鱼优化算法优化变分模态分解时间序…

盘点中国优秀付费资源站WordPress主题

中国优秀的付费资源站WordPress主题,它们专注于资源管理和分享,提供了丰富的功能和用户体验: 资源宝(ziyuanbao):这是一款功能强大的资源站主题,支持多种资源类型的上传、分类和展示&#xff0…

html引入json文本测试数据

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 复现bug时&#xff0c;可以这样给前端准备测试数据。 dayData.json存放测试数据&#xff0c;只需声明为变量即可 这里不用管ide中的报错。 <!DOCTYPE html> <html lang"en">…

QT背景介绍

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;QT❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、QT背景 1.1什么是QT 1.2QT的发展历史 1.3什么是框架、库 1.4QT支持的平台 1.5QT的优点 1.6QT的…

软考考哪个好?软考中级到高级方向该如何计划

刚接触软考的朋友可能对软考的科目选择比较迷茫&#xff0c;不知道自己该怎么选方向&#xff0c;怎么选级别&#xff0c;这属于再正常不过的事情了&#xff0c;毕竟谁看到这些都可能有些迷茫&#xff0c;要理清自己的选择还是要从自身的几个方面开始的。 软考的考试专业类别就…

使用ARCore深度API实现点云采集

一、深度API 本小节内容摘自ARCore官方文档。 ARCore 深度API Depth API 可助力实现对象遮挡、提升沉浸感和新颖的互动体验&#xff0c;从而增强 AR 体验的真实感。 在下图中&#xff0c;右侧画面是采用深度API进行遮挡后的效果&#xff0c;与左侧图相比更加真实。 深度值 给…

系统IO函数接口

目录 前言 一. man手册 1.1 man手册如何查询 1.2 man手册基础 二.系统IO函数接口 三.open打开文件夹 3.1 例1 open打开文件 3.2 open打开文件代码 3.3 例2 创建文件 四.write写文件 4.1 write写文件 五. read读文件 5.1 read读文件与偏移 5.2 偏移细节 5.3 read读文件代码 六.复…

stream使用

stream流式计算 在Java1.8之前还没有stream流式算法的时候&#xff0c;我们要是在一个放有多个User对象的list集合中&#xff0c;将每个User对象的主键ID取出&#xff0c;组合成一个新的集合&#xff0c;首先想到的肯定是遍历&#xff0c;如下&#xff1a; List<Long> u…

【项目新功能开发篇】需求分析和开发设计

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…

Mysql数据库getshell方法

今天摸鱼时候&#xff0c;突然有人问我不同的数据库getshell的方式&#xff0c;一时间我想到了mysql还有redis未授权访问到getshell的方式&#xff0c;但是仅仅第一时间只想到了这两种&#xff0c;我有查了查资料&#xff0c;找到了上面两种数据库getshell的补充&#xff0c;以…

KnowLog:基于知识增强的日志预训练语言模型|顶会ICSE 2024论文

徐波 东华大学副教授 东华大学计算机学院信息技术系副系主任&#xff0c;复旦大学知识工场实验室副主任&#xff0c;智能运维方向负责人。入选“上海市青年科技英才扬帆计划”。研究成果发表在IJCAI、ICDE、ICSE、ISSRE、ICWS、CIKM、COLING等国际会议上&#xff0c;曾获中国数…

vulhub打靶记录——healthcare

文章目录 主机发现端口扫描FTP—21search ProPFTd EXPFTP 匿名用户登录 web服务—80目录扫描search openemr exp登录openEMR 后台 提权总结 主机发现 使用nmap扫描局域网内存活的主机&#xff0c;命令如下&#xff1a; netdiscover -i eth0 -r 192.168.151.0/24192.168.151.1…