2023 年,Android 神经网络能做什么?

前言

在过去 10 年的时间里,“神经网络”一词已经超越了科学和专业环境。神经网络组织理论出现于上世纪中叶,但直到 2012 年计算机能力才达到足以训练神经网络的值。由于这一点,它们开始广泛使用。

神经网络越来越多地用于移动应用程序开发。德勤报告显示,发达国家成年人安装的应用程序中有 60% 以上使用了神经网络。据统计,Android 的普及率已经连续数年领先于竞争对手。

使用神经网络:

什么是神经网络,它们是如何工作的?

人类从自然界中汲取了神经网络的思想。科学家们以动物和人类的神经系统为例。天然神经元由细胞核、树突和轴突组成。轴突转变为几个分支(树突),与其他神经元树突形成突触(连接)。

人工神经元具有类似的结构。它由一个核(处理单元)、几个树突(类似于输入)和一个轴突(类似于输出)组成,如下图所示:

几个神经元的连接形成层,层的连接形成神经网络。有三种主要类型的神经元:输入(接收信息)、隐藏(处理信息)和输出(呈现计算结果)。看一下图片。


不同层次的神经元通过突触连接。在通过突触的过程中,信号可以增强或减弱。突触的参数是一个权重——一些系数可以是任何实数,因此信息可以改变。输入数字(信号),然后将它们乘以权重(每个信号都有自己的权重)并求和。激活函数计算输出信号并将其发送到输出(见图)。

想象一下这种情况:你触摸了一个热熨斗。根据从您的手指通过神经末梢到大脑的信号,它会做出决定:通过神经连接传递信号以拉开您的手指,或者如果熨斗是冷的,则不传递信号并且你可以把手指放在上面。激活函数的数学模拟具有相同的目的。激活函数允许信号在神经元之间通过或不通过,具体取决于它们传递的信息。如果信息很重要,则函数将其传递,如果信息很少或不可靠,则激活函数不允许传递。

如何准备神经网络以供使用?

神经网络的工作经历了几个阶段:

1. 神经网络的准备,包括架构的选择(神经元的组织方式)、拓扑结构(它们相对于彼此和外部世界的位置结构)、学习算法等。

2. 将输入数据加载到神经网络中。

3. 训练神经网络。这是一个非常重要的阶段,没有这个阶段神经网络就毫无用处。这就是所有魔术发生的地方:随着输入的输入数据量,神经网络接收有关预期结果的信息。将在神经网络的输出层得到的结果与预期的结果进行比较。如果它们不重合,则神经网络确定哪些神经元对最终值的影响更大,并调整与这些神经元连接的权重(所谓的误差反向传播算法)。这是一个非常简化的解释。神经网络训练是一个非常耗费资源的过程,所以不是在智能手机上完成的。训练时间取决于任务、架构和输入数据量。

4. 检查培训充分性。网络并不总是准确地学习其创建者希望它学习的内容。网络被训练来从照片中识别坦克的图像。但是由于所有的坦克都在同一个背景上,神经网络学会了识别这种类型的背景,而不是坦克。神经网络训练的质量必须在未参与其训练的示例上进行测试。

5. 使用神经网络——开发人员将训练好的模型集成到应用程序中。

移动设备上神经网络的局限性

内存限制

市场上的大多数中端和低端移动设备都有 2 到 4 GB 的 RAM。通常,这个容量的 1/3 是由操作系统保留的。当 RAM 限制接近时,系统可以在运行时使用神经网络“杀死”应用程序。

应用程序的大小

复杂的深度神经网络通常重达数 GB。当将神经网络集成到移动软件中时,会有一些压缩,但仍然不足以舒适地工作。对开发人员的主要建议是在任何平台上尽可能减小应用程序的大小以改善用户体验。

运行

简单的神经网络通常几乎立即返回结果,适用于实时应用。然而,深度神经网络可能需要几十秒来处理一组输入数据。现代移动处理器还没有服务器处理器强大,因此在移动设备上处理结果可能需要几个小时。

要使用神经网络开发移动应用程序,您首先需要在服务器或 PC 上创建和训练神经网络,然后使用现成的框架在移动应用程序中实现它。

在多个设备上使用单个应用程序

例如,面部识别应用程序安装在用户的手机和平板电脑上。它无法将数据传输到其他设备,因此神经网络训练将在每个设备上单独进行。

神经网络开发库概述

TensorFlow

TensorFlow 是 Google 的一个开源库,用于创建和训练深度神经网络。使用这个库,我们存储了一个神经网络并在应用程序中使用它。

该库可以训练和运行深度神经网络,以对手写数字进行分类、识别图像、嵌入单词和处理自然语言。它适用于 Ubuntu、macOS、Android、iOS 和 Windows。

为了更轻松地学习 TensorFlow,开发团队制作了更多[教程]并改进了入门指南。一些爱好者创建了自己的 TensorFlow 教程。。

我们移动开发者应该看看TensorFlow Lite,这是一种适用于移动和嵌入式设备的轻量级 TensorFlow 解决方案。它允许您以低延迟和小二进制大小在设备上进行机器学习推理(但不是训练)。TensorFlow Lite 还支持使用 Android 神经网络 API 进行硬件加速。TensorFlow Lite 模型足够紧凑,可以在移动设备上运行,并且可以离线使用。

TensorFlow Lite 在 Android 和 iOS 设备上运行相当小的神经网络模型,即使它们被禁用。

TensorFlow Lite 背后的基本思想是训练一个 TensorFlow 模型并将其转换为 TensorFlow Lite 格式。然后可以在移动应用程序中使用转换后的文件。

TensorFlow Lite 由两个主要组件组成:

Firebase机器学习套件

TensorFlow Lite 使在应用程序中实现和使用神经网络变得更加容易。然而,开发和训练模型仍然需要大量的时间和精力。为了让开发人员的生活更轻松,创建了 Firebase ML Kit 库。

该库在具有最少代码的应用程序中使用已经训练过的深度神经网络。提供的大多数模型都可以在本地和 Google Cloud 上使用。开发人员可以将模型用于计算机视觉(字符识别、条形码扫描、物体检测)。图书馆很受欢迎。例如,它用于:

机器学习套件还具有:

除了开箱即用的方法外,还支持自定义模型。

重要的是您不需要为此使用任何服务、API 或后端。一切都可以直接在设备上完成——不加载用户流量,开发人员无需在没有互联网连接的情况下处理错误。此外,它在设备上的运行速度更快。缺点是功耗增加。

开发者不需要每次更新后都发布应用,因为 ML Kit 会在模型上线时动态更新模型。

ML Kit 团队决定投资模型压缩。他们正在试验一项功能,该功能允许您上传完整的 TensorFlow 模型以及训练数据,并获得压缩的 TensorFlow Lite 模型作为回报。开发人员正在寻找合作伙伴来试用该技术并从他们那里获得反馈。

由于此库可通过 Firebase 获得,因此您还可以利用该平台上的其他服务


链接:https://forasoft.hashnode.dev/what-android-neural-networks-can-do-in-2022-explained-in-comics#heading-what-are-neural-networks-and-how-do-they-work

展开阅读全文

页面更新:2024-04-26

标签:神经网络   轴突   树突   突触   神经元   应用程序   模型   信号   数据   设备

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top