В такой динамично развивающейся области очень сложно давать прогнозы на будущее даже на такой короткий срок, но все же некоторые тенденции прослеживаются. Например, совершенно точно продолжатся разработки различных автопилотов: от беспилотных мультикоптеров (дронов) до автомобилей. Вряд ли за 5 лет удастся создать полноценный автопилот, которому действительно можно будет доверить жизнь человека, однако за это время человечество точно придет к реализации этой идеи.
Все больше аналитики будет доверено различным системам машинного обучения, в том числе и нейросетям. Также сейчас активно развивается направление обработки естественного языка, что должно привести к совершенствованию различных диалоговых систем (от ботов-консультантов на различных сайтах до Cortana и Siri).
А серьезных изменений в жизни мы, вероятнее всего, не заметим. Во всяком случае, за такой короткий срок.
Как создать свою собственную нейросеть?
Правильная постановка вопроса должна быть такой: как натренировать свою собственную нейросеть? Писать сеть самому не нужно, нужно взять какую-то из готовых реализаций, которых есть множество, предыдущие авторы давали ссылки. Но сама по себе эта реализация подобна компьютеру, в который не закачали никаких программ. Для того чтобы сеть решала вашу задачу, ее нужно научить.
И тут возникает, собственно, самое важное, что вам для этого потребуется, – данные. Много примеров задач, которые будут подаваться на вход нейросети, и правильные ответы на эти задачи. Нейросеть будет на этом учиться самостоятельно давать эти правильные ответы.
И вот тут возникает куча деталей и нюансов, которые нужно знать и понимать, чтобы это все имело шанс дать приемлемый результат. Осветить их все здесь нереально, поэтому просто перечислю некоторые пункты. Во-первых, объем данных. Это очень важный момент. Крупные компании, деятельность которых связана с машинным обучением, обычно содержат специальные отделы и штат сотрудников, занимающихся только сбором и обработкой данных для обучения нейросетей. Нередко данные приходится покупать, и вся эта деятельность выливается в заметную статью расходов. Во-вторых, представление данных. Если каждый объект в вашей задаче представлен относительно небольшим числом числовых параметров, то есть шанс, что их можно прямо в таком сыром виде дать нейросети и получить приемлемый результат на выходе. Но если объекты сложные (картинки, звук, объекты переменной размерности), то, скорее всего, придется потратить время и силы на выделение из них содержательных для решаемой задачи признаков. Одно только это может занять очень много времени и иметь гораздо большее влияние на итоговый результат, чем даже вид и архитектура выбранной для использования нейросети.
Нередки случаи, когда реальные данные оказываются слишком сырыми и непригодными для использования без предварительной обработки: содержат пропуски, шумы, противоречия и ошибки.
Данные должны быть собраны тоже не абы как, а грамотно и продуманно. Иначе обученная сеть может вести себя странно и даже решать совсем не ту задачу, которую предполагал автор.
Также нужно представлять себе, как грамотно организовать процесс обучения, чтобы сеть не оказалась переученной. Сложность сети нужно выбирать исходя из размерности данных и их количества. Часть данных нужно отложить для теста и при обучении не использовать, чтобы оценить реальное качество работы. Иногда различным объектам из обучающего множества нужно приписать различный вес. Иногда эти веса полезно варьировать в процессе обучения. Иногда полезно начинать обучение на части данных, а по мере обучения добавлять оставшиеся данные. В общем, это можно сравнить с кулинарией: у каждой хозяйки свои приемы готовки даже одинаковых блюд.
Отберут ли роботы работу у людей?
Они уже это делают. С одной стороны, они отбирают работу у человека, а с другой – ими управляют люди и, получается, они создают для людей, которые их обслуживают, рабочие места. То есть, благодаря роботам, рабочий процесс скорее становится более эффективным, так что правильнее сказать, что они не отбирают работу у человека, а сотрудничают с ним.