Елена Булыгина предлагает Вам запомнить сайт «Ленусик»
Вы хотите запомнить сайт «Ленусик»?
Да Нет
×
Прогноз погоды

Основная статья: Электроника

Как создать приложение для Android самому

Мобильная разработка развивается быстрыми темпами, но несмотря на более чем десятилетний путь, можно с уверенностью говорить, что разработка мобильных приложений и вся индустрия в целом находятся в самом начале своего пути. Далеко не у всех в мире есть смартфоны, далеко не все области применения и использования исследованы и раскрыты. В будущем обязательно появятся новые направления в разработке, отрасль будет расти вместе с востребованностью мобильных разработчиков.

Уже несколько лет на рынке разработки приложений под Андроид спрос превышает предложение, и такое состояние рынка сохранится в ближайшие годы. Если говорить о специфике разработки, то речь здесь идёт не только о смартфонах и планшетах. Каждый сможет найти направление себе по вкусу: носимая электроника, Android TV, Android в автоиндустрии, дополненная и виртуальная реальность, интернет вещей...

Но наиболее актуальной и востребованной сегодня является именно разработка мобильных приложений под Android. В этой статье я расскажу, как создать приложение для Андроид с нуля и какие инструменты вообще для этого понадобятся.

Разработка андроид приложений: минимальный набор знаний

На самом деле требований здесь немного, но глубина познаний в нужных областях должна постоянно расти. Вот чем очень не помешает овладеть: 

  • Языками программирования Java или Kotlin;
  • Платформой Android Studio для разработки на платформе Android;
  • Git;
  • Основными библиотеками, которые вам сильно облегчат жизнь: Retrofit (для получения данных из интернета), Glide (для загрузки изображений)
  • Архитектурными компонентами Андроид (чтобы писать чистый и надёжный код);
  • Умением писать приложение в архитектуре MVP или MVVM (для надёжности приложения, его поддержки и развития).

На чём писать приложения для Android

В принципе для разработки нужна только Android Studio, которую можно бесплатно скачать с официального сайта. Это лучшая среда разработки андроид приложений из существующих на рынке. Подойдёт любая операционная система (Mac OS, Windows, Linux). Что касается аппаратной части, желательно иметь процессор не старше пяти лет и 8 гигабайт оперативной памяти (+ 1,5 ГБ свободного места на диске). 

Если вы не знаете ничего о программировании и имеете только жгучее желание создавать, для начала нужно выучить хотя бы один язык программирования. На данный момент написать приложение для Android можно на Java или на Kotlin. Предпочтительный язык — Kotlin, но если вы планируете стать профессиональным разработчиком, то Java вам нужно хотя бы уметь «читать» (а лучше и писать на ней). Эти языки очень похожи, работают по одинаковым принципам и имеют очень похожий синтаксис. У нас на факультете Android-разработки мы начинаем изучать Java, а в середине обучения переходим на Kotlin. Так выпускник оказывается полностью подготовлен к профессии андроид-разработчика в плане языков программирования.

Чтобы с удобством изучать Java, установите среду разработки на Джаве — IntelliJ Idea Community Edition. Это бесплатная программа, лучшая на рынке. Инструкцию по установке можно найти в конце этой статьи, в дополнительных материалах.

Устанавливаем Git для хранения кода

Git — это полезный инструмент, который вам как разработчику рано или поздно понадобится. С его помощью можно хранить разные версии вашего приложения на компьютере или в облаке. Скачайте, установите его, а также прочитайте первые несколько глав из руководства. Достаточно первых трёх глав (Введение, Основы, Ветвление), чтобы освоиться с самыми полезными функциями:

После установки Git вы сможете сохранять разные версии кода вашего андроид-приложения на компьютере или в облаке:

Среда разработки андроид-приложений

Если вы уже освоились с Джавой или Котлином, можно переходить непосредственно к разработке андроид-приложений. Для этого нам понадобится Android Studio. Если у вас уже стоит Git, то к нему можно подключиться как показано на скриншоте выше.

Если вам по какой-то причине не нравится Android Studio, то можно установить Eclipse в качестве среды разработки андроид-приложений. Но Эклипс — это скорее исключение из правил. Подавляющее большинство разработчиков работают в Студии.

Также, если у вас процессор от AMD, то рекомендуется поставить в качестве эмулятора смартфона Genymotion. Если у вас процессор от Intel, то встроенного в Android Studio эмулятора будет более чем достаточно.

Разработка приложений под Android: начало

Давайте создадим наш первый проект и посмотрим, из каких компонентов он состоит. Если вы первый раз открыли Студию, то вам будет предложено выбрать какой-нибудь шаблон из набора:

Выберем Empty Activity и нажмём «Далее»:

Здесь по аналогии с IntelliJ Idea вы вводите название вашего проекта, пэкедж, выбираете язык программирования и нажимаете Finish. Перед вами откроется готовый проект, где вы и будете создавать своё приложение на Android.

Создаём эмулятор

Чтобы создать эмулятор, нажмите на AVD Manager:

В появившемся окне нажмите Create Virtual Device:

Выберите подходящий смартфон, который нужно сэмулировать:

Выберите версию операционной системы, для которой мы в первую очередь пишем приложение под Android (скорее всего, вам нужно будет её предварительно скачать, нажав Download):

Нажмите Finish:

В появившемся окне выберите созданный эмулятор и запустите его: 

Эмулятор запустится в отдельном окне и появится рядом с кнопкой старта приложения. Нажмите на эту кнопку:

На эмуляторе запустится ваш проект:

Из чего состоит Android-приложение

Теперь давайте разберём, из каких компонентов состоит любое, даже самое простое приложение под Андроид. В папке java находится непосредственно код вашего приложения — тут вы будете создавать экраны и наполнять их содержанием: 

В папке res находятся все ресурсы приложения, в том числе макеты ваших экранов и другие элементы дизайна. Тут вы будете заниматься вёрсткой экранов:

Манифест приложения содержит информацию обо всех экранах приложения:

Три основных экрана Android Studio — вот с чего начинается любое приложение под андроид. В том числе и ваше :)

Как разместить приложение в Google Play

Основной способ распространения андроид-приложений — это размещение на площадке Google Play. Кроме этого, приложения можно размещать и в Amazon AppStore, и в Yandex Store, в Shop Samsung App. Но следует помнить, что основной площадкой является Google Play. Магазин приложений Google устанавливается практически на все устройства с Android (кроме ряда «китайцев» и «индийцев»), и по умолчанию на всех этих устройствах включена опция установки приложений только с этой площадки.

Основные особенности Google Play:

  • огромная база пользователей;
  • очень много приложений: практически все существующие  Android-приложения присутствуют на этой площадке;
  • удобные инструменты для публикации;
  • быстрая форма проверки приложений (через пару часов приложение будет уже доступно).

Давайте посмотрим, как выложить своё приложение в Google Play. Перед загрузкой приложения необходимо зарегистрировать аккаунт разработчика в Google Play. Обычно советуют использовать для этого не свой личный аккаунт (если у вас почта на Gmail), а специально создать для этого ещё один аккаунт. Это связано с тем, что если робот Google Play решит заблокировать аккаунт разработчика, то ваш личный аккаунт это не затронет. Откроем страницу регистрации:

И следуем простым шагам:

Важный момент: регистрация разработчика стоит 25 долларов США. Плата берётся единовременно.

Далее, чтобы опубликовать приложение, надо зайти в аккаунт разработчика и нажать «Новое приложение». Вы попадёте в консоль разработчика:

При заполнении различных форм перед публикацией приложения можно выбрать тип и описание вашего приложения (категория, ограничения аудитории по возрасту и т.п.), языки и страны распространения, цену в каждой из стран. Также необходимо выбрать изображения с приложением, экраны этого приложения, создать подписи и сделать ряд других вещей.

После этого необходимо проверить, что все формы заполнены

Кстати, у Google есть и свой список рекомендаций по поводу того, как опубликовать своё приложение.

Для заполнения формы с версиями приложений надо подготовить релизную версию вашего приложения. то уже не debug-версия вашего приложения, которая запускалась у вас до этого момента, в эмуляторе или под отладкой на устройстве, через кнопку Run.

Как подготовить релиз-версию приложения

Вы создали приложение под Android, и теперь, чтобы его выложить, необходимо сделать следующие шаги:

  1. Подготовить подпись приложения. Приложение подписывается уникальным криптографическим ключом.
  2. Подготовить пиктограмму приложения.
  3. Подготовить скриншоты (снимки экрана) приложения. Можно отдельно подготовить скриншоты для планшетов, телевизора и прочих устройств.
  4. Проверить манифест приложения. Проверяются права, версия приложения. Проверяются версии SDK, под какие готовится приложение. Удаляется логирование приложения. Проверяются ресурсы приложения.
  5. Собрать релиз-версию проекта и подписать её уникальным ключом.
  6. Подготовить удалённые сервера, если приложение работает с такими серверами.
  7. Протестировать релиз-версии подписанного приложения.
  8. После релиза приложения в магазине желательно скачать и удостовериться, что всё прошло гладко. Помните, пользователи будут очень недовольны и начнут минусовать ваше приложение, если новая версия будет падать или что-то случится при выкладке приложения, и оно станет неработоспособно.

