Верхний ряд — 2D-фотографии человеческих лиц; средний ряд — результат 3D-моделирования в программе MIT; нижний ряд — результат 3D-моделирования в одной из предыдущих программ
Множество программных приложений последнего времени, в том числе распознавание образов и речи, обнаружение спама и кредитный скоринг, — это результат работы алгоритмов машинного обучения, когда нейросеть обучается на большом объёме данных.
Данная область бурно развивается в последнее время, а сфера применения машинного обучения становится шире. Неудивительно, что в 2013 году DARPA запустило четырёхлетний исследовательских проект для поиска более эффективных способов разработки приложений, в частности — для разработки языков так называемого вероятностного программирования.
Уже получены первые многообещающие результаты. Например, группа исследователей из Массачусетского технологического института на конференции Computer Vision and Pattern Recognition в июне собираются подробно рассказать о применении вероятностного программирования для компьютерного зрения. По заявлению авторов, короткая программа на новом ЯП (около 30 строк кода) выдаёт вполне сравнимый результат с обычными системами из тысяч строк кода.
Разработчики говорят, что это первый пример использования вероятностного программирования в компьютерном зрении.
Например, одна из задач состояла в генерации 3D-моделей из подборки 2D-фотографий лица. Программа MIT описывает всего лишь базовое расположение объектов: два симметричных объекта (глаза), два центральных объекта между ними (нос и рот), и это практически всё. Затем в неё загружают подборку 2D-фотографий и соответствующих 3D-моделей для обучения, а остальное она научится делать сама.
Для этого эксперимента в MIT разработали язык программирования Picture, расширение языка Julia, тоже созданного в MIT. Он идеально подходит для решения таких «вероятностных» задач, когда следует предсказать оптимальный результат с неизвестными переменными.
Код программы на Picture для генерации 3D-лиц
Вдобавок, предусматрена возможность самостоятельной эволюции кода, в зависимости от задачи. Программа может переписывать сама себя, если такой подход показывает лучший результат.
Научная работа “Picture: A Probabilistic Programming Language for Scene Perception” пока не опубликована в научных журналах, но один из авторов выложил её в онлайне.
Автор: alizar
31 строк кода заместо тысяч,
ах да, забыли, только это DSL….
Угу