Добрый день!
Что вы думаете про всё это обучение на больших данных? Отдельные результаты восхищают и впечатляют, конечно, но слегка напрягает тот факт, что мы (люди) плохо управляем процессом. Что значит «плохо управляем»? Давайте рассмотрим для примера статью «Prediction of cardiovascular risk factors from retinal fundus photographs via deep learning».
Вкратце: исследователи натренировали нейронную сеть предсказывать риски сердечных заболеваний по фотографиям глазного дна. Если я верно понял, это исследование возникло по той причине, что опытные врачи тоже это могли делать. Впечатляет же то, что попутно удалось научиться по тем же фотографиям угадывать возраст (с ошибкой всего ~3 года) и пол (с вероятностью целых 97%), причём живые врачи этого не умеют вообще.
Другими словами, перед нами непонятный чёрный ящик, который готов по фотографиям давать точные прогнозы, но не способен объяснить, как он это делает. Хуже того, чёрный ящик старался сотрудничать (можно выяснить, какие области фотографии больше всего повлияли на принятие решения, а потом внимательно разглядывать эти области всем исследовательским коллективом), но это не помогло.
Компьютерной мощи хватает, чтобы делать сложные штуки, а массовость производства всей этой электроники естественным образом приводит к тому, что её цена выдавливает живых людей даже из сложных процессов. Очередной результат — Autocompletion with deep learning — система автодополнения кода, которая, возможно, изменит стиль работы программистов. В видео по ссылкам есть интересные примеры для разных языков программирования.
Программистам и сейчас много кода читать и понимать приходится, а с переходом на подобные системы доля этой активности естественным образом сможет увеличиться, ведь при использовании подобного автоматического дополнения придётся часто выбирать, что же из предложенного «умной» системой включить в код.
И последняя на сегодня ссылка по этой теме — Нейросеть в стекле. Не требует электропитания, распознаёт цифры — интересная иллюстрация для тех, кому хотелось понять что-то про нейронные сети, но всё как-то не до этого было. Ладно, начинать в это вникать надо не с подобных штук, конечно, но сделано красиво.
Хорошей недели!
Не проблема имхо что плохо управляем. Это просто инструмент.
ОтветитьУдалитьМне приходят на ум две аналогии:
1. С высоты причьего полета конечно не разглядеть какие микробы находятся на коже. И это норм.
2. Человек не умеет определять запахи как собака или видеть далеко как орёл или слышать кожей как змея, но это не мешает использовать приспособления чтобы переплюнуть того же орла и увидеть другую планету в телескоп.
Инструмент мы обычно можем предсказуемо улучшать, а здесь есть риск упереться в состояние "остро необходимо повысить точность, а мы этого никак не можем, потому что почти не контролируем ситуацию" (т.е. получили когда-то случайно локальный максимум, а дальше двигаться вообще не можем).
УдалитьВпрочем, Вы правы в том, что во многих других областях у нас похожая ситуация (что-то такое мне рассказывали про старинные вакцины, уровень которых так и не удаётся перепрыгнуть создателям новых).
Про автодополнение - есть очень большая проблема, что количество плохого кода сильно больше количества хорошего. (А обучается система на общем массиве кода). Все кто код писал, когда-нибудь, да пользовались копипастой, которую не до конца понимали.
ОтветитьУдалитьАвтодополнение эту проблему, скорее только усугубит. (Да я знаю про статический анализ, и подобные вещи, но бездумное применение его столь же опасно).
Да, выбор удачной базы для обучения - это отдельная задача. С другой стороны, если эта система не ставит цели тянуть к высокому уровню культуры, а лишь стремится помочь среднему разработчику, то кажется естественным пользоваться именно средним кодом. В противном случае система не сможет эффективно автодополнять.
Удалить