Пройдёмся по важным понятиям на этом этапе.

Уникальный ключ приложения (сертификат)

Чтобы загрузить приложение на площадку и установить на устройство, требуется, чтобы приложение было подписано вашим уникальным криптографическим ключом. По этому ключу всегда можно отличить подлинность приложения и обновлений. Этот ключ находится у разработчика, он называется app singing key. А Keystore — это файл, в котором хранится ключ. У ключа есть имя и пароль, хранится ключ в keystore, от которого тоже должен быть пароль. Так много паролей нужно, чтобы никто не смог украсть ваше приложение.

Когда вы пишете приложение на андроид, то Android SDK автоматически подписывает debug версию, и кладёт цифровой сертификат и keystore в папку $HOME/.android/debug.keystore. Google Play не принимает debug ключи. Необходимо подписывать приложение релиз-сертификатом. Этот сертификат должен быть один на протяжении всей жизни приложения. 

Существует два способа хранения ключа. Исходя из того, какой вы выберете, будет определяться схема подписи приложения:

Сервис Google Play

Если вы выбрали использовать Google Play App singing, вы подписываете приложение с ключом для загрузки его в Google Play (upload key), и уже сам Google Play подписывает приложение уникальным ключом, а впоследствии несёт ответственность за его хранение. Тогда при потере upload key (ключа для загрузки приложения) вы сможете верифицироваться с Google, и сгенерировать новый. Таким образом, вы сможете в любом случае загрузить обновления вашего приложения, даже если вы поменяли загрузочный ключ. 

Самостоятельное хранение

Если вы сами храните ключ, то вся ответственность в этом случае лежит на вас. При потере ключа Google Play не сможет вам помочь и обновить приложение вы уже не сможете.

Как подписать приложение в Android Studio

Подпись можно сделать вручную или настроить всё так, чтобы приложение подписывалось в процессе сборки. Вот как сгенерировать новый ключ и keystore файл.

Зайдите в Build и выберите Generate Signed APK:

Выберите тип подписи:

В окне New Key Store заполните форму:

После компиляции проекта найдите получившийся файл:

Это уже готовый файл для загрузки его в Play Google.

Кроме того, нужно учесть, что иконка вашего приложения должна соответствовать определённым требованиям. Их можно прочитать на сайте, посвящённом Material Design. 

Для публикации приложения после его загрузки обязательно нажмите кнопку «Просмотреть»:

И только после этого можно опубликовать приложение:

Перед публикацией приложения Google проверяет его, его описание, прочую информацию, и только после этого приложение появляется в Маркете. 

Где ещё можно опубликовать приложение

Кроме Google Play, существуют и другие площадки для размещения приложений — Amazon Appstore, Shop Samsung App, Yandex Store. Некоторые разработчики также добавляют свои приложения и в эти альтернативные магазины. Вот некоторые причины:

  • В альтернативных площадках условия могут оказаться выгоднее, регистрация на некоторых площадках бесплатная. В отличие от Google Play, который, как мы помним, требует единоразовый взнос в 25 долларов. Сторонние магазины могут привлекать пользователей, устраивая акции для покупателей.
  • В основной площадке Google Play очень много приложений, и очень жёсткая конкуренция. Старые и популярные приложения часто оказываются выше новых в списках поиска.
  • В Google Play существует фильтр, и если приложение не соответствует стандартам и принципам Google, то такое приложение удаляется, а аккаунт пользователя может быть заблокирован. Причём, зачастую, это «заслуга» автоматических сервисов.

Как монетизировать приложение

Если вы не крупная компания, которая распространяет свой продукт бесплатно (например какой-нибудь интернет-магазин, или банк), у вас есть несколько способов заработать на своём приложении:

  • продажа самого приложения;
  • вставка рекламы в приложения;
  • продажа платных функций в приложении;
  • продажа подписки на определённый период;
  • донаты — добровольные платежи от пользователей.

Вам, как разработчику, нужно определиться со способом монетизации, который лучше всего соответствует вашему приложению. Баланс между количеством пользователей и прибылью — вещь очень хрупкая. Вот несколько рекомендаций от разработчиков Google, как его достичь:

  • Изучайте сведения о приложениях из категории, к которой относится ваше. Узнайте, как другие разработчики получают средства за свои приложения и материалы, и определите, следует ли предложить пользователям альтернативные способы оплаты.
  • Подумайте о том, как пользователи будут работать с вашим приложением. Это поможет вам определить наиболее подходящие способы монетизации. От частоты использования приложения зависит эффективность монетизации при помощи рекламы или покупок в приложении. Вы также можете предлагать пользователям приобрести версию приложения без рекламы.
  • Используйте естественные расширения. Если функциональность можно расширить (например, добавить новые уровни в игре), рекомендуем сделать базовую часть бесплатной, а дополнительные функции продавать через приложение или на основе подписки.
  • Продумайте структуру затрат в своём приложении. Если пользователи регулярно расходуют на ваш контент определённую сумму, вы можете внедрить подписки. Чтобы привлекать новых пользователей, предлагайте им бесплатный пробный период.
  • Учитывайте особенности аудитории. Для некоторых аудиторий не всегда подходят реклама, подписки и покупки в приложении. Например, в детских играх пользователи охотнее платят за отсутствие рекламы. В таких случаях пользователям лучше предлагать версии приложений без рекламы.
  • Назначайте цены с учётом особенностей целевой страны. Формируйте цены на приложения, покупки в них, а также подписки, исходя из уровня жизни, специфики ценообразования, стоимости аналогичных приложений и иных факторов в целевой стране.

После того как вы определитесь со способом монетизации, её можно будет настроить для вашего приложения в консоли разработчика. Вот и все основные шаги, который нужно учесть для создания и публикации приложения!

Полезные материалы для чтения и самоподготовки

Head First. Программирование для Android. Хотя эта книга немного устарела, она объясняет ключевые концепции очень интересным способом. Если вам понравился стиль Head First, вам будет приятно читать эту книгу.

Филлипс Б., Стюарт К., Марсикано К.Android. Программирование для профессионалов. 3-е издание. Действительно неплохая книга, которую можно смело рекомендовать начинающим разработчикам. В ней они смогут найти множество приёмов разработки приложений для Android, самостоятельный путь к которым довольно долог. Книга начинается с «Hello, world» и через теорию, упражнения и написание небольших приложений, обучает основному стеку технологий для создания Android-приложения. Требует среднего знания Java.

Исакова С., Жемеров Д. Kotlin в действии. Книга от создателей языка. Очень хорошо написана, советую.

Нуркевич Т., Кристенсен Б. Реактивное программирование с применением RxJava. Разработка асинхронных событийно-ориентированных приложений. Книга, которая на примере RxJava поможет понять вам, что такое реактивное программирование. Требует неплохого знания Java (по крайней мере, вы должны понимать, что такое обобщённые типы и лямбда-выражения) и предполагает последовательное чтение, так как материал подаётся шаг за шагом. Внимательный читатель получит полное представление об RxJava.

Напоследок — ещё пара статей на английском для тех, кто хочет разработать приложение на Android: «10 вещей, которые узнают новые Android-разработчики» и «12 методов, который должен знать каждый начинающий Android-разработчик».

Если вам было бы интересно почитать о каких-либо конкретных аспектах разработки под андроид — пишите в комментариях.

В этой статье я дал лишь базовые, минимально необходимые сведения, чтобы начать разработку андроид приложений с нуля. Чтобы стать полноценным, квалифицированным Android-разработчиком, эффективней всего будет пройти полноценную учебную программу, например, на факультете Android-разработки Geek University.

 


17 мар 20, 10:58
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

«Проблема маленьких городов — нет вакансий для джунов»

Денис Горшков из Ярославля по первому образованию — инженер-радиотехник. Всю жизнь ему интересно «железо», но к 25 годам пришло желание создавать ещё и ПО. Сделать программирование профессией удалось с помощью курсов Python-разработки в GeekBrains. С апреля 2019 года Денис работает над сервисами МТС, в мае — окончил курсы и теперь развивается как специалист самостоятельно. Что дала Денису учёба в GeekBrains и что он может посоветовать начинающим разработчикам из небольших городов? Сейчас узнаете.

— Денис, привет! До курсов вы пробовали заниматься программированием самостоятельно? С какими сложностями столкнулись и почему решили обучаться в GB?

