(17:31:04) |: avva has posted a new entry titled "software 2.0" at
https://avva.livejournal.com/3068555.htmlАндрей Карпати, известный специалист в области глубокого обучения,
написал небольшую заметку Software 2.0, заслуживающую прочтения, мне кажется.
Карпати пишет, что новое поколение нейронных сетей, которое совершило и продолжает совершать гигантский рывок по своим возможностям с 2012 года, можно считать не столько полезной техникой, сколько новым видом программирование. В отличие от обычного программирования, Software 1.0, в котором программист дает компьютеру точную и обычно весьма сложную по своей иерархии последовательность инструкций (алгоритм), в Software 2.0 мы начинаем с многочисленных примеров того, как наша программа должна себя вести, а потом находим "программу" (являющуюся по сути набором весов для всех узлов нейронной сети) в виде достаточно хорошего приближения к этой цели. Конечно, далеко не все задачи поддаются такому способу решения, по крайней мере сейчас, но, как пишет Карпати,
"It turns out that a large portion of real-world problems have the property that it is significantly easier to collect the data than to explicitly write the program."
(например, намного легче собрать несколько десятков тысяч фотографий кошек и собак, и обозначить для каждой правильно, кошка на ней или собака, чем написать алгоритм - иерархическую программу в смысле Software 1.0 - который "смотрит" на картинку, анализирует ее и решает, кошка там или собака)
Название "Software 2.0" это всего лишь лозунг, и я не испытываю к нему сильных чувств; но то, что Карпати смотрит на это, как на совершенно новый и отдельный способ программирования, позволяет ему кратко и убедительно рассказать как о его достоинствах по сравнению с "Software 1.0", так и о недостатках. Не буду пересказывать здесь целиком и так краткую заметку Карпати, но отмечу отдельно меткую характеристику одного из недостатов - того, что нейронные сети часто дают нам лучшее решение, чем другие методы, но намного менее "прозрачное" и поддающееся объяснению:
"Across many applications areas, we’ll be left with a choice of using a 90% accurate model we understand, or 99% accurate model we don’t."
Именно этот недостаток вызывает в последние годы
опасения некоторых исследователей насчет опасности того, что более глубокие знания и понимания их конкретных областей сменяются на, иронически говоря, более поверхностное использование глубоких нейронных сетей, которое дает лучшие практические результаты, но тормозит теоретическое понимание темы.