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

前言

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

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

使用神经网络:

  • 识别和处理声音(现代语音助手),
  • 识别和处理对象(计算机视觉),
  • 识别和处理自然语言(自然语言处理),
  • 查找恶意程序,
  • 使应用程序自动化并提高效率。例如,有些医疗保健应用程序通过分析视网膜扫描来检测糖尿病视网膜病变。

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

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

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

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

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

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

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

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

  1. 神经网络的准备,包括架构的选择(神经元的组织方式)、拓扑结构(它们相对于彼此和外部世界的位置结构)、学习算法等。
  2. 将输入数据加载到神经网络中。
  3. 训练神经网络。这是一个非常重要的阶段,没有这个阶段神经网络就毫无用处。这就是所有魔术发生的地方:随着输入的输入数据量,神经网络接收有关预期结果的信息。将在神经网络的输出层得到的结果与预期的结果进行比较。如果它们不重合,则神经网络确定哪些神经元对最终值的影响更大,并调整与这些神经元连接的权重(所谓的误差反向传播算法)。这是一个非常简化的解释。我们建议阅读这篇文章深入研究神经网络训练。神经网络训练是一个非常耗费资源的过程,所以不是在智能手机上完成的。训练时间取决于任务、架构和输入数据量。
  4. 检查培训充分性。网络并不总是准确地学习其创建者希望它学习的内容。有一个案例,网络被训练来从照片中识别坦克的图像。但是由于所有的坦克都在同一个背景上,神经网络学会了识别这种类型的背景,而不是坦克。神经网络训练的质量必须在未参与其训练的示例上进行测试。
  5. 使用神经网络——开发人员将训练好的模型集成到应用程序中。

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

内存限制

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

应用程序的大小

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

运行

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

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

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

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

Android 神经网络开发库概述

TensorFlow

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

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

为了更轻松地学习 TensorFlow,开发团队制作了更多教程并改进了入门指南。一些爱好者创建了自己的 TensorFlow 教程(包括InfoWorld)。您可以阅读几本关于 TensorFlow 的书籍或参加在线课程。

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

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

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

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

  • TensorFlow Lite 解释器——在手机、嵌入式 Linux 设备和微控制器上运行特别优化的模型。
  • TensorFlow Lite 转换器- 将 TensorFlow 模型转换为解释器使用的有效形式,并可以进行优化以提高性能和二进制文件大小。TensorFlow Lite 旨在简化移动设备本身的机器学习,而不是从服务器来回发送数据。对于开发人员而言,设备上的机器学习具有以下优势:
  • 响应时间:请求不发送到服务器,而是在设备上处理
  • 隐私:数据不会离开设备
  • 不需要互联网连接
  • 设备消耗更少的能量,因为它不向服务器发送请求

Firebase 机器学习套件

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

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

  • Yandex.Money(俄罗斯电子商务系统)识别二维码;
  • FitNow,一种健身应用程序,可识别食品标签中的文本以计算卡路里;
  • TutboTax,一种识别文件条形码的支付应用程序。

机器学习套件还具有:

  • 书面文本的语言检测;
  • 翻译设备上的文本;
  • 智能消息响应(根据整个对话生成回复语句)。

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

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

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

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

由于此库可通过 Firebase 获得,因此您还可以利用该平台上的其他服务。例如,远程配置A/B 测试使试验多个用户模型成为可能。如果您已经将经过训练的神经网络加载到您的应用程序中,您可以添加另一个而无需重新发布以在它们之间切换或一次使用两个以进行实验——用户不会注意到。

移动开发中使用神经网络的问题

开发使用神经网络的 Android 应用程序对于移动开发人员来说仍然是一个挑战。由于输入信息可能包含数百万个元素,因此训练神经网络可能需要数周或数月的时间。对于许多智能手机来说,如此严重的工作量仍然遥不可及。

如果出现以下情况,请检查您是否无法避免在移动应用中使用神经网络:

  • 贵公司没有熟悉神经网络的专家;
  • 你的任务很不简单,要解决它,你需要开发自己的模型,即你不能使用谷歌现成的解决方案,因为这会花费很多时间;
  • 客户需要快速的结果——训练神经网络可能需要很长时间;
  • 该应用程序将在具有旧版本 Android(9 以下)的设备上使用。此类设备没有足够的功率。

结论

神经网络几年前开始流行起来,越来越多的公司在他们的应用程序中使用这种技术。移动设备对神经网络操作施加了自身的限制。如果您决定使用它们,最好的选择是 Google 提供的现成解决方案(ML Kit)或使用 TensorFlow Lite 开发和实现您自己的神经网络。

链接: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

欢迎大家一键三连支持,若需要文中资料,直接点击文末CSDN官方认证微信卡片免费领取↓↓↓

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值