— Конечно, пробовал: смотрел всевозможные лекции на YouTube. Основная проблема такого подхода, на мой взгляд, — отсутствие наставника. IT-блогеры и ведущие разовых вебинаров заменяют преподавателя лишь частично: они не дают персональной обратной связи, далеко не всегда им вообще можно задать вопросы. 

С онлайн-курсами типа GeekBrains проще: преподаватели и наставники всегда подскажут, ответят на вопросы, проверят практическое задание. Кстати, его наличие сильно влияет на учебный процесс, потому что ты получаешь персональную оценку и обратную связь. Ты можешь узнать все плюсы и минусы своего решения, которое бывает нестандартным. Это действительно важно и очень полезно, особенно в начале пути!

— Насколько оправдались ваши ожидания от учёбы? Удалось ли за это время сделать какой-нибудь интересный проект?

— Ожидания оправдались на сто процентов: я получил даже чуть больше, чем рассчитывал, и благодарен вашим курсам! Хочу отметить отзывчивость преподавателей в целом: ни один мой вопрос не остался без ответа.

Я рад, что познакомился с отличным преподавателем Django, Иваном Макеевым, который даже пригласил меня в свой проект «Скорочтец». Это онлайн-сервис, где люди учатся меньше отвлекаться от текста, чтобы не только читать быстрее, но и лучше усваивать информацию. Тут мне впервые удалось посмотреть, что представляет собой бэкенд «боевого» приложения. Я даже смог реализовать новую функциональность на стороне сервера — систему перехода по главам книги — не без помощи Ивана, конечно. В силу занятости стажировался я недолго, но это был полезный опыт. Надеюсь, нам с Иваном ещё представится возможность поработать вместе.

— Как и когда вы нашли работу в МТС? Насколько сложно было туда попасть и долго ли вы ждали оффера? Запомнились какие-нибудь интересные вопросы или задачи с собеседования?

— Работу в МТС я нашёл на hh.ru в апреле 2019 года, ещё во время обучения на вашем портале. Отозвался на их вакансию — меня пригласили на собеседование, после которого дали два задания на понимание принципов работы с базами данных. Надо было на любом языке написать скрипт, который мог бы получать данные из БД и структурировать их для дальнейшей записи в файл. Я всё выполнил, отправил и через два дня получил оффер. Это была моя первая удачная попытка, которой предшествовали три провальных: проблема была в отсутствии опыта. Компании мне отказывали несмотря на выполненное тестовое задание.

Вакансия подразумевала, что я буду заниматься разработкой на Python. Но сейчас команда, в которую я попал, сменила курс и использует язык Java. Мне это не нравится — хочу развиваться как Python-разработчик, — но это моя первая работа в IT и любой опыт для меня сейчас очень важен.

— Над чем вы работаете, хотя бы в общих чертах? Какого типа продукт пишете, какие технологии используете?

— На данный момент я занимаюсь интеграционными сервисами. Например, последнее, что разрабатывал, — интеграционный сервис таск-трекера Redmine с системой учёта времени TimeSheet. МТС этот сервис необходим для внутренних нужд. А написан он на Java с использованием фреймворка Apache Camel.

МТС — первая моя работа в IT, но точно не последняя! Мне нравится эта сфера: тут много интересных и очень умных людей.

— Легко ли было адаптироваться на работе? Что приходилось учить с нуля в дополнение к тому, что вы уже знали? Насколько изменилось ваше восприятие профессии и Python с тех пор, как вы начали работать по новой специальности?

— Было непросто. На самом деле и сейчас нелегко, потому что приходится изучать новый язык. Однако Python я не забыл и активно использую в домашних проектах. Например, сейчас пишу бэкенд для системы управления умным домом. У меня уже есть небольшой парк IoT-устройств:

  • лампа, которая передаёт и принимает данные по протоколу Wi-Fi;
  • лампа с ZigBee-подключением;
  • датчик температуры и влажности с ZigBee;
  • обогреватель с Wi-Fi и самодельным блоком управления;
  • настенный выключатель со связью по ZigBee.

Пока я реализовал две базовые функции: контроль освещения и температуры воздуха. Выключатель управляет лампой по Wi-Fi. Обогреватель получает информацию с датчика и автоматически поддерживает заданную пользователем температуру. Сервером для всего этого служит Raspberry Pi. На нём запущено приложение, которое я написал с использованием микрофреймворка Flask.

В перспективе хочу реализовать автополив цветов и сделать автономного робота-оператора, который будет ездить по квартире с камерой, наблюдать, что происходит, и транслировать видео. 

Мне всегда больше нравилось заниматься схемотехникой — разработкой «железа», а в программирование особо не тянуло, пока я не начал изучать Python. По моему мнению, вся прелесть языка в его дружелюбии к новичкам. Сейчас мне хватает знаний, чтобы создавать разные электронные устройства и писать для них прошивку на Python. На этом и строится мой проект умного дома.

— Как любите отдыхать от кода и восстанавливать силы? Что поддерживало в начале пути и сейчас помогает выходить из тупика, когда что-то не получается?

— Люблю читать интересные статьи и смотреть видеолекции по программированию. В случае каких-то «затыков» стараюсь не сдаваться и ищу решение до победного.

Сейчас для меня каждый новый шаг — это маленькая победа, но гордиться собой некогда. После решения задачи, которая вызывала проблемы, я просто ставлю перед собой новую — более сложную — и стараюсь решить.

— Хватает ли в Ярославле работы для программистов и, в частности, питонистов? Есть ли специфика у местного IT-рынка?

— В Ярославле очень плохо с работой по IT-специальностям. Здесь не так много работодателей, и питонисту найти что-то сложно. Могу посоветовать или пробиваться в филиалы крупных компаний, или работать удалённо, или переезжать. Сейчас в нашем городе из интересных работодателей:

  • «Тензор» — разрабатывает и поддерживает свои продукты в сфере электронного документооборота и электронной отчётности;
  • «Электроника» — создаёт ПО для охранных систем, а также внедряет, настраивает и обслуживает такие системы и ПО;
  • «РТ Лабс» — дочерняя компания Ростелекома, которая занимается разработкой портала госуслуг.

Пожалуй, других крупных компаний с громкими названиями в Ярославле я не встречал.

Проблема всех маленьких городов — отсутствие вакансий на позиции Junior. Из-за этого начинающим трудно пробиться в коммерческий проект и начать развиваться в полную силу. Правда, если с переездом и удалёнкой совсем никак, можно ещё попробовать брать простые задания на площадках аутсорсинга. Но вряд ли такой поиск будет простым и быстрым.

Я стараюсь подготовить себя к переезду в другой город, например, Санкт-Петербург — он мне очень нравится и, думаю, там я смогу найти занятие по душе.

— Вы осваиваете веб-направление. Что дальше? Какие видите перспективы для себя в Python?

— Мне нравится бэкенд-разработка. Это интересное и, главное, очень востребованное направление, потому что интернет всё больше входит в нашу жизнь. Однако в дальнейшем я бы очень хотел изучить машинное обучение: меня всегда привлекали системы автоматизации, а с помощью алгоритмов machine learning можно строить более совершенные и умные системы.

Учиться продолжаю каждый день — это в IT обязательно для каждого, вне зависимости от опыта и уровня знаний.

Хотите узнать больше о выпускниках Python-факультета GeekUniversity? Вот их истории:

 


20 янв 20, 12:44
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Что такое искусственный интеллект?

Искусственный интеллект — одна из самых захватывающих тем фантастики XX века — делает невероятные успехи. Мы постоянно используем ИИ в повседневной жизни, зачастую сами того не подозревая. Тем не менее и сегодня искусственный разум не сходит со страниц фантастических романов и экранов кинотеатров. Кто-то из авторов рисует страшные картины порабощенного машиной человечества, а другие, напротив, видят в ИИ верного помощника и друга человека. 

Где истина и что такое на самом деле искусственный интеллект? Превзойдет ли он когда-нибудь возможности человеческого разума? Или это уже произошло? GeekBrains готов ответить на самые популярные вопросы об искусственном интеллекте и перспективах его использования.

Что такое искусственный интеллект?

Искусственный интеллект (сокращенно — ИИ) — размытое понятие, и общепринятого определения у него до сих пор нет. В середине XX века, когда на Дартмутском семинаре впервые прозвучал этот термин, авторы вкладывали в него значение, существенно отличающееся от современных. Тогда ученые полагали, что искусственный интеллект — это система, которая будет способна переводить тексты с одного языка на другой, распознавать объекты по фото или видео, улавливать смысл произнесенных фраз и адекватно на них отвечать. Нынешние ИИ умеют все это! Но можем ли мы считать, что цели достигнуты и искусственный интеллект уже создан?

Вряд ли. Ведь чем дальше мы продвигаемся по пути создания искусственного разума и чем более впечатляющих успехов достигаем, тем больше требований выдвигаем к ИИ. 

