2022 год стал революционным для выхода нейронных сетей к широкому потребителю. Помимо голосовых помощников, которые в основном, использовались в качестве игрушки, на рынок вышли потрясающие решения которые высоко были оценены профессионалами – художниками, программистами, писателями и учеными. Наборы высоко технологических решений стали доступны для массового использования. Подавляющее большинство таких решений опирается на технологию перцептрона – устройства, которое реализует нейронные сети на физическом уровне, и известное инженерами уже на протяжении нескольких десятилетий.
Не смотря на то, что теоретические основы преподаются к каждом техническом ВУЗе, разработчики не стремились включать их в свои приложения. Это обусловлено тем, что нужно пройти несколько этапов прежде чем со сконструированной нейронной сетью можно будет взаимодействовать – разработка нейронной сети – трудоемкий процесс, но ее обучение – еще и чрезвычайно ресурсоемкий, а потому довольно затратный при каждом изменении базовых свойств.
Некоторые технологические гиганты (Google, IBM) открыли доступ к своим платформам для создания элементов искусственного интеллекта, но, как правило, они обладали все теми же недостатками, как и известный ранее перцентрон – очень высокий порог вхождения даже для людей обладающих достаточными теоретическими знаниями – по мимо того, что все операции производились на определенных языках программирования (как правило, на Python), нужно было дружить с консолью, и владеть навыками devops. Apple не оставалась в стороне, до до поры до времени, предлагала использование все тех же подходов.
В настоящее время Apple представляет набор инструментов, которые позволяют получить мощь нейронных сетей «из коробки»: нейронные сети стали общедоступными, и могут легко экспортироваться / импортироваться в виде файлов моделей – отпадает необходимость в том, чтоб конструировать ее и обучать – достаточно импортировать нужную модель в исходный код приложения на любом С-родственном языке, и далее использовать эту модель так же, как любой класс приложения. А для тех энтузиастов которые хотели бы создать свои модели с нуля, существует приложение, с графическим интерфейсом, которое позволяет не только пройти через создание, обучение и валидацию, но даже начать использовать ее прямо внутри приложения не написан при этом ни строчки кода (в том числе и в консоли).
Любой разработчик получает приложение «Create ML» вместе с XCode совершенно бесплатно. Его возможности ограничены только фантазией разработчика.
При создании нового проекта в приложении «Create ML» в начале 2023 года доступны 13 типов нейросетей. Некоторые из них платформо-ориентированные, но большинство – можно использовать далеко за пределами экосистемы Apple.
Если идти антропоморфным путем, то разницу в типах понять не составляет труда: каждая сеть отвечает определенной сенсорной модальности восприятия: визуальная, аудиальная, кинестетическая. В настоящее время отсутствует тип для «обонятельной» модальности, зато, его заменяет «ментальная» модальность – возможность воспринимать ряды чисел и текст. Необходимость в выделении типов сетей обусловлено еще и тем, что для каждой из модальностей существует не только свои специфические процедуры обучения, но и стимульный материал в определенном формате.
Здесь так же не лишним будет вспомнить о том, что в Высшей Нервной Системе (ВНС) ощущение и восприятие (перцепция и апперцепция) отделены друг от друга. Ощущение – это реакция вызванная непосредственно раздражителем, в то время как восприятие – это сложный эмоционально-интеллектуальный процесс, который является производной (и не всегда производной первого порядка) от ощущений. В терминах ML программирования, самыми близкими эквивалентами будет классификация и сегментирование.
Приведенный ниже список позволяет разобраться какие типы нейросетей наиболее подходят для решения общедоступных задач:
Image Classification - связывает стимульные изображения с предопределенными классами, и позволяет соотнести ранее неизвестное изображение с определенным классом. Результат выражен в проценте вероятности того, что изображение входит к каждый класс известный нейросети.
Hidden text
Object Detection - сегментирует изображение – выделяет объект из фона. Это наиболее ресурсоемкий тип нейросети – для обучение требуется большое количество изображений, на котором классы объектов выделены контуром, и информация о контуре сохранена в json файле. Одна из готовых нейросетей используемая в мобильных устройствах была создана на основе 12,5 тыс. изображений, а ее тренировка занимала дни машинного времени.
Hidden text
Style transfer – позволяет преобразовать изображение к какому-то определенному стилю, который был использован в качестве стимульного материала. Например, можно перерисовать «Мону Лизу», так, как это сделал бы Ван Гог.
Hand Pose Classification – позволяет определить жесты руками, которые продемонстрированы на фото.
Action Classification – позволяет определить тип активности людей на видео.
Hand Action Classification – использование видео для определение пассов руками – магия входит в нашу повседневную жизнь.
Hidden text
Activity Classification - использование датчиков и сенсоров (например, в Apple Watch) для соотнесения с предустановленными классами активностей.
Sound Classification – позволяет соотнести определенные звуки с определенными предзадаными классами (что, по сути, позволяет получить и выполнить голосовую команду или определить источник звука).
Text Classification – соотносит текстовую статью (к примеру, из RSS ленты) с определенной категорией. Натренированную сеть можно использовать в любом текстовом чате с бесконечным количеством сценариев.
Word Targeting - подобно регулярным выражениям позволяет разобрать текстовую статью на компоненты, при этом, ориентируясь не на содержание, а на структуру текста.
Tabular Classification – использует текстовые и числовые статистические данные для осуществления предсказаний, К примеру, зная возраст, гендер и социальный статус можно предсказать вероятность того, что из обладатель выживет при крушении Титаника.
class |
gender |
age |
survived |
probability Survived / Died |
3 |
Female |
28 |
[D: 0.8114577995505022, S: 0.18854220044949774] |
|
3 |
Female |
29 |
[D: 0.8114577995505022, S: 0.18854220044949774] |
|
3 |
Female |
30 |
[S: 0.3560112453493577, D: 0.6439887546506423] |
|
3 |
Female |
31 |
[S: 0.4925866900218921, D: 0.507413309978108] |
|
3 |
Female |
32 |
+ |
[S: 0.5323354483770434, D: 0.4676645516229566] |
3 |
Female |
33 |
+ |
[S: 0.6486106272582948, D: 0.35138937274170523] |
3 |
Female |
34 |
+ |
[S: 0.6486106272582948, D: 0.35138937274170523] |
3 |
Female |
35 |
+ |
[S: 0.6486106272582948, D: 0.35138937274170523] |
3 |
Female |
36 |
+ |
[S: 0.6486106272582948, D: 0.35138937274170523] |
3 |
Female |
37 |
[S: 0.440002275163433, D: 0.5599977248365671] |
|
3 |
Female |
38 |
[S: 0.440002275163433, D: 0.5599977248365671] |
|
3 |
Female |
39 |
[D: 0.7520403642728353, S: 0.24795963572716476] |
|
3 |
Female |
40 |
[D: 0.7520403642728353, S: 0.24795963572716476] |
|
3 |
Female |
41 |
[D: 0.700825215199874, S: 0.29917478480012605] |
|
3 |
Female |
42 |
[D: 0.700825215199874, S: 0.29917478480012605] |
Tabular Regression – предсказывает значение величины на произвольном графике, даже, тогда когда по близости нет известных других значений в окрестности выбранной точки. В математике соответствует понятиям интерполяции, экстраполяции и аппроксимации.
Recomendation – позволяет получить рекомендации относительно непересекающихся рядов чисел — на практике, наиболее часто используется тогда, когда нужно подобрать для покупателя корзину товаров опираясь на сделанные ранее покупки.
Вместо заключения. Невозможно остановить желание интегрировать в свои приложения крупицы искусственного интеллекта попробовав их хотя бы раз. При этом простота имплементации позволяет сделать это за время необходимое для приготовление утреннего эспрессо.
P.S. В планах публикация расширенного материала по использованию каждого шаблона.