Некоторые ученые строят сложные теории на стыке философии и информатики, пытаясь определить, что же такое ИИ и каковы должны быть характеристики системы, чтобы считать ее разумной. Не вдаваясь в подробности, можно сказать, что интеллект определяется как способность к обучению, осознанию и применению знаний на практике. Следовательно, от искусственного интеллекта мы тоже вправе ожидать умения учиться, осознавать свои знания и использовать их. С первой и последней задачами современные ИИ вполне справляются!

Когда начались разработки ИИ?

Летом 1956 года в Дартмуте ученые собрались на семинар, посвященный вопросам искусственного интеллекта (там и был сформулирован этот термин), а уже в следующем году появилась концепция первой искусственной нейросети — перцептрон. В 1960 году Фрэнк Розенблатт создал на основе этой концепции компьютер «Марк-1». Первый в мире нейрокомпьютер учили распознавать буквы латинского алфавита. Но несовершенство техники 60-х и сложность процессов не позволили довести технологию до ума, а ее разработчик вскоре погиб. О нейрокомпьютерах забыли на 20 лет.

Лишь в 1980-е концепции нейросетей снова принялись изучать всерьез. Техника уже была достаточно мощной, да и критиков поубавилось: умная электроника быстро делала успехи. То, что два десятилетия назад казалось мечтой, стало выглядеть вполне реальным и достижимым. Впрочем, чтобы найти правильные подходы к обучению нейросетей, потребовалось еще 20 лет. Только в середине 2000-х ученые нащупали верный путь и искусственные нейросети начали свое победное шествие по планете.

Но прежде чем описывать их успехи, разберемся, как устроены эти сети.

Описание искусственного нейрона

Искусственные нейронные сети создавались как математическая модель человеческого мозга. Для этого ученым Уоррену Мак-Каллоку и Уолтеру Питтсу пришлось выработать теорию деятельности человеческого мозга. 

В нем отдельные нейроны представляют собой живые клетки со сложным устройством. У каждого нейрона есть дендриты — разветвленные отростки, способные обмениваться сигналами с другими нейронами через синапсы, а также один аксон — более крупный отросток, отвечающий за передачу импульса от нейрона. Часть синапсов отвечает за возбуждение нейрона, часть — за торможение. От того, какие сигналы и через какие синаптические связи придут на «вход» нейрона, будут зависеть и те импульсы, которые он передаст другим нейронам. 

Для искусственного нейрона физический носитель не нужен. По большому счету, он представляет собой математическую функцию. Ее задача — получить информацию (например, сигналы от множества других искусственных нейронов), обработать ее определенным образом, а затем выдать результат на «аксон» — выход. В искусственной сети нейроны принято делить на три типа:

  • входные — каждый из этих нейронов получает на «вход» элемент исходной информации (например, одну точку изображения, если сеть распознает фотографии);
  • промежуточные — обрабатывают информацию;
  • выходные — выдают результат (при распознавании фото результатом может быть идентификатор изображенного объекта).

Сама нейросеть создается слоями, как пирог. Один из внешних слоев содержит входные нейроны, другой — выходные, а между ними могут располагаться один или несколько промежуточных. Каждый нейрон промежуточной сети соединен с множеством нейронов из двух окружающих слоев. Общение между нейронами обеспечивается с помощью весов — числовых значений, которые каждый нейрон вычисляет на основе данных, полученных от предыдущего слоя сети. 

Создавая искусственные нейронные сети, ученые ориентировались на устройство человеческого мозга. Поэтому принципы поведения рукотворных нейронов не так уж сильно отличаются от настоящих, живых. Может быть, и разум, который сможет развиться на основе таких нейросетей, будет приближен к человеческому?

Отличие искусственного интеллекта от естественного

Вопрос, чем ИИ отличается от естественного интеллекта, на самом деле лежит скорее в философской плоскости, чем в строго научной. И дело даже не в том, что мы не можем представить себе, на что будет похож (или не похож) искусственно созданный разум. Вообразить мы как раз способны что угодно — и писатели-фантасты многократно это доказали. Дело в том, что ни один искусственный интеллект, существующий на сегодняшний день, не достиг достаточно высокого уровня развития, чтобы состязаться с человеком на равных.

Существует точка зрения, высказанная философом Джоном Серлом еще в 1980-е годы. Он ввел термины «сильный ИИ» и «слабый ИИ». Сильный искусственный интеллект, по мнению ученого, может осознавать себя и мыслить подобно человеку. Слабый на это не способен. 

Сегодняшние ИИ, если классифицировать их по Серлу, однозначно относятся к слабым, поскольку ни у одного из них пока не зародилось самосознания. Наши искусственные нейросети распознают лица и рисуют странные, невероятные картины, читают рукописный текст и даже складывают стихи — но они и создавались исключительно для этих целей. Ни одна из этих нейросетей не способна передумать и выбрать для себя другую «специальность». Они делают лишь то, чему их обучили, и в некотором смысле их можно считать запрограммированными на выполнение этих задач. Подлинного понимания, что стоит за этими вещами, у них нет. Серл утверждал, что построение сильного ИИ в принципе невозможно.

Еще один философ, Хьюберт Дрейфус, также полагал, что компьютерные системы никогда не смогут сравняться с человеком — так как в своей разумной деятельности он опирается не только на усвоенные знания, но и эмпирический опыт. Компьютеры им не обладают по определению — следовательно, не судьба им развить собственный разум.

Но эти самоуверенные утверждения были сделаны во времена, когда нейросети делали только первые шаги. Сегодня, глядя на их успехи в обучении, нетрудно поверить в реальность ИИ, который сможет стать равным человеку, а то и превзойти его.

 Как сравнить человеческий и компьютерный интеллекты?

Постойте, а как мы вообще можем определить, достиг ли искусственный интеллект человеческого уровня или нет?

Можно предположить, что один из критериев — наличие чувств и эмоций, а также креативность. Если машина начала испытывать страх или любовь, если она вдруг решила написать стихотворение или нарисовать картину — разве это не будет проявлением разума?

Вполне возможно. Однако чувства есть и у животных, и у птиц. При этом на вопрос об их разумности (тем более — равенстве их разума человеческому) мы чаще отвечаем отрицательно. К тому же, чувства можно и запрограммировать — в большинстве они являются реакцией на конкретные внешние раздражители. Наконец, у нас попросту нет данных о том, смогут ли компьютеры когда-нибудь испытывать эмоции, сравнимые с человеческими. Но должны ли их чувства быть похожими на наши?

Может, более надежный критерий — самосознание? Если машина задается вопросом «Кто я?» — это и есть момент появления разумности? Но самосознание присутствует и у животных. При этом большинство людей вполне способны прожить свой век, не вникая в глубокие философские вопросы.

Существуют ли более точные и строгие методы для сравнения интеллектов? Ведь есть же коэффициент IQ, с помощью которого можно оценить умственные способности человека. Почему бы не использовать его для машины?

 У компьютерных программ есть IQ?

Измерить интеллект даже у человека невероятно сложно — к когнитивным и мыслительным способностям нельзя приложить линейку. Более того, IQ — показатель не абсолютный, а относительный. Некоторые ученые вообще считают, что тесты IQ измеряют не интеллект как таковой, а способность проходить такие тесты. Ее можно натренировать и получить блестящий результат — но интеллект при этом, разумеется, не изменится. Так что показатель IQ — не более чем число, которое связано с интеллектом, но не может дать его объективную оценку. 

В некоторых IQ-тестах преобладают задачи на наблюдательность или логику, в других — на комбинаторику, в третьих — на математическое мышление. Результат будет зависеть от того, что дается человеку легче и в чем он компетентнее. Значение имеют скорость прохождения тестов и специализация задач. 

ИИ тоже можно «натаскать» на решение определенных классов задач, и на IQ-тест у машины уйдет куда меньше времени, чем у человека. Так что нейросеть сможет набирать немыслимые для гениальных людей баллы, но при этом будет не способна ответить на простейшие вопросы, к которым ее при обучении не подготовили.

Так существуют ли вообще критерии, по которым можно объективно судить о машинном интеллекте? Одним из первых исследователей, попытавшихся выработать их, стал известный британский математик Алан Тьюринг. 

Что такое тест Тьюринга?

В 1950 году Тьюринг опубликовал статью «Вычислительные машины и разум», в которой обсуждал вопросы теоретической возможности мышления у машин. Это было не первое исследование на тему искусственного интеллекта и даже не первая подобная работа Тьюринга, но именно она стала отправной точкой серьезных научных дискуссий и споров. 

Тьюринг начал с определений, чтобы уточнить вопрос о том, может ли машина думать, — он показался ему слишком размытым. Что за машина имеется в виду? Что вообще означает «думать»?.. Было очевидно, что такой вопрос изначально несет в себе иррациональное зерно, которое не позволит дать на него правильный ответ. Результатом размышлений ученого стал тест Тьюринга — эксперимент, в котором человеку («судье») предлагается общаться с двумя собеседниками: человеком и компьютером. Задача судьи — понять, кто есть кто. Если в результате он не уверен, который из его собеседников — программа, или ошибся в оценке, считается, что машина прошла тест.

Суть теста Тьюринга не в создании «машины-обманщика», способной притвориться человеком. Он помогает убедиться в том, что конкретная машина или программа обладает разумом, который трудно отличить от человеческого. Такой компьютер Тьюринг назвал «интеллектуальным» — этому определению уже более 60 лет, и оно остается актуальным.

Процессоры для ИИ

Технологии ИИ не ограничиваются программными решениями. Сегодня активно разрабатываются электронные чипы, в которые поддержка ИИ встроена на аппаратном уровне. Микропроцессоры такого типа называют нейронными процессорами. Они применяются в беспилотных автомобилях и летательных аппаратах (дронах), промышленных роботах и автоматах, а также для решения специализированных задач — распознавания голоса или изображений, создания поисковых систем и машинных переводчиков.

Среди таких девайсов — тензорный процессор Google (TPU), созданный специально для систем машинного обучения. В свободной продаже этого устройства пока нет: его использует только сама компания Google — для оптимизации поисковой выдачи и обработки фотографий. TPU оперирует 8-битными числами (что чрезвычайно мало для точных вычислений), и имеет чуть более десятка команд (другие современные процессоры могут располагать сотнями). Но это не мешает тензорному процессору эффективно выполнять расчеты, связанные с искусственным интеллектом и нейросетями. Процессор быстро развивается — Google каждый год выкатывает новую версию. 

Тензорный процессор Google Tensor Processing Unit 3.0 (TPU)

Есть и другие разработки подобных чипов. Многие из них — узкоспециализированные: к примеру, предназначены ускорять программы ИИ для компьютерного зрения.

Рынок технологий искусственного интеллекта

Технологии искусственного интеллекта применяются практически во всех сферах человеческой деятельности, так что у искусственного интеллекта большое будущее. Рынок продуктов, использующих ИИ, стремительно растет.

Мировой рынок

К 2022 году прогнозируемый объем рынка ИИ достигнет 52 миллиардов долларов. Возможно, это не такая уж большая цифра — к примеру, рынок компьютерных игр к этому же году превысит 130 миллиардов, а рынок смартфонов уже в 2018 был в 10 раз больше — 520 миллиардов. 

Но рынок ИИ показывает беспримерно высокий рост — по некоторым оценкам, он увеличивается примерно на 30 % ежегодно (аналогичные показатели для игр и смартфонов — около 5 %). Если такие темпы внедрения технологий сохранятся еще несколько лет, можно ожидать, что скоро искусственный интеллект будет буквально повсюду.

Свой вклад в развитие ИИ вносят крупнейшие мировые IT-компании: Google, IBM, Intel, Nvidia. Среди стран лидируют США, Китай и Великобритания. 

В России

Если в 2017 году проектов с использованием ИИ в России было всего несколько десятков, то в 2018 — уже сотни. По прогнозам экспертов, к 2020 году объем рынка достигнет 28 миллиардов рублей (примерно 450 миллионов долларов). Активнее всего новые технологии используются в финансовой сфере, а также телекоммуникациях, ритейле и энергетике. Некоторые компании нанимают команды специалистов, занимающихся исключительно вопросами разработки и внедрения систем ИИ.

Несмотря на то, что рост рынка идет в целом даже быстрее, чем в мире, есть проблемы. Главной бедой остается нехватка специалистов по машинному обучению. Значит, самое время заняться изучением ИИ, чтобы получить востребованную специальность и высокооплачиваемую работу.

Влияние искусственного интеллекта на рынок труда

Уже сегодня существуют области, где ИИ может заменить человека. Например, приложения могут отвечать клиентам по телефону или в чате на несложные вопросы. Это позволяет оптимизировать нагрузку операторов call-центров и даже сократить их штат. 

На производстве ИИ способен управлять автоматикой и промышленными роботами. Искусственная нейросеть, постоянно контролирующая показатели множества датчиков, сумеет быстрее человека среагировать на нештатную ситуацию и предпринять правильные меры — отключить конвейер или остановить механизмы. Во многих случаях такие системы могут заранее предсказать неполадки и предотвратить ЧП. 

ИИ будет вытеснять людей с рабочих мест. Он обходится дешевле и допускает меньше ошибок. Не умеет лениться, прокрастинировать и зависать в фейсбуке, не нуждается в отдыхе, сне и отпуске, не грустит и не устает. Идеальный работник.

В первую очередь искусственные нейросети потеснят человека в выполнении рутинных операций, возьмут на себя сложные расчеты, оценку рисков, сбор информации, моделирование ситуаций по заданным параметрам. ИИ можно задействовать на опасных и вредных производствах.

Но люди по-прежнему будут нужны там, где роботы еще долго не сумеют составить им конкуренцию. И речь не только о творческой сфере. ИИ пока способен выполнять только узкоспециализированные задачи, на которые его натренировали, поэтому заменить людей могут в той же мере, что калькулятор — математика. При этом развитие технологий ИИ открывает огромный рынок труда для специалистов, связанных с машинным обучением и обслуживанием интеллектуальной техники.

Где используется ИИ?

Говоря кратко — почти везде! 

Не так уж много осталось сфер человеческой деятельности, совсем не затронутых технологиями ИИ. Рассмотрим только самые важные области, где ИИ уже используется.

ИИ в интернете

Всякий раз, когда вы произносите «Окей, Гугл» или «Привет, Сири», вы обращаетесь к искусственному интеллекту в вашем смартфоне. Он способен распознать в сигнале с микрофона обращенную к нему речь. Он записывает ваш вопрос и пересылает на серверы Google или Apple. Там к делу подключается второй ИИ, который распознает речь и переводит вопрос в понятный компьютеру формат. А затем третий выполняет поиск ответа по гигантским базам данных. Наконец, ответ возвращается на ваш смартфон, где ИИ, генерирующий человеческий голос, озвучивает его для вас. И все это за доли секунды.

ИИ на транспорте и в логистике

Впечатляющее применение искусственных нейросетей — беспилотные автомобили. За последнее десятилетие разрабатывать машину, которая была бы способна самостоятельно перемещаться по дорогам, взялись многие автопроизводители — General Motors, Nissan, BMW, Honda, Volkswagen, Audi, Volvo, а также компании Google и Tesla. Беспилотники пока не стали массовым явлением на улицах наших городов, но они явно делают успехи. 

Компания Amazon с 2013 года разрабатывает идею доставки товаров и почтовых отправлений с помощью дронов. Впервые посылка прибыла к получателю с беспилотным летательным аппаратом еще в декабре 2016. В некоторых регионах дронами доставляют еду, лекарства и даже портативные дефибрилляторы. Система пока не идеальна, но она продолжает развиваться. К сожалению, дроны могут служить и противозаконным целям: зафиксированы случаи доставки запрещенных предметов в тюрьмы с помощью беспилотников, а также использование дронов для перевозки наркотиков.

ИИ в финансах

В финансовой сфере ИИ применяют для прогнозирования рисков, выявления мошенничества. Корпорация MasterCard, создавшая международную платежную систему, несколько лет назад внедрила сервис Decision Intelligence. Он призван повысить точность подтверждения подлинных транзакций и снизить вероятность ложных отклонений платежей — это ошибочное срабатывание встроенной системы безопасности, которая не позволяет совершить корректную транзакцию, принятую за мошенническую. Подобные ошибки наносят вред как продавцу, теряющему клиента, так и покупателю, не получающему товар. Убытки получаются даже выше, чем ущерб от мошенничества. 

Система, работающая на искусственной нейросети, использует информацию из множества источников, чтобы на лету оценивать, насколько транзакция «нормальна». Учитывается не только надежность и история транзакций продавца, но даже типичность покупки для покупателя и его местоположение, а также время суток. Все это помогает надежнее защитить людей от мошенничества и минимизировать ложные срабатывания.

ИИ в медицине

В здравоохранении ИИ развивается в первую очередь в области диагностики заболеваний. Искусственные нейросети научились распознавать раковые опухоли на рентгеновских снимках, КТ, маммографии и МРТ. Опытному врачу на изучение снимка требуется около 20 минут, а нейросети — считаные секунды. Так что пациент может узнать результаты обследования практически мгновенно. Особенно приятно, что такие разработки ведутся и в России.

Диагностирующие ИИ способны выявлять не только рак, но и ранние стадии болезни Альцгеймера, пневмонию и другие заболевания. 

В обороне и военном деле

В 2018 году стало известно, что в армии США разрабатывается ИИ, способный распознавать человеческие лица в темноте и даже сквозь стены — с помощью тепловизора. Ожидается, что технология поможет выявлять главарей банд в местах военных действий. 

Другой ИИ — ALPHA — создан для управления беспилотными истребителями и ведения воздушного боя. В одном из сражений на симуляторах компьютер победил, управляя одновременно четырьмя самолетами против двух противников-людей. 

Разрабатываются также системы прицеливания для танков, способные заметить закамуфлированные цели.

В военно-промышленном комплексе ИИ поможет повысить обороноспособность стран, но может стать и оружием террора.

В бизнесе и торговле

В ритейле ИИ производит революцию. Искусственные нейросети улучшают качество сервиса и обеспечивают индивидуальный подход к каждому потребителю. Умные технологии выявляют мошенничества с банковскими картами, дают персональные советы и помогают подобрать товар.

Согласно данным TAdviser, в 2018 году свыше трети всех доходов ритейла было получено благодаря рекомендациям на основе ИИ! 

ИИ в спорте

Здесь ИИ-технологии используют для прогнозирования результатов матчей — такие системы созданы компаниями UBS, Commerzbank и Microsoft. Учитывается опыт команды и отдельных игроков. Порой прогнозы оказываются верными, но зачастую искусственный интеллект серьезно просчитывается. Человеческий фактор способен опровергнуть любые предсказания.

ИИ в культуре

Машина не может заниматься творчеством, потому что у нее нет воображения! Или все же может?

Как ни странно, искусственные нейросети способны проявить креативность, и даже достигают определенных высот в сфере культуры. 

Музыка

Как звучала бы флейта, если бы была ситаром? Синтезатор NSynth Super от Google использует нейронную сеть, чтобы создавать совершенно новые звуки на основе разных инструментов.

Проект Sony Flow Machines идет дальше. Анализируя подборку песен, электронный композитор вырабатывает собственную оригинальную мелодию. В 2016 году компания представила сингл Daddy's Car, основанный на музыке The Beatles. 

Alice, разработанная в рамках стартапа Popgun, умеет «подыгрывать» человеку, создавая музыкальные импровизации. Американская певица Тэрин Саузерн выпустила альбом в соавторстве с нейросетью Amper. А проект Endel способен по нажатию одной кнопки создавать композиции, созвучные настроению пользователя. 

Живопись

Нейросеть DeepDream создавали с прицелом на распознавание лиц, а у нее обнаружились способности к сюрреалистической живописи. Разработчики открыли сайт, на котором любой желающий может в сотрудничестве с ИИ создать удивительное полотно. Нейросеть пишет картины в разных стилях.

Правда, придумывать сюжеты она пока не умеет — просит помощи человека. 

Видео

С помощью ИИ, разработанных Google и Facebook, можно «заставить» человека на экране произнести любые слова, изобразить весь спектр эмоций. И отличить такие ролики от настоящих бывает непросто. Нейросети могут даже заменить одного актера на другого в отснятом кино. А это открывает возможности не только для кинематографистов, но и для создателей фальшивок. 

Литература

Нейросеть от Facebook умеет писать стихи, идеально выдерживая размер и ритм, подбирая хорошие рифмы. Читатели лишь в половине случаев сумели распознать сгенерированные компьютером строки, но до настоящих поэтов ИИ далеко. Машина пока не научилась передавать эмоции и вкладывать смысл в стихотворные произведения.

Яндекс тоже запустил «Автопоэта», который создавал стихотворения из поисковых запросов пользователей. Некоторые невозможно читать без улыбки. Трудно поверить, что их сочинила нейросеть, лишенная чувства юмора!

А компания Narrative Science разработала электронного журналиста. Пока статьи, написанные ИИ, просты по содержанию, но руководство компании с оптимизмом смотрит в будущее и верит, что к 2025 году до 90 % текстов в интернете будут написаны с помощью машинного интеллекта.

В 2016 году книга «День, когда компьютер напишет роман» вышла в финал японской литературной премии имени Хоси Синъити. Это произведение почти полностью создал искусственный интеллект.

Игры

В компьютерных играх нейросети используются для управления противниками и игровыми ботами. Но ИИ можно научить играть и «по другую сторону экрана» — то есть считывать визуальную информацию с экрана и управлять игровым персонажем, как это делает человек. 

В 2016 году между ИИ даже проводился чемпионат по Doom. А система Deep-Q-Network обучена играть на классических аркадных автоматах Atari. Зачастую она показывает результаты до 30 % выше, чем у опытных игроков.

В XX веке считалось, что искусственный интеллект можно будет считать достаточно мощным и развитым, когда он сумеет обыграть чемпиона мира по шахматам. Этот этап компьютеры прошли уже давно — еще в 1997 году Deep Blue одержал победу над Гарри Каспаровым (причем это была алгоритмическая программа, а не искусственный интеллект). 

После этого внимание публики обратилось к более сложным тактическим играм, например го. Сложность вычислений хода здесь на порядок выше, чем в шахматах, поэтому создать алгоритмы, которые перебирали бы возможные варианты, практически невозможно. Но обученные нейросети сумели справиться и с этой игрой. Уже в 2015 году разработанная Google сеть AlphaGo выиграла матч у профессионального игрока в го. 

Перспективы развития искусственного интеллекта

Научные исследования ИИ ведутся более полувека, но до сих пор далеко не все понимают суть технологии. В фантастических романах и фильмах писатели и режиссеры изображают, каким опасным может быть искусственный интеллект. И у многих представление об искусственном разуме формируется именно таким.

Ответим рационально на вопросы, связанные с далекими перспективами развития ИИ.

Цель ИИ — поместить человеческий разум в компьютер?

Нет, это не так. Даже теоретически подобная ситуация не так уж невероятна. Искусственные нейросети создаются по образу человеческого мозга, хотя и в очень упрощенном виде. Может быть, однажды станет возможно просканировать все разделы мозга живого человека, составить «карту» его нейронов и синаптических связей и воспроизвести ее копию в компьютере. От такой скопированной нейросети можно ожидать не только разумного поведения — она буквально будет двойником человека, сможет осознавать себя, принимать решения и совершать поступки, как он. Скопируются даже воспоминания. Теоретически, можно будет поместить такую нейросеть в искусственное тело (в робота), и тогда человек — копия его сознания — сможет жить практически вечно.

На практике осуществить такой перенос будет невероятно сложно: нет технологий, которые позволили бы «прочитать» живой мозг и создать его «карту». И мы пока очень далеки от создания искусственной нейросети, которая была бы столь же мощной, как мозг.

ИИ стремится достичь человеческого уровня интеллекта?

Цель ИИ — помогать людям и брать на себя сложные или рутинные задачи. Для этого ему вовсе не обязательно поддерживать беседы на философские темы или сочинять поэмы. 

Тем не менее, если искусственный интеллект однажды сможет достичь уровня человеческого мышления, это будет важной вехой для цивилизации. Мы получим дельного и умного помощника — и сможем по праву гордиться тем, что это творение наших рук.

Когда искусственный интеллект достигнет человеческого уровня?

Мы успешно создаем сравнительно небольшие нейросети, способные распознать голос или обработать изображение. Никакой ИИ пока не обладает такой же пластичностью, как наш мозг. 

Человек может сегодня заниматься музыкой, а завтра взяться за программирование на C++ — благодаря невероятной сложности мозга. В нем 86 миллиардов нейронов и бесчисленное количество синаптических связей между ними. 

Искусственным нейросетям пока далеко до этих показателей: у них от нескольких тысяч до миллионов нейронов. Есть технические ограничения на размеры нейросетей: даже суперкомпьютеры не «потянут» нейросеть, сопоставимую по масштабам с человеческим мозгом. Не говоря о том, что ее обучение будет нетривиальной задачей. 

Скорость компьютеров позволяет им обладать интеллектом?

«Мощность» интеллекта связана не со скоростью вычислений, а со сложностью нейронной сети. Человеческий мозг пока превосходит по мощности любую искусственную нейросеть, несмотря на то что скорость процессов в нем существенно ниже, чем в компьютерах. 

Искусственные нейронные сети состоят из отдельных нейронов, которые группируются в слои. Два внешних слоя служат «входом», на который подается исходная информация, и «выходом», с которого считывается результат. Между ними могут располагаться от одного до нескольких десятков, а то и сотен, промежуточных слоев из нейронов. Причем каждый нейрон в слое соединен с множеством других в предыдущем и следующем слоях. 

Чем сложнее устроена сеть, чем больше в ней слоев и нейронов, тем более масштабные и серьезные задачи она может выполнять. 

Может ли нейросеть развиваться естественным путем?

Разберемся, вероятно ли, что ИИ сможет получать опыт и обучаться естественно, как ребенок. Человеческий разум формируется под воздействием множества факторов. Мы получаем информацию о внешнем мире благодаря органам восприятия — наблюдая, осязая, пробуя на вкус. Взаимодействуя с окружающей средой, получаем жизненный опыт, знания о свойствах мира, социальные навыки. Наш мозг постоянно совершенствуется и физически меняется, наращивая новые синаптические связи и «прокачивая» существующие.

Если мы сумеем создать нейронную сеть, достаточно сложную, чтобы она могла развиваться подобным образом, и снабдим ее «органами чувств» — видеокамерой, микрофоном и подобным, — возможно, спустя время она сможет приобрести «жизненный опыт». Но это дело далекого будущего.

Риск для человеческой цивилизации — есть ли он?

Риски, связанные с новыми технологиями, всегда существуют. Вопрос — в чем они заключаются. 

Может оказаться, что искусственные нейросети, достигнув определенного порога, выйдут на «плато» эффективности и не будут развиваться дальше. Или не оправдают надежд, если окажется, что ИИ в принципе не способен справиться с тем или иным классом задач, например творческого характера. Это может обернуться потерями трудозатрат и финансовых вложений.

Если же под риском понимать техногенные катастрофы или восстание машин — пока это нам вряд ли грозит. Говоря простыми словами, современные нейросети не способны обратиться против создателей — как нейроны в мозге, управляющие движением руки, не способны осознать себя как личность и нанести удары по собственному телу.

Тем не менее мы должны помнить, что ИИ — наша разработка. Мы их проектируем, создаем, обучаем, вкладываем «мысли». Значит, и ответственность за их поведение — на нас. 

Четвертая революция

Как бы мы ни относились к искусственному интеллекту, придется принять тот факт, что он уже существует. Отказаться от него — значит сделать шаг назад в развитии. Ведь ИИ — это важная часть нашего прогресса. Многие ученые связывают с искусственными нейросетями начало четвертой промышленной революции и заявляют о том, что грядет новая эпоха — когда рядом с нами появится рукотворный разум, всегда готовый прийти на помощь. 

Все новое пугает и вызывает недоверие — это нормальная человеческая реакция, и многие люди с опаской относятся к ИИ. Про ужасы, которые принесет нам искусственный разум, не говорил разве что ленивый фантаст. Но подобное в свое время сочиняли о каждом технологическом новшестве. Люди боялись паровозов, потому что они «распугают коров, отравят птиц дымом, а при скорости свыше 15 миль в час пассажиров разорвет на части». Вероятно, потомки тоже будут посмеиваться над нашими страхами, о которых узнают из фильмов и книг XX и XXI веков.

Пройти обучение

17 июл 19, 15:33
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Искусственный разум железного коня: ИИ вашего автомобиля

Технологии сегодня меняют мир быстрее, чем когда-либо. В 70-х годах искусственный интеллект существовал только в фантастических романах. 20 лет назад разработки ИИ уже велись, но успехи не были впечатляющими. Но в середине нулевых случился качественный прорыв в машинном обучении, ставший Большим взрывом для искусственного интеллекта. И сегодня множество нейросетей помогают нам фильтровать и искать информацию в интернете, обрабатывать фотографии, переводить тексты. Одна из областей, где ИИ открывает потрясающие новые возможности, — это автотранспорт.

Как искусственные нейросети изменят будущее вашего автомобиля?

Искусственный разум рулит!

Тема беспилотных автомобилей на слуху, и вокруг них поднялась не меньшая шумиха, чем в XIX — начале XX века по поводу «безлошадных повозок». На появление машины, которая сможет самостоятельно перемещаться в транспортном потоке, надеются многие. Но есть и опасения, что возрастет количество ДТП, в том числе смертельных.

Беспилотные авто активно разрабатываются на протяжении последнего десятилетия, а кое-где даже используются в тестовом режиме. К их созданию подключились гиганты автомобильной промышленности: BMW, Nissan, Honda, General Motors, Volkswagen, Audi, BMW и Volvo — и новые игроки на авторынке: Google, Tesla и множество менее крупных компаний. До массовых продаж беспилотных автомобилей дело пока не дошло. Автопилоты делают успехи, но до совершенства им далеко. Так что по меньшей мере в ближайшие пять-десять лет искусственный интеллект едва ли сумеет заменить — или хотя бы серьезно потеснить — опытного водителя.

Техническая реализация «искусственного водителя» — не единственная задача. Нейросети в автомобиле предстоит заботиться не только о том, чтобы соблюдать скоростной режим, сворачивать на нужных перекрестках и удачно парковаться. Ей придется еще и решать этические вопросы — например, когда ДТП неизбежно и приходится выбирать между двумя плохими вариантами. Что, если ИИ автомобиля внезапно обнаружит на дороге пешехода, но затормозить не будет успевать — и можно либо сбить человека, либо свернуть с дороги и врезаться в дерево, причинив вред пассажиру? Эта моральная дилемма известна как проблема вагонетки. И как искусственному разуму сделать выбор в ситуации, с которой не справиться и человеку?..

Однозначных ответов на подобные вопросы нет и не будет. Тем не менее, Массачусетский технологический институт (MIT) создал сайт, на котором предлагает всем желающим пройти тестирование и выбрать, как они решили бы предложенные моральные дилеммы. В будущем данные этих исследований могут помочь разработчикам научить искусственный интеллект делать этический выбор, руководствуясь «среднечеловеческими» показателями.

Моральный тест MIT. У автомобиля отказали тормоза. Какой выбор должен сделать автопилот: врезаться в препятствие, убив находящихся в салоне пассажиров — девочку, женщину-спортсменку, бездомного и кошку, или выполнить маневр и сбить пешеходов — женщину, полного мужчину, мужчину-спортсмена, беременную женщину и ребенка (принимая во внимание, что они переходят дорогу на красный свет)?

Впрочем, мы уверены, что с повсеместным внедрением беспилотных автомобилей улицы городов и автострады станут значительно менее опасными, чем сейчас, а количество ДТП снизится (хотя и вряд ли до нуля). Ведь ИИ не заснет за рулем, не отвлечется на разговор по телефону, не нарушит скоростной режим, не предпримет заведомо опасный маневр. И точно не сядет за руль пьяным.

Менее очевидное, чем автопилоты, применение искусственных нейросетей в автомобиле — это помощники человека, делающие вождение более безопасным.

Безопасность вождения

Уже сегодня умная электроника способна проложить маршрут с учетом пробок и погодных условий, а также предложить альтернативные способы добраться из пункта А в пункт Б. Навигатор покажет на дисплее дорогу и подскажет голосом, где сделать поворот или снизить скорость. Благодаря навигационным программам бумажные атласы автомобильных дорог и огромные карты городов становятся раритетом. Навигатор удобно использовать, а еще он помогает сделать поездку безопасной. Ведь водителю не нужно отвлекаться, чтобы свериться с картой незнакомого города, или высматривать таблички с названиями улиц на перекрестках, чтобы убедиться, что он не пропустил нужный поворот.

По статистике, свыше 50 % аварий на дорогах случается из-за того, что водитель был невнимателен или отвлекся. Нейросети автомобиля избавят человека от необходимости выполнять действия, которые отрывают его от управления машиной. Например, смогут по голосовой команде переключить радио, увеличить громкость или изменить маршрут поездки.

Но происшествия случаются, даже когда водитель внимателен и соблюдает правила, — на дорогах слишком много факторов, провоцирующих аварийную ситуацию. В таких условиях не помешает лишняя пара глаз — или видеокамер. Нейросеть, обрабатывающая информацию с автомобильных камер, сможет предупредить водителя о пешеходах или других автомобилях в опасной близости. Мы можем даже помечтать о том, что в будущем нейросети множества автомобилей и дорожных камер смогут обмениваться данными через интернет, и тогда мы получим предупреждение о неадекватном водителе задолго до того, как он появится в поле зрения.

Некоторые производители уже пытаются разрабатывать ИИ, работающий с изображением камеры, направленной на водителя. Такая нейросеть будет знать хозяина в лицо и не позволит чужаку сесть за руль. Кроме того, по мимике нейросеть сможет определить, что человек устал или вот-вот задремлет, — и вовремя подаст сигнал. А если аварии не удается избежать, то по положению головы вычислит, какие подушки безопасности необходимо включить, — это поможет избежать травм.

Что это стучит в двигателе?

Еще одна сфера применения нейросетей в автомобиле — контроль за внутренними системами.

Большинству автовладельцев знакома ситуация, когда в самый неподходящий момент автомобиль приходится отвозить в автосервис. Конечно, по закону Мерфи, именно в этот день нужно куда-то срочно ехать!

ИИ, подключенный к датчикам и системам автомобиля, мог бы выявлять потенциальные неисправности задолго до того, как они становятся реальными проблемам . Ведь гораздо дешевле пройти техобслуживание, чем чинить или заменять детали. Нейросеть сможет составлять графики профилактики, подсказывать адрес ближайшей автомастерской и контролировать ТО. Логи мониторинга всех систем помогут механикам понять, что и по какой причине вышло из строя или находится на грани поломки, а производителям автомобилей дадут возможность улучшать качество комплектующих и запчастей.

Подобная система отслеживания телеметрии уже существует у суперкара Bugatti Chiron. В режиме онлайн он передает данные о функционировании всех систем в сервисный центр производителя. Если обнаружена неисправность, ремонтная бригада оперативно отправляется в любую точку мира, чтобы устранить дефект, — во всяком случае, так утверждают в компании. Если же проблема не требует вмешательства квалифицированного специалиста, сервисный центр может просто позвонить владельцу авто — к примеру, если давление в шинах снизилось до критического уровня. Система телеметрии Bugatti контролирует около 10000 сигналов, поступающих от различных узлов автомобиля: двигателя, трансмиссии, освещения, климат-контроля, информационно-развлекательного центра и других. Пока такими системами оборудуют только избранные автомобили класса люкс, но начало уже положено.

Разумное автострахование

Искусственные нейросети уже находят применение в автостраховании. В первую очередь они используются для оценки рисков, а помогают им в этом большие данные о водителях.

Большие данные — это наборы информации, которые слишком велики и сложно структурированы, чтобы их можно было обрабатывать с помощью обычных систем управления БД или тем более вручную. В страховании используются десятки источников информации о клиентах — базы номеров VIN, сведения о покупках и продажах, данные о нарушениях ПДД и законодательства и многое другое.

Для страховых компаний значение при принятии решения имеет буквально все, что касается водителя, — состояние его здоровья, стиль вождения, участие в инцидентах на дороге и даже семейные отношения. Но проанализировать огромные массивы собранных данных, дать им качественную оценку и вынести заключение человек может далеко не всегда. Неточности в прогнозах страховых компаний могут необоснованно поднять стоимость страхования для хороших водителей и снизить для плохих.

При этом с развитием технологий список информационных источников может увеличиться. Страховые компании захотят учитывать сведения о манере вождения, соблюдении скоростного режима и поведении водителя в сложных ситуациях. Сейчас эти данные фактически невозможно получить и использовать при продаже страховки, но в будущем подобную информацию сможет собирать и пересылать страховой компании встроенный ИИ автомобиля.

Будем надеяться, что скоро наступит день, когда любители обгонять по обочине или подрезать на повороте станут платить за страховку больше — потому что эти факты станут известны страховой компании и искусственный интеллект, выносящий решение, примет их во внимание.

ИИ управляет производством

Роботы и другие автоматы давно и широко используются в автомобилестроении, да и во многих других производствах. Но пока большая их часть управляется обычными компьютерными программами. В случае любого сбоя конвейер останавливается, и для продолжения работы требуется вмешательство человека.

Эксперты прогнозируют, что искусственный интеллект поможет ускорить производство, сокращая время простоя. Опираясь на данные с датчиков, нейросети смогут отслеживать работу оборудования, выявлять назревающие проблемы и принимать меры, а также контролировать своевременность профилактического обслуживания. На ИИ можно возложить и контроль за качеством продукции.

В итоге уменьшатся расходы на ремонт и замену оборудования, потери из-за простоев. А значит, будет снижаться и себестоимость продукции.

Будущее не за горами. Уже никого не удивить умным навигатором, прокладывающим самый удобный маршрут. Через несколько лет привычным явлением будут автомобили под управлением ИИ, беспилотные грузовики, автобусы и такси, а наши путешествия станут как никогда прежде безопасными, легкими и комфортными.

Пройти обучение

24 май 19, 15:47
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Программирование в химии: интервью с Джузеппе Балакко

Большинство людей ассоциируют IT в первую очередь с разработкой мобильных приложений, веб-сайтов, игр. Но «фронт» работы программистов гораздо шире. Вряд ли вы с ходу назовёте хоть одну сферу, куда ещё не внедрена электроника.

Чтобы доказать это, перенесёмся в мир химии. О том, как из учёного стать крутым программистом, не меняя сферы деятельности, мы поговорили с основателем компании Nucleomatica, разработчиком ПО для спектроскопии ядерного магнитного резонанса iNMR Джузеппе Балакко.

Джузеппе, начнём с главного — что такое спектроскопия ядерного магнитного резонанса? Где она применяется?

— Спектроскопия ядерного магнитного резонанса (NMR) позволяет оценить молекулярную структуру вещества, его количественный и качественный состав. С середины ХХ века это один из популярнейших аналитических подходов в химии. Конкретной сферы применения нет: NMR востребована как в научных экспериментах, так и  в медицине, промышленности.

К примеру, вы нашли волшебный порошок, который превращает автомобиль в трансформер. Естественно, вы захотите узнать, из чего он состоит, и попробовать его воспроизвести. Самый верный способ установить состав — спектроскопия ядерного магнитного резонанса. Также с помощью NMR компания может контролировать поставщиков сырья.

В медицине ядерный магнитный резонанс используется при диагностике заболеваний головного мозга. В сочетании с МРТ он даже заменяет хирургическую биопсию новообразований.

NMR-спектрометр

В основе метода лежит явление ядерного магнитного резонанса. Попробую объяснить упрощённо: все ядра имеют заряд, а некоторые — ещё и полуцелые спины. Возможно, вы помните, как в школьном курсе химии раскладывали «стрелочки» (протоны и нейтроны) по парам в «клеточках» (характеризующих энергетический уровень), а в итоге оставались одинокие «стрелки» и «клетки». В этом случае под действием переменного внешнего поля магнитные ядра могут менять энергетический уровень, поглощая энергию. Преобразования в них можно фиксировать в зависимости от частоты излучения извне.  Регистрация этих явлений позволяет построить спектр зависимости и определить состав вещества. Для организации исследования, фиксации и интерпретации результатов используется программирование.

Программирование в классическом представлении: на популярных языках в общедоступных средах разработки? Или это работа со специальными языками и ПО?

— Нет, самое обычное программирование, но с обширным кругом задач: работа с устройствами ввода-вывода, протоколами, интерфейсами, аналого-цифровыми и цифро-аналоговыми преобразователями, а также представление этой информации пользователю в удобной форме.

Именно поэтому на рынке фактически нет такой профессии, как NMR-программист. Как правило, это или IT-специалисты широкого профиля, или химики с дополнительным образованием. Кроме того, в NMR есть объективные ограничения: высокая точность требует много времени и ресурсов (гелия, запас которого на планете ограничен, сверхпроводящих магнитов и прочего). То есть услуга дорогостоящая. В перспективе, с открытием новых технологий, NMR может стать более доступной и применяться массово, но пока это не так.

Какие языки программирования вы используете?

— Преимущественно С, так как требуется большая производительность. Но также приходится иметь дело с C++, Lua, Objective-C и веб-набором HTML–CSS–PHP.

По образованию я не программист, а химик, и всем языкам обучался сам. Первым был BASIC, потом я переключился на Pascal, и затем — на C. Когда начинал карьеру, рынок специализированного ПО был очень мал, поэтому пришлось учиться программировать, чтобы решать профессиональные задачи самостоятельно.

Можете посоветовать книги?

— Для изучения многих языков, в том числе Pascal, C, Python, есть серия книг «Numerical Recipes in…». Это собрание типовых задач и решений. Очень полезно для тех, кто делает первые шаги в программировании, но не хочет тратить много времени на самостоятельный поиск ответов на тривиальные вопросы.

По C рекомендую книгу «C: a Software Engineering Approac» Питера А. Дарнелла. Она как раз посвящена созданию ПО на инженерном уровне, где важна производительность и надёжность.

По Lua могу посоветовать «Programming in Lua» Роберто Иерусалимши: здесь можно найти ответы на все вопросы по языку.

Ваше мнение, как лучше обучаться: интернет-курсы, книги, навороченные среды разработки?

— Нет универсального ответа — необходимо всё совмещать. У меня был неудачный опыт онлайн-обучения, но преимущественно потому, что я не мог делиться своими соображениями и замечаниями. Но это частный случай, а в перспективе, безусловно, интернет-курсы —  эффективный способ. При этом без книг и онлайн-документации обойтись нельзя.

Что касается использования мощных средств разработки новичками, то это может быть даже полезно, если к ним прилагается качественная документация. Главное — никогда не опускать руки. По своему опыту могу сказать: большинство трудностей, с которыми приходится сталкиваться, связаны не столько с программированием, сколько с нежеланием искать несколько вариантов решения.


1 июн 18, 16:15
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Показаны все темы: 5

Последние комментарии

нет комментариев
Читать

Поиск по блогу

Люди

7 пользователям нравится сайт lena2018.mirtesen.ru